INXI(1)

πŸ’– inxi πŸ’–

okay bestie, gather round, this is the inxi manual β€” like, the actual inxi man page, manual section 1. It's long and it's packed, so hydrate first. 🫢


🌸 NAME 🌸

inxi β€” Command line system information tool for console and IRC


πŸ¦‹ SYNOPSIS πŸ¦‹

inxi

inxi [-AbBCdDeEfGhiIjJlLmMnNopPrRsSuUwyYzZ]

inxi [-c -NUMBER] [--sensors-exclude SENSORS] [--sensors-use SENSORS]
[-t [c|m|cm|mc][NUMBER]] [-v NUMBER] [-w [LOCATION]] [--weather-unit
{m|i|mi|im}] [-y WIDTH]

inxi [--edid] [--memory-modules] [--memory-short] [--recommends]
[--sensors-default] [--slots] [--version]  [--version-short]

inxi [-x|-xx|-xxx|-a] -OPTION(s)

All short form options have long form variants - see below for these and
more advanced options.

✨ DESCRIPTION ✨

inxi is a command line system information tool built for console and IRC. fr fr it's also the debugging tool forum tech support uses to speedrun figuring out your system config and hardware. πŸ‘‘

inxi shows system hardware, CPU, drivers, Xorg, Desktop, Kernel, compiler version(s), Processes, RAM usage, and a whole lotta other useful info. it's giving "everything about your machine, in one command." πŸ’…

here's the tea tho: inxi output varies depending on whether it's being used on CLI or IRC, with some default filters and color options applied only for IRC use. Colors can be turned off if you want with -c 0, or changed using the -c color options listed in the STANDARD OPTIONS section below. πŸŽ€


πŸ”’ PRIVACY AND SECURITY πŸ”’

so to maintain basic privacy and security, inxi used on IRC automatically filters out your network device MAC address, WAN and LAN IP, your /home username directory in partitions, and a few other items. no cap, it just does. πŸ™ˆ

because inxi is often used on forums for support, you can also trigger this filtering with the -z option (-ez, for example). to override the IRC filter, you can use the -Z option. this can be useful in debugging network connection issues online in a private chat, for example. πŸ’–

See FILTER OPTIONS for all filters. If you want to filter everything, use --za though that's usually overkill.


πŸ“– TABLE OF CONTENTS πŸ“–

this man page is pretty long and information packed. it's divided into the following sections:

  • USING OPTIONS β€” How to use the command line options.
  • STANDARD OPTIONS β€” Primary data types trigger items.
  • FILTER OPTIONS β€” Apply a variety of output filters.
  • OUTPUT CONTROL OPTIONS β€” Change default colors, widths, heights, output types, etc.
  • EXTRA DATA OPTIONS β€” What -x, -xx, and -xxx add to the report per primary data type.
  • ADMIN EXTRA DATA OPTIONS β€” What -a adds to the report per primary data type. These have a lot of information because this is advanced admin data, which are not always intuitive or easy to understand.
  • ADVANCED OPTIONS β€” Modify behavior or choice of data sources, and other advanced switches.
  • DEBUGGING OPTIONS β€” For development use mainly, or contributing datasets to the project.
  • DEBUGGING OPTIONS TO DEBUG DEBUGGER FAILURES β€” Only for advanced users, sometimes something will hang the debuggers, this shows you various ways to get around those failures.
  • SUPPORTED IRC CLIENTS β€” List of known good IRC clients. Not checked often, let us know if something is not working.
  • RUNNING IN IRC CLIENT β€” How to run inxi in various IRC clients.
  • CONFIGURATION FILE β€” Configuration file locations and priority in using.
  • CONFIGURATION OPTIONS β€” Most of the commonly used configuration options, along with sample values.
  • BUGS β€” How and where to report bugs.
  • HOMEPAGE, AUTHOR AND CONTRIBUTORS TO CODE, SPECIAL THANKS TO THE FOLLOWING β€” These are self explanitory.
  • BUGS β€” How and where to report bugs.

wait no bestie, that last one was already in the list, my bad 😭 β€” the real list ends at the HOMEPAGE one above. moving on! πŸ’…


🧚 USING OPTIONS 🧚

Options can be combined if they do not conflict. You can either group the letters together or separate them. it's giving mix-and-match energy. ✨

Letters with numbers can have no gap or a gap at your discretion, except when using -t. Note that if you use an option that requires an additional argument, that must be last in the short form group of options. Otherwise you can use those separately as well. ⚠️

For example: inxi -AG | inxi -A -G | inxi -b | inxi -c10 | inxi -exxzJy90 | inxi -bay

Note that all the short form options have long form equivalents, which are listed below. However, usually the short form is used in examples in order to keep things simple. πŸŽ€


πŸ‘‘ STANDARD OPTIONS πŸ‘‘

🎧 -A, --audio

Show Audio/sound device(s) information, including device driver. Shows active sound API(s) and sound server(s). πŸ”Š

Supported APIs: ALSA, OSS, sndio. Supported servers: aRts (artsd), Enlightened Sound Daemon (esound, esd), JACK, NAS (Network Audio System, nasd), PipeWire, PulseAudio, RoarAudio, sndiod.

Use -Ax to show all sound APIs/servers detected, including inactive, -Axx to see API/Server helper daemons/plugin/modules, and -Aa to see API/sound server tools.

Audio:
  Device-1: C-Media CMI8788 [Oxygen HD Audio] driver: snd_virtuoso
  Device-2: AMD Cedar HDMI Audio [Radeon HD 5400/6300/7300 Series]
    driver: snd_hda_intel
  Device-3: AMD Family 17h HD Audio driver: snd_hda_intel
  API: ALSA v: k5.19.0-16.2-liquorix-amd64 status: kernel-api
  Server-1: PulseAudio v: 16.1 status: active

🧁 -b, --basic

Show basic report with the following items: System (-S); Machine (-M); Battery (-B) (if available); basic CPU (cores, type, average clock speed, and min/max speeds, if available); Graphics (-G); Networking devices (-N); basic Disk; Info (-I). 🫢

The CPU and Disk short forms are special, and are only used in -b. To see their full forms, add -C or -D.

Same as: inxi -v 2

For expanded -b report, see -e/--expanded.


πŸ”‹ -B, --battery

Show system battery (ID-x) data, charge, condition, plus extra information (if battery present). Uses /sys or, for BSDs without systctl battery data, use --dmidecode to force its use. dmidecode does not have very much information, and none about current battery state/charge/voltage. Supports multiple batteries when using /sys or sysctl data. ⚑

Note that for charge:, the report shows the current charge, as well as its value as a percentage of the available capacity, which can be less than the original design capacity. In the following example, the actual current available capacity of the battery is 22.2 Wh.

charge: 20.1 Wh (95.4%)

If charge percent > 100, adds note: check. The causes from that can range from driver bugs, hardware bugs, odd behaviors, so there's no way to know why. πŸ’€

The condition: item shows the remaining available capacity / original design capacity, and then this figure as a percentage of original capacity available in the battery.

condition: 22.2/36.4 Wh (61%)

Corner cases of failing battery show < 1 Wh and percent values for charge, capacity, and condition, and an alert. 😭

condition: 0.01/62.6 Wh (0.02%) alert: bad battery?

If health item is available and if it is not 'good', shows health: value. Always shows with -x if present.

With -x, or if voltage difference is critical, volts: item shows the current voltage, and the min: voltage. Note that if the current is below the minimum listed the battery is essentially dead and will not charge. Test that to confirm, but that's technically how it's supposed to work. πŸ™ˆ

volts: 12.0 min: 11.4

With -x shows attached Device-x information (mouse, keyboard, etc.) if they are battery powered.


πŸ’™ --bluetooth

See -E.


🌈 -c, --color

See OUTPUT CONTROL OPTIONS.


βš™οΈ --config, --configuration

Show active configuration values, by file, and exit.


πŸ–₯️ -C, --cpu

Show full CPU report (if each item available): basic CPU topology, model, type, L2 cache, average speed of all cores (if > 1 core, otherwise speed of the core), min/max speeds for CPU, and per CPU clock speed. More data available with -x, -xxx, and -a options. πŸ”₯

Explanation of CPU type (type: MT MCP) abbreviations:

  • AMCP β€” Asymmetric Multi Core Processor. More than 1 core per CPU, and more than one core type (single and multithreaded cores in the same CPU).
  • AMP β€” Asymmetric Multi Processing (more than 1 physical CPU, but not identical in terms of core counts or min/max speeds).
  • MT β€” Multi/Hyper Threaded CPU (more than 1 thread per core, previously HT).
  • MST β€” Multi and Single Threaded CPU (a CPU with both Single and Multi Threaded cores).
  • MCM β€” Multi Chip Model (more than 1 die per CPU).
  • MCP β€” Multi Core Processor (more than 1 core per CPU).
  • SMP β€” Symmetric Multi Processing (more than 1 physical CPU).
  • UP β€” Uni (single core) Processor.

Note that min/max: speeds are not necessarily true in cases of overclocked CPUs or CPUs in turbo/boost mode. See -Ca for alternate base/boost: speed data, more granular cache data, and more. ⚠️

Sample:

CPU:
  Info: 2x 8-core model: Intel Xeon E5-2620 v4 bits: 64 type: MT MCP SMP
    cache: L2: 2x 2 MiB (4 MiB)
  Speed (MHz): avg: 1601 min/max: 1200/3000 cores: 1: 1280 2: 1595 3: 1416
    ... 32: 1634

πŸ’Ώ -d, --disk-full, --optical

Show optical drive data as well as -D HDD/SSD drive data. With -x, adds a feature line to the report. Also shows floppy disks if present. Note that there is no current way to get any information about the floppy device that we are aware of, so it will simply show the floppy ID without any extra data. -xx adds a few more features. πŸ’…


πŸ—„οΈ -D, --disk

Show HDD/SSD drive info. Shows total drive space and used percentage. The drive used percentage includes space used by swap partition(s), since those are not usable for data storage. Also, unmounted partitions are not counted in drive use percentages since inxi has no access to the used amount. πŸŽ€

If the system has RAID or other logical storage, and if inxi can determine the size of those vs their components, you will see the storage total raw and usable sizes, plus the percent used of the usable size. The no argument short form of inxi will show only the usable (or total if no usable) and used percent. If there is no logical storage detected, only total: and used: will show. Sample (with RAID logical size calculated):

Local Storage: total: raw: 5.49 TiB usable: 2.80 TiB used: 1.35 TiB (48.3%)

Without logical storage detected:

Local Storage: total: 2.89 TiB used: 1.51 TiB (52.3%)

okay that's the first chunk bestie, and there is SO much more coming, do not go anywhere πŸ’–

Also shows per drive information: Disk ID, type (FireWire, Removable, USB if present), vendor (if detected), model, and size. See Extra Data Options (-x options) and Admin Extra Data Options (--admin options) for many more features.

  • -e, --expanded β€” bestie this one shows you the expanded -b report. It includes all Upper Case options (except -J), plus --swap, -s and -n. It does NOT show the extra verbose options like -d -f -i -J -l -m -o -p -r -t -u -x unless you actually type those arguments in your command, e.g.:
inxi -ermxx

The basic CPU line gets glow-up'd to full CPU data (-C); the basic disk information line becomes full drive information (-D) plus primary system partition data (-P), and it also adds RAID (-R) and Logical (-L) items if it finds them; the Network line (-N) gets expanded to advanced network (-n). πŸ’…

Heads up tho: with -e, to avoid clutter, -B, -E, -L, and -R only show if results are actually found, since those are often not relevant. ✨

For the basic report, see -b/--basic.

The old -F/--full are deprecated because the expanded report has not been full for a long time. rip to them πŸͺ¦

  • -E, --bluetooth β€” shows bluetooth device(s) and drivers. Show Report: with HCI ID, state, address per device (requires btmgmt, bt-adapter, or hciconfig), and if available (hciconfig, btmgmt only) bluetooth version (bt-v). See Extra Data Options for more. πŸ¦‹

If bluetooth shows as status: down, it shows bt-service: state and rfkill software and hardware blocked states, and rfkill ID.

Note that Report-ID: means the HCI item was not able to be linked to a specific device, similar to IF-ID: in -n.

If your internal bluetooth device does not show, it's possible that it has been disabled. If you try enabling it using for example:

hciconfig hci0 up

and it returns a blocked by RF-Kill error, you can do one of these:

connmanctl enable bluetooth

or

rfkill list bluetooth
rfkill unblock bluetooth
  • --edid β€” triggers full EDID data in Graphics, activates -G and -a. πŸ‘‘
    • Adds monitor chromacity (chroma: red:..green:...blue:...white:.).
    • Shows all available monitor modes if > 2 present, in comma separated list.
    • Shows EDID errors and warnings if any present.
  • --filter, -z β€” see FILTER OPTIONS.
  • -f, --flags β€” shows all CPU flags used, not just the short list. Not shown with -e in order to avoid spamming. ARM CPUs: show features items.
  • -F, --full β€” Deprecated. See -e/--expanded.
  • -G, --graphics β€” shows Graphic device(s) information, including details of device and display drivers (X: loaded:, and, if applicable: unloaded:, failed:, dri: (if X and different from loaded X drivers) drivers, and active gpu: drivers), display protocol (if available), display server (and/or Wayland compositor), vendor and version number, e.g.:
Display: x11 server: Xorg v: 1.15.1

or:

Display: wayland server: X.org v: 1.20.1 with: Xwayland v: 20.1

If protocol is not detected, shows:

Display: server: Xorg 1.15.1

Adds with: Xwayland v:... if xwayland server is installed, regardless of protocol.

Also shows screen resolution(s) (per monitor/X screen). Shows graphics API information (if available). EGL: EGL version, drivers, active platforms; OpenGL: renderer, OpenGL core profile version/OpenGL version (if core/compat versions different, shows that as well); Vulkan: Vulkan version, drivers, surfaces; VESA: data (for Xvesa). 🌈

Compositor information will show if detected using -xx option or always if detected and Wayland since the compositor is the server with Wayland. πŸ’…

-Gxx shows monitor data as well, if detected. --edid shows advanced monitor data (full modes, chroma, etc.).

  • -h, --help β€” the help menu. Features dynamic sizing to fit into terminal window. Set global COLS_MAX_CONSOLE if you want a different default value, or use -y [width] to temporarily override the defaults or actual window width.
  • -i, --ip β€” shows WAN IP address and local interfaces (latter requires ifconfig or ip network tool), as well as network report from -n. Not shown with -e for user security reasons. You shouldn't paste your local/WAN IP. Shows both IPv4 and IPv6 link IP addresses. πŸ™ˆ
  • --ip-limit, --limit [-1 - x] β€” raise or lower max report limit of IP addresses for -i. -1 removes limit.
  • -I, --info β€” shows Information: processes, uptime, memory, IRC client (or shell type if run in shell, not IRC), inxi version. See -Ix, -Ixx, and -Ia for extra information (init type/version, runlevel/target, packages). ✨

Note: if -m or -tm are active, the memory item will show in the main Memory: report of -m/-tm, not in Info:.

See -m for explanation of Memory: fields and values.

  • -j, --swap β€” shows all active swap types (partition, file, zram). When this option is used, swap partition(s) will not show on the -P line to avoid redundancy.

To show partition labels or UUIDs (when available and relevant), use with -l or -u.

  • -J, --usb β€” shows USB data for attached Hubs and Devices. Hubs also show number of ports. Be aware that a port is not always external, some may be internal, and either used or unused (for example, a motherboard USB header connector that is not used). πŸ”Œ

Hubs and Devices are listed in order of BusID.

BusID is generally in this format:

BusID-port[.port][.port]:DeviceID

Device ID is a number created by the kernel, and has no necessary ordering or sequence connection, but can be used to match this output to lsusb values, which generally shows BusID / DeviceID (except for tree view, which shows ports).

Examples: Device-3: 4-3.2.1:2 or Hub: 4-0:1

The rev: 2.0 item refers to the USB revision number, like 1.0 or 3.1.

Use -Jx for basic Si base 10 bits/s speed, -Jxx for Si and IEC base 2 Bytes/s speeds. -Ja adds USB mode.

  • -l, --label β€” show partition labels. Use with -j, -o, -p, and -P to show partition labels. Requires one of those options.

Sample: -ojpl.

  • -L, --logical β€” shows Logical volume information, for LVM, LUKS, bcache, etc. Shows size, free space (for LVM VG). For LVM, shows Device-[xx]: VG: (Volume Group) size/free, LV-[xx] (Logical Volume). LV shows type, size, and components. Note that components are made up of either containers (aka, logical devices), or physical devices. The full report requires doas/sudo/root. πŸ”

Logical block devices can be thought of as devices that are made up out of either other logical devices, or physical devices. inxi does its best to show what each logical device is made out of. RAID devices form a subset of all possible Logical devices, but have their own section, -R.

If -R is used with -Lxx, -Lxx will not show RAID information for LVM RAID devices since it's redundant. If -R is not used, a simple RAID line will appear for LVM RAID in -Lxx.

-Lxx also shows all components and devices. Note that since components can go in many levels, each level per primary component is indicated by either another c, or ends with a p device, the physical device. The number of c's or p's indicates the depth, so you can see which component belongs to which. 🧚

-L shows only the top level components/devices (like -R). -La shows component/device size, maj:min ID, mapped name (if applicable), and puts each component/device on its own line.

Sample:

  Device-10: mybackup type: LUKS dm: dm-28 size: 6.36 GiB Components:
    c-1: md1 cc-1: dm-26 ppp-1: sdj2 cc-2: dm-27 ppp-1: sdk2
  LV-5: lvm_raid1 type: raid1 dm: dm-16 size: 4.88 GiB
    RAID: stripes: 2 sync: idle copied: 100% mismatches: 0
  Components: c-1: dm-10 pp-1: sdd1 c-2: dm-11 pp-1: sdd1 c-3: dm-13
    pp-1: sde1 c-4: dm-15 pp-1: sde1

It is easier to follow the flow of components and devices using -y1. In this example, there is one primary component (c-1), md1, which is made up of two components (cc-1,2), dm-26 and dm-27. These are respectively made from physical devices (p-1) sdj2 and sdk2.

Device-10: mybackup
  maj-min: 254:28
  type: LUKS
  dm: dm-28
  size: 6.36 GiB
  Components:
    c-1: md1
    maj-min: 9:1
    size: 6.37 GiB
    cc-1: dm-26
      maj-min: 254:26
      mapped: vg5-level1a
      size: 12.28 GiB
      ppp-1: sdj2
        maj-min: 8:146
        size: 12.79 GiB
    cc-2: dm-27
      maj-min: 254:27
      mapped: vg5-level1b
      size: 6.38 GiB
      ppp-1: sdk2
        maj-min: 8:162
        size: 12.79 GiB

Other types of logical block handling like LUKS, bcache show as:

Device-[xx] [name/id] type: [LUKS|Crypto|bcache]:
  • -m, --memory β€” Memory (RAM) data. Does not display with -b or -e unless you use -m explicitly. Ordered by system board physical system memory array(s) (Array-[number]), and individual memory devices (Device-[number]). Physical memory array data shows array capacity, number of devices supported, and Error Correction information. Devices shows locator data (highly variable in syntax), type (eg: type: DDR3) size, speed. πŸ“

Note: inxi -m uses either dboot (BSDs), dmidecode, or udevadm (Linux) to collect the RAM data. Not all boards have DMI RAM data available.

dmidecode must be run as root (or start inxi with doas/sudo), unless you figure out how to set up doas/sudo to permit dmidecode to read /dev/mem as user. 😭

udevadm can be run by non-superuser, or if dmidecode is not installed (Linux only). It has a slightly less reliable dmi table report, and does not seem to support more than 1 board memory array, but is pretty good. Voltages may be wrong however. ⚠️

okay so both dmidecode and udevadm need a DMI table with RAM data in it to actually build the report at all. Most SBC/SOC boards just… don't have dmi based RAM data πŸ’€ but most other machines do, so we vibe.

speed and bus-width will not show if no module installed is found in size. that's just how it is bestie.

πŸ“Œ Note: If -m is triggered, the RAM available/used report will show up in this section, not in -I or -tm items. don't go looking for it elsewhere, it lives here.

Because dmi source data is somewhat unreliable (ngl it's giving chaos), inxi will try to make its best guesses. If you see (check) after the capacity number, you should check it with the specifications. (est) is slightly more reliable, but you should still check the real specifications before buying RAM. Unfortunately there is nothing inxi can do to get truly reliable data about the system RAM; maybe one day the kernel devs will put this data into /sys, and make it real data, taken from the actual system, not dmi data. For most people, the data will be right, but a significant percentage of users will have either a wrong max module size, if available, or max capacity. πŸ™ˆ

Under dmidecode/udevadm, speed: is the expected speed of the memory (spec:, what is advertised on the memory spec sheet) and actual: is what the actual speed is right now. To handle this, if speed and configured speed values are different, you will see this instead:

speed: spec: [specified speed] MT/s actual: [actual] MT/s

Also, if DDR, and speed in MHz, will change to:

speed: [speed] MT/s ([speed] MHz)

If the detected speed is logically absurd, like 1 MT/s or 69910 MT/s, adds: note: check. Sample:

Memory:
  System RAM: total: 32 GiB note: est. available: 31.38 GiB
    used: 20.65 GiB (65.8%)
  Array-1: capacity: N/A slots: 4 note: check EC: N/A
  Device-1: DIMM_A1 type: DDR3 size: 8 GiB speed: 1600 MT/s (800 MHz)
  Device-2: DIMM_A2 type: DDR3 size: 8 GiB speed: spec: 1600 MT/s (800 MHz)
    actual: 61910 MT/s (30955 MHz) note: check
  Device-3: DIMM_B1 type: DDR3 size: 8 GiB speed: 1600 MT/s (800 MHz)
  Device-4: DIMM_B2 type: DDR3 size: 8 GiB speed: spec: 1600 MT/s (800 MHz)
    actual: 2 MT/s (1 MHz) note: check

See --memory-modules and --memory-short if you want a shorter report ✨


🧠 Notes on System RAM: / Memory: report item 🧠

  • total: and igpu: do not show for short form.
  • The total: can come from several possible sources:
    • If not superuser, and if /sys/devices/system/memory exists, it will estimate the total RAM based on how many RAM blocks and their size. Sometimes the block count is not an exact match to installed RAM, and inxi will attempt to guess the actual RAM amount, except for virtual machines. When it synthesizes the actual physical RAM total, it will show note: est..

Note that not all kernels are compiled to support generating this /sys directory (kernel needs to be compiled with CONFIG_MEMORY_HOTPLUG).

  • For OpenBSD and not superuser, the total comes from the detected RAM in dboot, if available.
  • If superuser, and if -m used, it comes from the dmidecode RAM totals if available, and if not, it comes from counting up the System RAM ranges in /proc/iomem (Linux only), then rounding up, since that total is usually slightly under the actual physical RAM total. If inxi is unsure about the total, it will show note: est..

If no total data found, shows total: N/A.

  • The available: item is the total installed RAM minus some reserved and kernel code RAM (and in some cases iGPU assigned main system RAM) that is allocated on system boot, and thus is generally less than the actual physical RAM installed. This is called MemTotal in free/meminfo even though it isn't, though it is the total available the kernel has to work with.
  • The used: is the percent of the available RAM used, NOT of the total physical RAM. read that twice bestie 🫢
  • The igpu: item either comes from Raspberry Pi gpu RAM, or from /proc/iomem. The latter source is Linux + superuser only, and is not guaranteed to be accurate, but sometimes is. That is for iGPU system RAM used, not for standalone GPUs with their own internal RAM. Not all types of internal VRAM are detectable, it depends on how the hardware assigns RAM to iGPU.

Raspberry Pi uses vcgencmd get_mem gpu to get gpu RAM amount, if user is in video group and vcgencmd is installed.


  • --memory-modules, --mm β€” Memory (RAM) data. Show only RAM arrays and modules in Memory report. Skip empty slots. See -m. πŸŽ€
  • --memory-short, --ms β€” Memory (RAM) data. Show a one line RAM report in Memory. See -m.

Sample: Report: arrays: 1 slots: 4 modules: 2 type: DDR4

  • -M, --machine β€” Show machine data. Device, Motherboard, BIOS, and if present, System Builder (Like Lenovo). Older systems/kernels without the required /sys data can use dmidecode instead, run as root. If using dmidecode, may also show BIOS/UEFI revision as well as version. --dmidecode forces use of dmidecode data instead of /sys. Will also attempt to show if the system was booted by BIOS, UEFI, or UEFI [Legacy], the latter being legacy BIOS boot mode in a system board using UEFI.

Device information requires either /sys or dmidecode. Note that other-vm? is a type that means it's usually a VM, but inxi failed to detect which type, or positively confirm which VM it is. Primary VM identification is via systemd-detect-virt but fallback tests that should also support some BSDs are used. Less commonly used or harder to detect VMs may not be correctly detected. If you get an incorrect report, post an issue and we'll get it fixed if possible. πŸ™

Due to unreliable vendor data, device type will show: desktop, laptop, notebook, server, blade, plus some obscure stuff that inxi is unlikely to ever run on. πŸ’€

  • -n, --network-advanced β€” Show Advanced Network device information in addition to that produced by -N. Shows interface, speed, MAC ID, state, etc. 🌐
  • -N, --network β€” Show Network device(s) information, including device driver. With -x, shows Bus ID, Port number.
  • -o, --unmounted β€” Show unmounted partition information (includes UUID and LABEL if available). Shows file system type if you have lsblk installed (Linux only). For BSD/GNU Linux: shows file system type if file is installed, and if you are root or if you have added to /etc/sudoers (sudo v. 1.7 or newer):
<username> ALL = NOPASSWD: /usr/bin/file (sample)

doas users: see man doas.conf for setup.

Does not show components (partitions that create the md-raid array) of md-raid arrays. 🚫

To show partition labels or UUIDs (when available and relevant), use with -l or -u.

  • -p, --partitions-full β€” Show full Partition information (-P plus all other detected mounted partitions).

To show partition labels or UUIDs (when available and relevant), use with -l or -u.

  • --partitions-sort, --ps [dev-base|fs|id|label|percent-used|size|uuid|used] β€” Change default sort order of partition report. Corresponds to PARTITION_SORT configuration item. These are the available sort options:
    • dev-base β€” /dev partition identifier, like /dev/sda1. Note that it's an alphabetic sort, so sda12 is before sda2. 😭
    • fs β€” Partition filesystem. Note that sorts will be somewhat random if all filesystems are the same.
    • id β€” Mount point of partition (default).
    • label β€” Label of partition. If partitions have no labels, sort will be random.
    • percent-used β€” Percentage of partition size used.
    • size β€” KiB size of partition.
    • uuid β€” UUID of the partition.
    • used β€” KiB used of partition.
  • -P, --partitions β€” Show basic Partition information. Shows, if detected: / /boot /boot/efi /home /opt /tmp /usr /usr/home /var /var/tmp /var/log (for android, shows /cache /data /firmware /system). If --swap is not used, shows active swap partitions (never shows file or zram type swap). Use -p to see all mounted partitions. πŸ’Ύ

To show partition labels or UUIDs (when available and relevant), use with -l or -u.

  • --processes β€” See -t.
  • -r, --repos β€” Show distro repository data. Currently supported repo types:
    • APK (Alpine Linux + derived versions)
    • APT (Debian, Ubuntu + derived versions, as well as rpm based apt distros like PCLinuxOS or Alt-Linux)
    • CARDS (NuTyX + derived versions)
    • EMERGE (T2 SDE, svn target URL)
    • EOPKG (Solus)
    • NETPKG (Zenwalk/Slackware)
    • NIX (NixOS + other distros as alternate package manager)
    • PACMAN (Arch Linux, KaOS + derived versions)
    • PACMAN-G2 (Frugalware + derived versions)
    • PISI (Pardus + derived versions)
    • PKG (OpenBSD, FreeBSD, NetBSD + derived OS types)
    • PORTAGE (Gentoo, Sabayon + derived versions)
    • PORTS (OpenBSD, FreeBSD, NetBSD + derived OS types)
    • SBOPKG (Slackware + derived versions)
    • SBOUI (Slackware + derived versions)
    • SCRATCHPKG (Venom + derived versions)
    • SLACKPKG (Slackware + derived versions)
    • SLAPT_GET (Slackware + derived versions)
    • SLPKG (Slackware + derived versions)
    • TCE (TinyCore)
    • TAZPKG (Slitaz)
    • URPM (Mandriva, Mageia + derived versions)
    • XBPS (Void)
    • YUM/ZYPP (Fedora, Red Hat, Suse + derived versions)

More will be added as distro data is collected. If yours is missing please show us how to get this information and we'll try to add it. 🫢

See -rx, -rxx, and -ra for installed package count information.

  • -R, --raid β€” Show RAID data. Shows RAID devices, states, levels, device/array size, and components. See extra data with -x / -xx. πŸ”₯

md-raid: If device is resyncing, also shows resync progress line.

Note: supported types: lvm raid, md-raid, softraid, ZFS, and hardware RAID. Other software RAID types may be added, if the software RAID can be made to give the required output.

Okay so the component ID numbers? Here's the tea, bestie: for mdraid, the numerator is the actual mdraid component number, fr fr. For lvm/softraid/ZFS? That numerator is just an auto-incremented counter, nothing deeper than that. Like, watch: Online: 1: sdb1

And if hardware RAID gets detected, you get basic info. That's it. Why no full hardware RAID device disk / RAID reports? Because adding all that is a lot of complexity, so those only get added if there's actual demand, and reasonable reporting tools to make it happen. Noted. πŸ’…

  • --recommends β€” checks inxi's app dependencies and recommends, plus directories, and then tells you which package(s) you need to install to unlock support for each feature. It's the "what am I missing" vibe check. ✨
  • -s, --sensors β€” shows a report from sensors if sensors are installed/configured: Motherboard/CPU/GPU temperatures, and detected fan speeds. GPU temperature when it's available. Nvidia also shows the screen number when you've got multiple screens. IPMI sensors get used too (root required) if they're present.

Wanna use only a subset of all sensors, or yeet one out? See the Advanced options --sensors-use or --sensors-exclude (currently only for lm-sensors and /sys sourced data).

On current Linux, if lm-sensors isn't installed it will fallback gracefully to using /sys/class/hwmon as the sensor data source. And you can compare the two by using the --force sensors-sys option together with -s. Iconic.

  • --slots β€” shows PCI slots with type, speed, and status info. πŸŽ€
  • --swap β€” see -j.
  • -S, --system β€” shows System information: host name, kernel, desktop environment (if in X), distro. With -xx it shows dm - or startx - (only shows if present and running if out of X), and if you're in X, with -xxx you get more desktop info, like taskbar or panel. πŸ‘‘
  • -t, --processes β€” [c|m|cm|mc NUMBER] shows processes. No arguments? Defaults to cm. Followed by a number, it shows that many processes for each type (default: 5; if in IRC, max: 5).
Make sure there's no space between the letters and numbers (e.g. write it as -t cm10). Literally. Do not.
  • -t c β€” CPU only. With -x, it also shows memory for that process on the same line.
  • -t m β€” memory only. With -x, it also shows CPU for that process on the same line. If the -I or -m lines are not triggered, it will also show the system RAM used/total information.

See -m for explanation of the System RAM: fields and values.

  • -t cm β€” CPU+memory. With -x, it shows also CPU or memory for that process on the same line.
  • -u, --uuid β€” shows UUIDs. Use it with -j, -M -o, -p, and -P to show partition/system board (not common) UUIDs. Requires one of those options, so don't just run it alone, bestie.

Sample: -opju.

  • -U, --update β€” note: the Maintainer may have disabled this function. If inxi -h has no listing for -U then it's disabled. Periodt.

Auto-updates inxi or pinxi. Note: if you installed as root, you must be root to update; otherwise user is fine. Also installs / updates the current man page to: /usr/local/share/man/man1 (if /usr/local/share/man/ exists AND there is no inxi man page in /usr/share/man/man1, otherwise it goes to /usr/share/man/man1). This requires that you be root to write to that directory. See --man or --no-man to force or disable the man install.

-U accepts the following options (inxi and pinxi):

  • No arg β€” get from main git branch.
  • 3 β€” get the dev server (smxi.org) version. Be aware that pinxi, when taken from here, can be very unstable during active development! The inxi version is the stable master branch version. Also useful to update if you have SSL issues and --no-ssl works.
  • 4 β€” get the dev server (smxi.org) FTP version (same as the 3 version). Use if SSL issues and --no-ssl doesn't work. For very old systems with SSL 1, you will probably need to use this option, which bypasses HTTP downloading and uses straight FTP to get the file from the smxi.org server.
  • [http|https|ftp] β€” get a version of $self_name from your own server. Use the full download path, e.g.
inxi -U https://myserver.com/inxi

For failed downloads, use the debug option --dbg 1 in addition, to get more verbose failure reports.

  • --usb β€” see -J.
  • -v, --verbosity β€” reports verbosity levels. If no verbosity level number is given, 0 is assumed. Should not be used with -b or -e, since the option that triggers the most features will override the one with fewer. Supported levels: 0-8. Can be used together with other options.

Examples: inxi -v 4 or inxi -v4 or inxi --verbosity 4 or inxi -zv8

  • -v 0 β€” Simple report. Same as: inxi (with no options).
  • -v 1 β€” Basic report: System (-S); basic CPU (cores, type, average clock speed, and min/max speeds, if available); Graphics (-G); basic Disk; Info (-I).
  • -v 2 β€” Adds: Machine (-M); Battery (-B) (if available); Networking devices (-N). Same as inxi -b.
  • -v 3 β€” Adds: full CPU (-C); advanced network (-n); triggers the -x extra data option.
  • -v 4 β€” Adds: full Drive (-D); system Partitions (-P) (if present): / /home /var/ /boot.
  • -v 5 β€” Adds: memory/RAM (-m); audio device (-A); bluetooth (-E) (if present); RAID data (-R) (if present); partition label (-l) and UUID (-u); swap (-j); sensors (-s),
  • -v 6 β€” Adds: full mounted partitions (-p); unmounted partitions (-o); optical drives (-d); USB (-J); triggers the -xx extra data option.
  • -v 7 β€” Adds: full CPU flags/features (-f); advanced network IP (-i); triggers -xxx; forces battery (-B), bluetooth (-E), Logical devices (-L) and RAID (-R) regardless whether data was found for them or not.
  • -v 8 β€” Adds: PCI slots (--slots); GPU advanced EDID data (--edid); Repos (-r); Processes (-tcm); triggers the -a admin data option. This is all the available system data. 🌈
  • --version, --vf β€” inxi full version and license information. Prints the info then exits.
  • --version-short, --vs β€” inxi single line version information. Prints information if not short form (which shows version info already). Does not exit unless used without any other options. Can be used with normal line options, and prints the version info line as the first line of output. πŸ¦‹
  • -w, --weather [location] β€” 🚨 DO NOT USE THIS FEATURE FOR AUTOMATED WEATHER UPDATES! Automated or excessive use will lead to your being blocked from any further access. This feature is not meant for widget type weather monitoring, or Conky type use. It is meant to get weather when you need to see it, for example, on a remote server. If you did not type the weather option in manually, it's an automated request.

Adds a weather line for your current location (by IP address) if no location is requested. To get weather for an alternate location, add [location]. See also -x, -xx, -xxx options. Please note that your distribution's maintainer may chose to disable this feature.

With the optional [location] β€” get weather/time for an alternate location. Accepts postal/zip code[, country], city,state pair, or latitude,longitude. Note: city/country/state names must not contain spaces. Replace spaces with the + sign. Don't place spaces around any commas. Postal code is not reliable except for North America and maybe the UK. Try postal codes with and without country code added. Note that City,State applies only to USA, otherwise it's City,Country. If the country name (english) does not work, try the 2 character country code (e.g. Spain: es; Great Britain: gb).

See https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 for current 2 letter country codes.

Use only ASCII letters in city/state/country names.

Examples: -w OR -w 95623,us OR -w Boston,MA OR -w 45.5234,-122.6762 OR -w new+york,ny OR -w bodo,norway.

  • --weather-source, --ws [source-id] β€” [1-9] switches the weather data source. Possible values are 1-9. 1-4 will generally be active, and 5-9 may or may not be active, so check. 1 may not support city / country names with spaces (even if you use the + sign instead of a space). 2 offers pretty good data, but may not have all small city names for -w location.

Please note that the data sources are not static per value, and can change any time, or be removed, so always test to verify which source is being used for each value if that's important to you. Data sources may be added or removed on occasions, so try each one and see which you prefer. If you get an unsupported source message, it means that number has not been implemented. πŸ’€

  • --weather-unit, --wu [unit] β€” [m|i|mi|im] sets weather units to metric (m), imperial (i), metric (imperial) (mi, default), imperial (metric) (im). If metric or imperial is not found, it sets to the default value, or N/A. πŸ“

✨ FILTER OPTIONS ✨

okay so these options are all about putting various kinds of filtering on your output πŸ’…


  • --filter, --filter-override β€” bestie, go look at -z and -Z.
  • --filter-label, --filter-uuid, --filter-vulnerabilities β€” and these three? see --zl, --zu, --zv.
  • --host β€” turns the hostname ON in the System line. it overrides whatever your inxi config file had (if anything):
SHOW_HOST='false' - Same as: SHOW_HOST='true'
this one is an absolute override β€” the host will always show, no matter what other switches you throw at it. no cap.
  • --no-host β€” turns the hostname OFF in the System line. this is the default when you're using -z, because that's for anonymizing your inxi report so you can post it on forums or IRC 🫢 overrides the configuration value (if set):
SHOW_HOST='true' - Same as: SHOW_HOST='false'
also an absolute override β€” the host will not show, no matter what other switches you use. periodt.
  • -z, --filter β€” adds security filters for IP addresses, serial numbers, MAC, location (-w), and your user home directory name. also removes Host:. it's on by default for IRC clients πŸ’–
  • --za, --filter-all β€” shortcut that triggers -z, --zl, --zu, --zv. literally all the filters, the whole collection 🌈
  • --zl, --filter-label β€” filters partition label names out of -j, -o, -p, -P, and -Sa (root=LABEL=...). ngl this is generally only useful in very specialized cases.
  • --zu, --filter-uuid β€” filters partition UUIDs out of -j, -o, -p, -P, -Sa (root=UUID=...), and the -Mxxx board UUID. useful in specialized cases ✨
  • --zv, --filter-v, --filter-vulnerabilities β€” filters the Vulnerabilities report out of -Ca. again, generally only useful in very specialized cases.
  • -Z, --filter-override, --no-filter β€” absolute override for output filters. super useful for debugging networking issues in IRC, for example πŸ‘‘

🌸 OUTPUT CONTROL OPTIONS 🌸

these ones let you modify the output in various ways, it's giving customization πŸ’…

  • -c, --color [0-42] β€” set the color scheme. if you don't hand it a scheme number, 0 is just assumed, no biggie.
  • -c [94-99] β€” these color selectors run a color selector option before inxi even starts, which lets you set the config file value for the selection.
NOTE: all configuration file set color values are removed when output is piped or redirected. you must use the explicit runtime -c [color number] option if you want color codes to actually be present in the piped/redirected output. this is important bestie 😭

Color selectors for each type display (note: IRC and global only show the safe color set):

  • -c 94 β€” Console, out of X.
  • -c 95 β€” Terminal, running in X β€” like xTerm.
  • -c 96 β€” GUI IRC, running in X β€” like XChat, Quassel, Konversation etc.
  • -c 97 β€” Console IRC running in X β€” like irssi in xTerm.
  • -c 98 β€” Console IRC not in X.
  • -c 99 β€” Global β€” overrides/removes all settings.

setting a specific color type removes the global color selection, fyi.

  • --export [json|screen|xml] β€” see --output.
  • --export-file [full path to output fil] β€” see --output-file.
  • --indent [11-xx] β€” change the primary wide indent width. generally useless ngl. only applied if the output width is greater than max wrap width (see --max-wrap). use the configuration item INDENT to make it permanent.
  • --indents [0-10] β€” change the primary wrap mode, second, and -y1 level indents. the first indent level is only applied if output width is less than max wrap width (see --max-wrap). 0 disables all wrapped indents and all second level indents. use configuration item INDENTS to make it permanent ✨
  • --max-wrap, --wrap-max [integer] β€” overrides the default or configuration set line starter wrap width value. wrap max is the maximum width that inxi will wrap line starters (like Info:) onto their own lines, with data lines indented default 2 columns (use --indents to change that).

if terminal/console width or --width is less than wrap width, wrapping of the line starter occurs. if it's 80 or less, no wrapping will occur. overrides the internal default value (110) and the user configuration value MAX_WRAP.

  • --output, --export [json|screen|xml] β€” change the data output type. requires --output-file. screen is the inxi default mode, and it's useful only to override a configuration file value.
go read this page https://smxi.org/docs/inxi-json-xml-output.htm BEFORE you post an issue about not understanding, or being unable to use, the output format! it gives a fairly complete explanation of what the output means and how to work with it. it is not a tutorial, and it will not teach you to program. if you don't know how to work with json/xml structures using a proper language, then this feature is not meant for you πŸ’€
  • --output-file, --export-file [full path to output file|print] β€” this is the file to write the output to. the given directory path must exist 🫢

to print the data type results to stdout, use print.

  • --separator, --sep [character(s)] β€” change the default report key: value separator : to something else. make it permanent with the configuration item SEP2_CONSOLE.
  • --wrap-max [integer] β€” see --max-wrap.
  • -y, --width [integer] β€” this is an absolute width override which sets the output line width max. it overrides COLS_MAX_IRC, COLS_MAX_NO_DISPLAY, COLS_MAX_CONSOLE configuration items, or the actual widths of the terminal.
    • -y β€” sets default width of 80 columns.
    • -y [60-xxx] β€” sets width to the given number. must be 60 or more.
    • -y 1 β€” switches to a single indented key/value pair per line, and removes all long line wrapping (similar to dmidecode output). not recommended for use with -Y;
    • -y -1 β€” removes width limits (if assigned by configuration items).

Examples:

inxi -exx -y 130
inxi -exxy
inxi -bay1
  • -Y, --height, --less [-3-[integer] β€” control output height. super useful when you're in a console and scrollback isn't available. breaks output flow based on the values provided.
    • -Y 0 or -Y β€” set default max height to terminal height.
    • -Y [1-xxx] β€” set max output block height in lines.
    • -Y -1 β€” print out one primary data item block (like CPU:, System:) at a time. useful for very long outputs like -ea, -v8, etc. not available for -h.
    • -Y -2 β€” do not disable output colors when redirected or piped to another program. useful if you're piping output to less -R for example. this does not limit the height otherwise since the expectation is it's being piped to another program like less which will handle that.
    • -Y -3 β€” restore default unlimited output lines if the LINES_MAX configuration item is set.

recommended to use the following for very clean up-and-down scrollable output out of display, while retaining the color schemes, which are normally removed with piping or redirect:

pinxi -v8Y -2 | less -R
Note: since it's not possible for inxi to know how many actual terminal lines are being used by terminal wrapped output, with -y 1 it may be better in general to use a fixed height like:
-y 1 -Y 20 instead of: -y 1 -Y

πŸ¦‹ EXTRA DATA OPTIONS πŸ¦‹

these options can be triggered by one or more -x. alternatively, the -v options trigger them in the following way: -v 3 adds -x; -v 6 adds -xx; -v 7 adds -xxx πŸ‘‘

these extra data triggers are useful for getting more in-depth data on various options. they can be added to any long form option list, e.g.: -bxx or -Sxxx ✨

There are 3 extra data levels:

-x, -xx, -xxx

OR

--extra 1, --extra 2, --extra 3

the following details show which lines / items display extra information for each extra data level πŸ’–

  • -x -A β€” adds (if available and/or relevant) vendor: item, which shows specific vendor [product] information.
    • adds version/port(s)/driver version (if available) for each device.
    • adds PCI/USB ID of each device.
    • adds inactive sound servers/APIs, if detected.
  • -x -B β€” adds battery health: (uncommon. if other than 'good', always shows for -B.)
    • adds battery temperature, in C (uncommon).
    • adds vendor/model, battery status (if battery present).
    • adds attached battery powered peripherals (Device-[number]:) if detected (keyboard, mouse, etc.).
    • adds battery volts:, min: voltages. note that if the difference is critical, that is current voltage is too close to minimum voltage, it shows without -x.
  • -x -C β€” adds bogomips to CPU speed report (if available).
    • adds L1: and L3: cache types if either are present/available. for BSD or legacy Linux, uses dmidecode + doas/sudo/root. force use of dmidecode cache values by adding --dmidecode. this will override /sys based cache data, which tends to be better, so in general don't do that πŸ™ˆ
    • adds boost: [enabled|disabled] if detected, aka turbo. not all CPUs have this feature.
    • adds CPU Flags-basic: (short list). use -f to see the full flag/feature list.
    • adds CPU microarchitecture + revision (e.g. Sandy Bridge, K8, ARMv8, P6, etc.). only shows data if detected. newer microarchitectures will have to be added as they appear, and require the CPU family ID, model ID, and stepping.
    • adds, if smt (Simultaneous MultiThreading) is available but disabled, after type: data smt: disabled. type: MT means it's enabled. see -Cxxx.

Examples:

arch: Sandy Bridge rev: 2
arch: K8 rev.F+ rev: 2

if unable to non-ambiguously determine architecture, it will show something like: arch: Amber Lake note: check rev: 9

  • adds CPU highest speed after avg: [speed] high: [speed] if greater than 1 core and cores have different speeds. Linux only πŸ’…
  • -x -d β€” adds more items to the Features line of optical drive; dds rev version to optical drive.
  • -x -D β€” adds drive temperature with disk data.

Method 1: systems running Linux kernels ~5.6 and newer should have drivetemp module data available. if so, drive temps will come from /sys data for each drive, and will not require root or hddtemp. this method is MUCH faster than using hddtemp. note that NVMe drives do not require drivetemp 🫢

if your drivetemp module is not enabled, enable it:

modprobe drivetemp

once enabled, add drivetemp to /etc/modules or /etc/modules-load.d/***.conf so it starts automatically ✨

Like, if you see drive temps running as a regular user and you never set up doas/sudo hddtemp? Then your system just supports this feature natively, bestie. πŸ’… If no /sys data is found, inxi will try to use hddtemp methods instead for that drive. πŸ’‘ Hint: if the temp is /sys sourced, it'll come to 1 decimal, like 34.8; if it's hddtemp sourced, they'll be integers.

Method 2: if you have hddtemp installed, if you are root, or if you have added this to /etc/sudoers (sudo v. 1.7 or newer):

<username> ALL = NOPASSWD: /usr/sbin/hddtemp (sample)

doas girlies: see man doas.conf for setup.

You can force use of hddtemp for all drives using --hddtemp.

  • If free LVM volume group size is detected (root required), it shows lvm-free: on the Local Storage line. This is how much unused space the VGs contain β€” that is, space not assigned to LVs. ✨

  • -x -E (--bluetooth) β€” bluetooth deets, coming right up πŸ¦‹
    • Adds (if available and/or relevant) vendor: item, which shows specific vendor [product] information.
    • Adds PCI/USB Bus ID of each device.
    • Adds driver version (if available) for each device.
    • Adds (if available, btmgmt, hciconfig only) LMP (HCI if no LMP data, and HCI if HCI/LMP versions are different) version (if available) for each HCI ID.
  • -x -G β€” GPU glow-up time πŸ‘‘
    • Adds GPU micro-architecture (if AMD/Intel/Nvidia and detected).
    • Adds PCI/USB ID of each device.
    • Adds (if available and/or relevant) vendor: item, which shows specific vendor [product] information.
    • X.org: Adds (for single GPU, nvidia driver) screen number that GPU is running on.
    • Adds device temperature for each discrete device (Linux only).
    • For EGL, adds active/inactive platform report.
    • For OpenGL (X.org only) adds direct render status, GLX version.
    • For Vulkan, adds device count.
  • -x -i β€” network interface lore 🌐
    • Adds IP v6 additional scope data, like Global, Site, Temporary for each interface.

Note that there is no way we are aware of to filter out the deprecated IP v6 scope site/global temporary addresses from the output of ifconfig. The ip tool shows that clearly.

  • ip-v6-temporary β€” (ip tool only), scope global temporary. Scope global temporary deprecated is not shown
  • ip-v6-global β€” scope global (ifconfig will show this for all types, global, global temporary, and global temporary deprecated, ip shows it only for global)
  • ip-v6-link β€” scope link (ip/ifconfig) β€” default for -i.
  • ip-v6-site β€” scope site (ip/ifconfig). This has been deprecated in IPv6, but still exists. ifconfig may show multiple site values, as with global temporary, and global temporary deprecated.
  • ip-v6-unknown β€” unknown scope
  • -x -I β€” init system + compiler tea β˜•
    • Adds current init system (and init rc in some cases, like OpenRC). With -xx, shows init/rc version number, if available.
    • Adds default system compilers. With -xx, also show other installed compiler versions.
    • Adds current runlevel/target (not available with all init systems).
    • Adds total packages discovered in system. See -xx and -a for per package manager type reports. Moves to Repos if -rx.

If your package manager is not supported, please file an issue and we'll add it. That requires the full output of the query or method to discover all installed packages on your system, as well of course as the command or method used to discover those.

  • If in shell (i.e. not in IRC client), adds shell version number, if available.
  • -x -j (--swap) β€” Add mapper:. See -x -o.
  • -x -J (--usb) β€” USB speed check, fr fr πŸ”Œ
    • For Devices, adds driver(s).
    • Adds, if available, USB speed in base 10 bits/s (Si) units Mb/s or Gb/s (may be incorrect on BSDs due to non reliable data source). These are base 10 bits per second. This unit corresponds to the standard units the USB consortium uses to indicate speeds, but not to how most of the rest of your system reports sizes. Use -Jxx to add base 2 IEC Byte/second speeds.
  • -x -L (--logical) β€” device tracking, slay 🧚
    • Adds dm: dm-x to VG > LV and other Device types. This can help tracking down which device belongs to what.
  • -x -m, --memory-modules β€” memory module max size πŸ’œ
    • If present, adds maximum memory module/device size in the Array line. Only some systems will have this data available. Shows estimate if it can generate one.
  • -x -N β€” network device extras 🌈
    • Adds (if available and/or relevant) vendor: item, which shows specific vendor [product] information.
    • Adds version/port(s)/driver version (if available) for each device;
    • Adds PCI/USB ID of each device.
    • Adds device temperature for each discrete device (Linux only).
  • -x -o, -x -p, -x -P β€” mapper info, iconic πŸŽ€
    • Adds mapper: (the /dev/mapper/ partition ID) if mapped partition.

Example: ID-4: /home ... dev: /dev/dm-6 mapped: ar0-home

  • -x -r β€” Adds Package info. See -Ix.
  • -x -R β€” RAID deep dive 😭
    • md-raid: Adds second RAID Info line with extra data: blocks, chunk size, bitmap (if present). Resync line, shows blocks synced/total blocks.
    • Hardware RAID: Adds driver version, Bus ID.
  • -x -s β€” Adds basic voltages: 12v, 5v, 3.3v, vbat (ipmi, lm-sensors / /sys/class/hwmon if present). ⚑
  • -x -S β€” kernel + distro detective work πŸ•΅οΈ
    • Adds Kernel compiler version.
    • Adds to Distro: base: if detected. System base will only be seen on a subset of distributions. The distro must be both derived from a parent distro (e.g. Mint from Ubuntu), and explicitly added to the supported distributions for this feature. Due to the complexity of distribution identification, these will only be added as relatively solid methods are found for each distribution system base detection.
  • -x --slots β€” Adds slot bus-ID:, if found. πŸ’…
  • -x -t (--processes) β€” Adds memory use report to CPU (-xt c), and CPU use to memory (-xt m).
  • -x -w β€” weather girlie era 🌦️
    • Adds humidity and barometric pressure.
    • Adds wind speed and direction.
  • -xx -A β€” audio but make it extra 🎧
    • Adds vendor:product ID for each device.
    • Adds PCIe speed and lanes item (Linux only, if detected).
    • Adds for USB devices USB rev, speed, lanes (lanes Linux only).
    • Adds with: [item] status: [state/plugin] helper daemons/plugins for the sound API/server.
  • -xx -B β€” battery deep dive πŸ”‹
    • Adds current power use, in watts (if available).
    • Adds serial number.
    • Adds a charging: container for all charging specific information.
    • Adds charge cycles (NOTE: there appears to be a problem with the Linux kernel obtaining the cycle count, so this often shows 0. There's nothing that can be done about this glitch, the data is simply not available as of 2018-04-03). Since 0 isn't a real value, shows N/A if not found or 0.
  • -xx -D β€” drives, but ✨detailed✨
    • Adds HDD/SSD drive serial number.
    • Adds drive speed (if available). This is the theoretical top speed of the device as reported. This speed may be restricted by system board limits, eg. a SATA 3 drive on a SATA 2 board may report SATA 2 speeds, but this is not completely consistent, sometimes a SATA 3 device on a SATA 2 board reports its design speed.

NVMe drives: adds lanes, and (per direction) speed is calculated with lane speed * lanes * PCIe overhead. PCIe 1 and 2 have data rates of GT/s * .8 = Gb/s (10 bits required to transfer 8 bits of data). PCIe 3 and greater transfer data at a rate of GT/s * 128/130 * lanes = Gb/s (130 bits required to transfer 128 bits of data).

For a PCIe 3 NVMe drive, with speed of 8 GT/s and 4 lanes (8GT/s * 128/130 * 4 = 31.6 Gb/s):

speed: 31.6 Gb/s lanes: 4
  • Adds HDD/SSD drive duid, if available. Some BSDs have it.
  • Adds for USB drives USB rev, speed, lanes (lanes Linux only).
  • -xx -E (--bluetooth) β€” bluetooth but make it ✨thorough✨ πŸ¦‹
    • Adds vendor:product ID of each device.
    • Adds PCIe speed and lanes item (Linux only, and if PCIe bluetooth, which is rare).
    • Adds for USB devices USB rev, speed, lanes (lanes Linux only).
    • Adds (hciconfig only) LMP subversion (and/or HCI revision if applicable) for each device.
  • -xx -G β€” Triggers much more complete Screen/Monitor report. πŸ‘‘πŸ’–

X.org: requires xdpyinfo or xrandr, and the advanced per monitor feature requires xrandr.

Wayland: requires any tool capable of showing monitor and resolution information. Sway has swaymsg, weston-info or wayland-info can show Wayland information on any Wayland compositor, and wlr-randr can show Wayland information for any wlroots based compositor.

Further note that all references to Displays, Screens, and Monitors are referring to the X or Wayland technical terms, not normal consumer usage.

X.org: 1 Display runs 1 or more Screens, and 1 Screen runs 1 or more Monitors.

Wayland: The Display is the primary container, and it can contain 1 or more Monitors.

  • Adds vendor:product ID of each device.
  • Adds PCIe speed and lanes item (Linux only, and if PCIe device and detected).
  • Adds for USB devices USB rev, speed, lanes (lanes Linux only).
  • Adds output port IDs, active, off (connected but disabled, like a closed laptop lid) and empty. Example:
ports: active: DVI-I-1,VGA-1 empty: HDMI-A-1
  • Adds Display ID. X.org: the Display running the Screen that runs the Monitors; Wayland: the Display that runs the monitors.
  • Adds compositor, if found (always shows for Wayland).
  • Wayland: Adds to Display d-rect: if > 1 monitors in Display. This is the size of the rectangle Wayland creates to situate the monitors in.
  • X.org: If available, shows alternate: Xorg drivers. This means a driver on the default list of drivers Xorg automatically checks for the device, but which is not installed. For example, if you have nouveau driver, nvidia would show as alternate if it was not installed. Note that alternate: does NOT mean you should have it, it's just one of the drivers Xorg checks to see if is present and loaded when checking the device. This can let you know there are other driver options. Note that if you have explicitly set the driver in xorg.conf, Xorg will not create this automatic check driver list.
  • Xorg: Adds total number of Screens listed for the current Display.
  • Xorg: adds the default Screen ID if the Screen (not monitor!!) total is greater than 1.
  • X.org: adds a Screen line, which has the ID (Screen: 0) and then s-res (Screen resolution) and s-dpi. And bestie, remember β€” this is an Xorg Screen, NOT a monitor screen, and all that info is about the Xorg Screen! Sometimes it happens to match a single-monitor system, but usually it's different in some ways. Also note that the physical monitor dpi and the Xorg dpi are not necessarily the same thing and can vary widely. 😭
  • Adds Monitor lines. Monitors are a subset of a Screen (X.org) or Display (Wayland), and each of those can have one or more monitors. Normally a dual monitor setup is 2 monitors run by one Xorg Screen / Wayland Display.
  • res: β€” the current monitor mode, along with the frequency hz:.
  • pos: β€” [primary,]{position string|row-col} (X.org: requires xrandr; Wayland: requires swaymsg [sway], wlr-randr [wlroots based compositors], weston-info / wayland-info [all]). Uses either an explicit primary value or a +0+0 position if no primary monitor value is set. pos: does not show for single monitor setups, or if no position data was found.

Position is text (left, center, center-l, center-r, right, top, top-left, top-center, top-right, middle, middle-c, middle-r, bottom, bottom-l, bottom-c, bottom-r) if the monitors fit within the following grids: 1x2, 1x3, 1x4, 2x1, 2x2, 2x3, 3x1, 3x2, 3x3. If the layout isn't supported in text, it uses [row-nu]-[column-nu] instead to indicate the monitor's position in its grid.

The position is based on the upper left corner of each monitor relative to the grid of monitors that the Xorg Screen is composed of.

  • diag: β€” monitor screen diagonal in mm (inches). Note that this is the real monitor size, not the Xorg full Screen diagonal size, which can be quite different.
  • For EGL: shows platform by specific platforms, with driver and egl version if different from the main one.
  • For OpenGL: adds ES version (es-v) if available. If the Display line didn't find an X11 display ID, the ID (e.g. :0.0) will show here instead.
  • For OpenGL, Vulkan: adds device-ID, if available.
  • For Vulkan: adds a per Device ID report (type, driver, device-ID).

  • -xx -I β€” Adds Power: as parent for the power data children uptime: and adds wakeups:. Wakeups shows how many times the machine has been woken from suspend state during the current uptime period (if available, Linux only). A 0 value means the machine has not been suspended. πŸ’€
    • Adds init type version number (and rc if present).
    • Adds alternate (alt:) detected installed compiler versions (if present).
    • Adds system default runlevel/target, if detected. Supports Systemd / Upstart / SysVinit type defaults.
    • Shows Packages: counts by discovered package manager types (pm:). In cases where only 1 pm had results, it does not show total after Packages:. Does not show installed package managers with 0 packages. See -a for full report. Moves to Repos if -rxx.
    • Adds parent program (or pty/tty) that started shell, if not IRC client.
  • -xx -j (--swap), -xx -p, -xx -P β€” adds swap priority to each swap partition (for -P) used, and for all swap types (for -j).
  • -xx -J (--usb) β€” adds vendor:chip id.
    • Adds USB lanes. Uses tx (transmit) lane count for total unless rx and tx counts are different (eg: lanes: rx: 2 tx: 4). Linux only. See -Ja for sample report.
  • -xx -L (--logical) β€” adds internal LVM Logical volumes, like raid image and meta data volumes.
    • Adds full list of Components, sub-components, and their physical devices.
    • For LVM RAID, adds a RAID report line (if not -R). Read up on LVM documentation to better understand their use of the term 'stripes'.
  • -xx -m, --memory-modules β€” adds memory device Manufacturer.
    • Adds memory device Part Number (part-no:). Useful for ordering new or replacement memory sticks etc. Part numbers are unique, particularly if you use the word memory in the search as well. With -xxx, also shows serial number.
    • Adds single/double bank memory, if data is found. Note, this may not be 100% right all of the time since it depends on the order that data is found in dmidecode output for type 6 and type 17.
    • Adds, if present, memory array voltage. Only some legacy systems will have this data available.
    • Adds memory module current configured operating voltage, if available.
  • -xx -M β€” adds chassis information, if data is available. Also shows BIOS ROM size if using dmidecode.
    • Adds board part number (part-nu:) if available. This is not commonly found.
  • -xx -N β€” adds vendor:product ID for each device.
    • Adds PCIe speed and lanes item (Linux only, and if PCIe device and detected).
    • Adds for USB devices USB rev, speed, lanes (lanes Linux only).
  • -xx -r β€” adds to Packages: info. See -Ixx.
  • -xx -R β€” md-raid: adds superblock (if present) and algorithm. If resync, shows progress bar.
    • Hardware RAID: adds Chip vendor:product ID.
  • -xx -s β€” adds DIMM/SOC voltages, if present (ipmi only).
  • -xx -S
    • Adds desktop toolkit (tk:), if available (Xfce/KDE/Trinity/Gnome etc).
    • Adds, if run in X, window manager (wm:), if available. Not all window managers are supported. File issue to request a missing one. Some desktops support using more than one window manager, so this can be useful to see what window manager is actually running. If none found, shows nothing. Uses a less accurate fallback tool wmctrl if ps tests fail to find data.
    • Adds display/login manager (dm:/lm:), if present. If none, shows N/A. Supports most known display/login managers, including elogind, entrance, gdm, gdm3, greetd, kdm, lemurs, lightdm, lxdm, ly, mdm, mlogind, nodm, sddm, seatd, slim, slimski, tint, wdm, xdm, and several others, added as discovered.
  • -xx --slots β€” adds slot length.
    • Adds slot voltage, if available.
  • -xx -w β€” adds wind chill, heat index, and dew point, if available.
    • Adds cloud cover, rain, snow, or precipitation (amount in previous hour to observation time), if available.

  • -xxx -A β€” adds, if present, serial number.
    • Adds, if present, PCI/USB class ID.
  • -xxx -B β€” adds battery temperature (uncommon).
    • Adds battery build date (uncommon).
    • Adds battery chemistry (e.g. Li-ion).
    • Adds location (only available from dmidecode derived output).
    • Adds battery charging type (uncommon).
    • Adds attached device rechargeable: [yes|no] information.
  • -xxx -C β€” adds CPU voltage and external clock speed (this is the motherboard speed). Requires doas/sudo/root and dmidecode. ⚑
    • Adds, if smt (Simultaneous MultiThreading) data is available, after type: data smt: [status].
smt: [status]

MT in type: will show if smt is enabled in general. 3 values are possible: [enabled|disabled|<unsupported>]. <unsupported> means the CPU does not support SMT.

  • -xxx -D β€” adds HDD/SSD drive firmware revision number (if available).
    • Adds drive partition scheme (in most cases), e.g. scheme: GPT. Currently not able to detect all schemes, but handles the most common, e.g. GPT or MBR.
    • Adds drive tech (HDD/SSD), rotation speed (in some but not all cases), e.g. tech: HDD rpm: 7200, or tech: SSD if positive SSD identification was made. If no HDD, rotation, or positive SSD ID found, shows tech: N/A. Not all HDD spinning disks report their speed, so even if they are spinning, no rpm data will show.
  • -xxx -E (--bluetooth) β€” adds, if present, PCI/USB class ID.
    • Adds, if present, bluetooth device class ID.
    • Adds (hciconfig only) HCI version, revision.
  • -xxx -G β€” adds, if present, Device PCI/USB class ID.
    • Adds to Device serial: number (if found).
    • Xorg: adds to Screen: s-size: and s-diag:. (Screen size data requires xdpyinfo). This is the X.org Screen dimensions, NOT the Monitor size!
    • Expands monitor res: to current mode:, hz:, scale:, and if scale != 1, scaled to: resolution.
    • Adds to Monitors (if detected) size (size: 277x156mm (10.9x6.1")). Note that this is the real physical monitor size, not the Xorg Screen/Wayland Display size, which can be quite different (1 Xorg Screen / Wayland Display can for instance contain two or more monitors).
    • Adds to Monitors modes: min: max: (if detected). These are the smallest and largest monitor modes found, using an inexact method, so might not always be right.
    • Adds to Monitors serial: number (if detected).
    • For EGL, shows hardware based driver(s) (hw:), with the related hardware, like AMD or Intel.
    • For Vulkan, adds layer count, per device driver hardware vendor (not displayed if device name is present with -a).
  • -xxx -I
    • For Power: adds supported system power states:, active suspend: type, active hibernate: type. See https://www.kernel.org/doc/html/v4.15/admin-guide/pm/sleep-states.html for full explanation of states and actions.
    • For Shell: adds (su|sudo|login) to shell name if present.
    • For Shell: adds default: shell if different from running shell, and default shell v:, if available.
    • For running-in: adds (SSH) to parent, if present. SSH detection uses the whoami test.
  • -xxx -J (--usb) β€” adds, if present, serial number for non hub devices.
    • Adds interfaces: for non hub devices.
    • Adds, if present, USB class ID.
    • Adds, if non 0, max power in mA.
  • -xxx -m, --memory-modules β€” adds memory bus width: primary bus width, and if present, total width. e.g.
width (bits): data: 64 total: 72

okay so real quick heads-up about the memory report, bestie, because dmidecode is out here being messy πŸ’€ β€” sometimes it mixes up the total width and the data width, so inxi just takes the larger value as the total if it's there. data width is usually the same as the CPU bits, and total can reflect EEC or Dual Channel widths. and if there's no total width data to be found at all? it just shows:

width: N/A
  • Adds device type detail, like type: DDR3 detail: Synchronous ✨
  • Adds the device serial number.
  • Adds memory module current, max, and min voltages β€” but only if they're available and different from each other. if they're all identical, it just displays the same thing as the -xxm voltage report. want them always? use -ma and you'll never miss them πŸ’…

  • -xxx -M
    • Adds, if present, the board/chassis UUID. this is also activated by --uuid, so it's giving double duty 🫢
  • -xxx -N
    • Adds, if present, the serial number.
    • Adds, if present, the PCI/USB class ID.
  • -xxx -R
    • md-raid: Adds system mdraid support types (kernel support, read ahead, RAID events).
    • zfs-raid: Adds the portion allocated (used) by the RAID array/device.
    • Hardware RAID: Adds rev, ports, and (if available and/or relevant) the vendor: item, which shows specific vendor [product] information.
  • -xxx -S
    • Adds the current kernel clock source, if available (Linux only).
    • Adds (if present) the window manager (wm) version number.
    • Adds, if you're in X, or with --display, the bar/dock/menu/panel/tray components (with with:). if none are found, it shows nothing. examples: cairo-dock, docky, gnome-panel, lxpanel, tint2, trayer, lxqt-panel, xfce4-panel and many others 🌸
    • Adds (if present) a tools: item for all the detected running screensavers and screen lockers. quick note though: not all screen lockers run as daemons/services β€” some are just programs called by other tools or actions. so don't come for inxi if one's missing πŸ™ˆ
    • Adds (if available, and in display) the virtual terminal (vt) number. these are usually the same as the ctrl+alt+F[x] numbers. some systems have it, some don't, it varies. it's giving mystery ✨
    • Adds (if present) the display/login manager (dm) version number.
  • -xxx -w
    • Adds location (city state country), observation altitude (if available), weather observation time (if available), and sunset/sunrise (if available). basically your whole weather vibe check 🌈

πŸ‘‘ ADMIN EXTRA DATA OPTIONS πŸ‘‘

These options get triggered with --admin or -a. Admin options are the advanced report options β€” way more technical, and mostly of interest to system administrators or other machine admins. no gatekeeping, but it is giving sysadmin main character energy πŸ‘‘

The --admin option sets -xxx, and you only have to use it once. it will trigger the following features:

  • -a -A
    • Adds, if present, possible alternate: kernel modules capable of driving each Device-x (not including the current driver:). if no non-driver modules are found, it shows nothing.
    • > NOTE: just because it lists a module does NOT mean it is available in the system, it's just something the kernel knows could possibly be used instead. do not come for me, I'm just the messenger 😭
    • Adds PCIe generation, and, if it's different than the running PCIe generation, speed or lanes, link-max: gen: speed: lanes: (only the items that are different from primary get shown).
    • Adds a list of detected audio server tools (tools: [tools]) to the API/Server lines, like alsamixer, jack_control, pactl, pavuctl, pw-cli, sndioctl, etc.
    • Adds USB mode for USB devices (Linux only).
  • -a -C
    • Adds CPU generation, process node, and built years, if detected. for Intel, it only shows if it's Core generation β€” otherwise the arch value is enough. for AMD, it only shows Zen generation.
    • Adds microarchitecture level: (v1,v2,v3,v4) (64 bit Intel/AMD CPUs only). this info is used for setting compile time optimization switches in, for example, GCC. these levels were introduced in 2020.
    • Because this is a CPU flag based test, and these levels when > 2 are not always 100% based on exposed CPU flags (eg OSXSAVE), for > v2 it adds note: check.
    • Adds CPU family, model-id, and stepping (replaces rev of -Cx). the format is hexadecimal (decimal) if greater than 9, otherwise hexadecimal.
    • Adds CPU microcode. format is hexadecimal.
    • Adds socket type (for the motherboard CPU socket, if available). if the results are doubtful it will list two socket types and add note: check. this one requires doas/sudo/root and dmidecode. the item in parentheses may simply be a different syntax for the same socket, but in general β€” check this before trusting it, bestie 🫢
Sample: socket: 775 (478) note: check
Sample: socket: AM4
  • Adds DMI CPU base and boost/turbo speeds. requires doas/sudo/root and dmidecode. in some cases β€” like with overclocking or 'turbo' or 'boost' modes β€” voltage and external clock speeds may be increased, or short term limits raised on max CPU speeds. these are often not reflected in the /sys based CPU min/max: speed results, but they often are when using this source.

Samples:

CPU not overclocked, with boost, like Ryzen:
Speed (MHz):
  avg: 2861
  high: 3250
  min/max: 1550/3400
  boost: enabled
  base/boost: 3400/3900
Overclocked 2900 MHz CPU, with no boost available:
Speed (MHz):
  avg: 2345
  high: 2900
  min/max: 800/2900
  base/boost: 3350/3000
Overclocked 3000 MHz CPU, with boosted max speed:
Speed (MHz):
  avg: 3260
  high: 4190
  min/max: 1200/3001
  base/boost: 3000/4000
  • Note that these numbers can be confusing, but basically: the base number is the actual normal top speed the CPU runs at without boost mode, and the boost number is the max speed the CPU reports itself able to run at. the actual max speed may be higher than either value, or lower. the boost number appears to be hard-coded into the CPU DMI data, and does not seem to reflect the actual max speeds that overclocking or other combinations of speed boosters can enable β€” as you can see from the example where the CPU is running at a speed faster than the min/max or base/boost values πŸ‘€
  • Note that the normal min/max: speeds do NOT show actual overclocked OR boost/turbo mode speeds, and appear to be hard-coded values, not dynamic real values. the base/boost: values are sometimes real, and sometimes not. base appears in general to be real.
  • Adds frequency scaling: governor:.. driver:.. if found/available. also adds scaling min/max speeds if they're different from the standard CPU min/max spees (not common).
  • Adds description of cache topology per cpu. Linux only.
  • Creates a new Topology: line after the Info: line. moves cache data to this line from the Info: line.

The Topology line contains, if available and/or relevant: physical CPU count (cpus:); per physical CPU dies:, clusters:, cores:; threads per core, if > 1 (tpc:); how many threads: (if there are more threads than cores); smt status (if no smt status is found, it shows N/A).

Not all CPUs have or report dies or clusters. some may have dies but no clusters, some clusters but no dies, some dies and clusters, and some neither dies nor clusters. this is a function of how the CPU topology reports itself to the kernel. note that core counts are per physical CPU, not per die or cluster. clusters are per die, and in cases of > 1 dies, it will show as: clusters: 2x4.

If it's a complex CPU type, like Alder lake, cores: will have a more granular breakdown of how many mt (multi-threaded) and how many st (single-threaded) cores there are in the physical cpu (mt-cores:, st-cores:); For complex CPU types like ARM SoC devices with 2 CPU types, with different core counts and/or min/max:) frequencies, variant: per type found, with relevant differences shown, like cores:, min/max:, etc.

CPU:
  Info:
    model: AMD EPYC 7281
    bits: 64
    type: MT MCP MCM SMP
    arch: Zen
      gen: 1
    level: v3
      note: check
    process: GF 14nm
    built: 2017-19
    family:0x17 (23)
    model-id:1
    stepping: 2
    microcode: 0x8001250
  Topology:
    cpus: 2
      dies: 4
      cores: 16
      threads: 32
        tpc: 2
   cache:
     L1: 2x 1.5 MiB (3 MiB)
       desc: d-16x32 KiB; i-16x64 KiB
     L2: 2x 8 MiB (16 MiB)
       desc: 16x512 KiB
     L3: 2x 32 MiB (64 MiB)
       desc: 8x4 MiB
  Speed (MHz):
    avg: 1195
    high: 1197
    min/max: 1200/2100
    boost: enabled
    scaling:
      driver: acpi-cpufreq
      governor: ondemand
    cores:
      1: 1195
      2: 1196
      ....
    bogomips: 267823

Or this Raptor Lake with 1 die, 4 clusters, and efficiency and perforance cores:

CPU:
  Info:
    model: 13th Gen Intel Core i5-1345U
    bits: 64
    type: MST AMCP
    arch: Raptor Lake
    level: v3
      note: check
    built: 2022+
    process: Intel 7 (10nm)
    family: 6
    model-id: 0xBA (186)
    stepping: 3
    microcode: 0x411C
  Topology:
    cpus: 1
      dies: 1
      clusters: 4
      cores: 10
      threads: 12
        mt: 2
          tpc: 2
        st: 8
    smt: enabled
    cache:
      L1: 928 KiB
        desc: d-8x32 KiB, 2x48 KiB; i-2x32 KiB, 8x64 KiB
      L2: 6.5 MiB
        desc: 2x1.2 MiB, 2x2 MiB
      L3: 12 MiB
        desc: 1x12 MiB
  Speed (MHz):
    avg: 1535
    high: 2820
    min/max: 400/4700:3500
    scaling:
      driver: intel_pstate
      governor: powersave
    cores:
      1: 0
      2: 400
      3: 429
      4: 926
      5: 1244
      6: 1139
      7: 2680
      8: 1021
      9: 2582
      10: 2744
      11: 2820
      12: 2445
    bogomips: 59904
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx

okay that's the whole CPU glow-up when -a is on πŸ’…

  • Adds CPU Vulnerabilities (bugs) as known by your current kernel. It lists them by Type: ... (status|mitigation): ... for systems that support this feature (Linux kernel 4.14 or newer, or patched older kernels).

  • -a -d,-a -D β€” the drive one, she's thorough
    • Adds logical and physical block size in bytes.
    • Using smartctl (requires doas/sudo/root privileges).
    • Adds device model family, like Caviar Black, if available.
    • Adds SATA type (eg 1.0, 2.6, 3.0) if a SATA device.
    • Adds device kernel major:minor number (Linux only).
    • Adds SMART report line: status, enabled/disabled, health, powered on, cycles, and some error cases if out of range values. Note that for Pre-fail items, it will show the VALUE and THRESHOLD numbers. It will also fall back for unknown attributes that are or have been failing and print out the Attribute name, value, threshold, and failing message. This way even for unhandled Attribute names, you should get a solid report for full failure cases. Other cases may show if inxi believes that the item may be approaching failure.
This is a guess so make sure to check the drive and smartctl full output to verify before taking any further action. 🫢
  • Adds, for USB or other external drives, actual model name/serial if available, and different from enclosure model/serial, and corrects block sizes if necessary.
  • Adds for USB drives USB mode (Linux only).
  • Adds in drive temperature for some drives as well, and other useful data. 🌑️

  • -a -E (--bluetooth) β€” bluetooth bestie check-in
    • Adds (hciconfig only) extra line to Report:, Info:. Includes, if available, ACL MTU, SCO MTU, Link policy, Link mode, and Service Classes.
    • Adds PCIe generation, and, if different than running PCIe generation, speed or lanes, link-max: gen: speed: lanes: (only items different from primary shown. Bluetooth PCIe rare).
    • Adds for USB devices USB mode (Linux only).
    • Adds, if present, bluetooth status: discoverable, active discoverable, and pairing items. ✨

  • -a -G β€” the graphics one, this is her main character era πŸ‘‘
    • Adds, if present, possible alternate: kernel modules capable of driving each Device-x (not including the current loaded:). If no non-driver modules found, shows nothing.
NOTE: just because it lists a module does NOT mean it is available in the system, it's just something the kernel knows could possibly be used instead.
  • Adds (AMD/Intel/Nvidia, if available) process: [node] built: [years] to arch: item.
  • Adds (if Linux and Nvidia device) non-free support information (if available). This can be useful for forum support people to determine if the card supports current active legacy Nvidia driver branches, or if the card nonfree driver is EOL or active. Note that if card is current, shows basic series and status.

Includes extended non free Nvidia legacy information (Linux and Nvidia only), and arch: reports (AMD/Intel/Nvidia). Useful to help diagnose driver support issues, shows extra data that can help diagnose/debug. Adds code: item if found and not the same as arch:.

  • Adds for USB devices USB mode (Linux only).

inxi -Gaz

Graphics:
  Device-1: NVIDIA NV34 [GeForce FX 5200] driver: nouveau v: kernel
    non-free: 173.14.xx status: legacy (EOL) last: kernel: 3.12 xorg: 1.15
    release: 173.14.39 arch: Rankine code: NV3x process: 130-150nm
    built: 2003-05 ports: active: VGA-1 empty: DVI-I-1,TV-1
    bus-ID: 01:00.0 chip-ID: 10de:0322 class-ID: 0300
  Display: x11 server: X.Org v: 21.1.3 driver: X: loaded: nouveau
    unloaded: fbdev,modesetting,vesa alternate: nv,nvidia gpu: nouveau
    display-ID: :0 screens: 1

With -y1:

inxi -Gaz -y1

Graphics:
  Device-1: NVIDIA NV34 [GeForce FX 5200]
    driver: nouveau
      v: kernel
      non-free:
        series: 173.14.xx
        status: legacy (EOL)
        last:
          kernel: 3.12
          xorg: 1.15
          release: 173.14.39
    arch: Rankine
      code: NV3x
      process: 130-150nm
      built: 2003-05
    ports:
      active: VGA-1
      empty: DVI-I-1,TV-1
    bus-ID: 01:00.0
    chip-ID: 10de:0322
    class-ID: 0300
  • Adds PCIe generation, and, if different than running PCIe generation, speed or lanes, link-max: gen: speed: lanes: (only items different from primary shown).
  • Adds to Monitors built:, gamma:, ratio: (if found).
  • Adds to OpenGL device memory and unified status, if present.
  • Adds to Vulkan full device report, with full device names, ids, drivers, driver versions, surfaces.
  • Adds Info: Tools: item. Tools are arranged into the following categories: api: (for EGL, OpenGL, Vulkan etc.), de: (specific to a desktop environment), gpu (GPU monitoring and tweaking), wl: (Wayland specific), x11 (x11 specific).

X.org sample (with both xdpyinfo and xrandr data available), one scaled monitor:

inxi -aGz

Graphics:
  Device-1: Advanced Micro Devices [AMD/ATI] Cedar [Radeon HD
    5000/6000/7350/8350 Series] vendor: XFX Pine driver: radeon
    v: kernel alternate: amdgpu arch: TeraScale-2 code: Evergreen
    process: TSMC 32-40nm built: 2009-15 pcie: gen: 1 speed: 2.5 GT/s
    lanes: 16 link-max: gen: 2 speed: 5 GT/s ports:
    active: DVI-I-1,VGA-1 empty: HDMI-A-1 bus-ID: 0b:00.0
    chip-ID: 1002:68f9 class-ID: 0300 temp: 52.0 C
  Display: x11 server: X.Org v: 21.1.14 with: Xwayland v: 24.1.3
    compositor: xfwm4 v: 4.18.0 driver: X: loaded: modesetting
    dri: r600 gpu: radeon display-ID: :0.0 screens: 1
  Screen-1: 0 s-res: 2432x1024 s-dpi: 96
    s-size: 641x270mm (25.24x10.63") s-diag: 696mm (27.38")
  Monitor-1: DVI-I-1 pos: primary,left model: Samsung SyncMaster
    serial: <filter> built: 2004 res: mode: 1280x1024 hz: 60
    scale: 100% (1) gamma: 1.2 size: 338x270mm (13.31x10.63")
    diag: 433mm (17") ratio: 5:4 modes: max: 1280x1024 min: 720x400
  Monitor-2: VGA-1 pos: right model: Dell 1908FP serial: <filter>
    built: 2008 res: mode: 1280x1024 hz: 60 scale: 111% (0.9)
    to: 1152x922 dpi: 86 gamma: 1.4 size: 376x301mm (14.8x11.85")
    diag: 482mm (19") ratio: 5:4 modes: max: 1280x1024 min: 720x400
  API: EGL v: 1.5 hw: drv: amd r600 platforms: device: 0 drv: r600
    device: 1 drv: swrast gbm: drv: kms_swrast surfaceless: drv: r600
    x11: drv: r600 inactive: wayland
  API: OpenGL v: 4.5 vendor: mesa v: 24.2.4-1 glx-v: 1.4
    direct-render: yes renderer: AMD CEDAR (DRM 2.50.0 /
    6.11.5-1-liquorix-amd64 LLVM 19.1.1) device-ID: 1002:68f9
    memory: 1000 MiB unified: no
  API: Vulkan v: 1.3.296 layers: 3 device: 0 type: cpu
    name: llvmpipe (LLVM 19.1.1 256 bits) driver: N/A
    device-ID: 10005:0000 surfaces: xcb,xlib
  Info: Tools: api: clinfo, eglinfo, glxinfo, vulkaninfo
    de: xfce4-display-settings gpu: radeontop x11: xdriinfo, xdpyinfo,
    xprop, xrandr

Wayland sample, with Sway/swaymsg, scaled monitor: inxi -aGz Graphics: Device-1: Intel 2nd Generation Core Processor Family Integrated Graphics vendor: Lenovo driver: i915 v: kernel arch: Gen-6 code: Sandybridge process: Intel 32nm built: 2011 ports: active: LVDS-1 empty: DP-1, DP-2, DP-3, HDMI-A-1, HDMI-A-2, HDMI-A-3, VGA-1 bus-ID: 00:02.0 chip-ID: 8086:0116 class-ID: 0300 Device-2: Chicony integrated camera driver: uvcvideo type: USB rev: 2.0 speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 1-1.6:4 chip-ID: 04f2:b221 class-ID: 0e02 Display: wayland server: X.org v: 1.21.1.13 compositor: Sway v: 1.9 driver: X: loaded: modesetting unloaded: fbdev,vesa dri: crocus gpu: i915 display-ID: 1 Monitor-1: LVDS-1 model: AU Optronics 0x313c built: 2010 res: mode: 1366x768 hz: 60 scale: 110% (1.1) to: 1241x698 dpi: 112 gamma: 1.2 size: 309x173mm (12.17x6.81") diag: 354mm (13.9") ratio: 16:9 modes: 1366x768 API: EGL v: 1.5 hw: drv: intel crocus platforms: device: 0 drv: crocus device: 1 drv: swrast gbm: drv: crocus surfaceless: drv: crocus wayland: drv: crocus inactive: x11 API: OpenGL v: 4.5 compat-v: 3.3 vendor: mesa v: 24.2.4-1 note: incomplete (EGL sourced) renderer: Mesa Intel HD Graphics 3000 (SNB GT2), llvmpipe (LLVM 19.1.1 256 bits) API: Vulkan v: 1.3.290 layers: 3 device: 0 type: cpu name: llvmpipe (LLVM 19.1.1 256 bits) driver: N/A device-ID: 10005:0000 surfaces: wayland Info: Tools: api: eglinfo, glxinfo, vulkaninfo de: xfce4-display-settings wl: swaymsg, wayland-info, wlr-randr x11: xdriinfo, xdpyinfo, xprop, xrandr


---

### <pink>✨ `-a -I` β€” the Info glow-up ✨</pink>

- Adds to **Power:** other <lavender>hibernate</lavender> and <lavender>suspend</lavender> available (`avail:`) states, plus `hibernate suspend image:` size, and if there are any suspend failures (`fails:`), <hotpink>how many</hotpink>. bestie we count the Ls.

- Adds <blue>power daemons/services</blue> (`services:`) that are running. πŸ‘€ heads up: **not all services are daemons**, okay? don't come for me.

- Adds to **Packages** the number of <purple>lib packages</purple> detected per package manager. Also adds detected package managers that have <yellow>0 packages</yellow> listed (they're there, they're just not doing anything, it's giving unemployed). Adds package manager tools (`supported: rpm, dpkg, pkgtool`). Moves to <cyan>Repos</cyan> if `-ra`.

- Adds the <mint>service control tool</mint>, tested for in this exact order: `systemctl` `rc-service` `rcctl` `service` `sv` `/etc/rc.d` `/etc/init.d`. Lowkey so useful when you're on a machine that isn't yours and you need to know which one to type. iykyk.

inxi -aI Info: Memory: total: N/A available: 31.27 GiB used: 14.9 GiB (47.7%) Processes: 651 Power: uptime: 8d 21h 32m states: freeze,mem,disk suspend: deep avail: s2idle wakeups: 14 fails: 3 hibernate: platform avail: shutdown,reboot,suspend,test_resume image: 12.49 GiB services: upowerd,xfce4-power-manager Init: systemd v: 255 target: graphical (5) default: graphical tool: systemctl Packages: pm: dpkg pkgs: 3960 libs: 2184 tools: apt,apt-get,aptitude pm: rpm pkgs: 0 Compilers: gcc: 13.2.0 alt: 5/6/8/9/10/11/12 Shell: Bash v: 5.2.21 running-in: xfce4-terminal pinxi: 3.3.32


---

### <purple>πŸ’œ `-a -j` (`--swap`), `-a -P [swap]`, `-a -P [swap]` πŸ’œ</purple>

- Adds <hotpink>swappiness</hotpink> and <hotpink>vfs cache pressure</hotpink>, plus a lil message telling you whether that value is the <lavender>default</lavender> or not (**Linux only**, and only if it's actually available, no cap). If it's *not* the default, it also shows you what the default was, like:

For `-P` per swap physical partition:

swappiness: 60 (default) cache-pressure: 90 (default 100)


For the `-j` row 1 report:

Kernel: swappiness: 60 (default) cache-pressure: 90 (default 100)


- Adds <cyan>zswap</cyan> data for the row 1 report:

zswap: [yes/no] compressor: [type] max-pool: xx%


- Adds, for <mint>zram</mint> swap type: the active compression type, the available compression types, and max compression streams. ✨

- Adds the device <blue>kernel major:minor number</blue> (**Linux only**).

---

### <cyan>πŸ¦‹ `-a -J` (`--usb`) πŸ¦‹</cyan>

- Adds, if available, USB speed in <yellow>IEC units</yellow> `MiB/s` or `GiB/s`. ⚠️ on BSDs this may be **incorrect** because the data source isn't reliable. These are <hotpink>base 2</hotpink> Bytes per second, btw.

- Adds USB <lavender>mode</lavender> (**Linux only**) β€” that's the technical term the USB group uses to describe USB revisions. In cases where speed and `rev` are an <red>unknown combination</red> (and probably at least one of them is wrong πŸ™ˆ) it shows a message.

> real talk: there are **no granular data sources** in BSDs for accurate revision/lane/speed info, so `mode` just can't be determined there. periodt.

Sample:

Hub-1: 1-0:1 info: hi-speed hub with single TT ports: 14 rev: 2.0 speed: 480 Mb/s (57.2 MiB/s) lanes: 1 mode: 2.0 chip-ID: 1d6b:0002 class-ID: 0900 Device-1: 1-4:2 info: Wacom ET-0405A [Graphire2 (4x5)] type: mouse driver: usbhid,wacom interfaces: 1 rev: 1.1 speed: 1.5 Mb/s (183 KiB/s) lanes: 1 mode: 1.0 power: 40mA chip-ID: 056a:0011 class-ID: 0301 Hub-2: 2-0:1 info: Super-speed hub ports: 8 rev: 3.1 speed: 10 Gb/s (1.16 GiB/s) lanes: 1 mode: 3.2 gen-2x1 chip-ID: 1d6b:0003 class-ID: 0900 Device-1: 2-8:5 info: SanDisk Ultra type: mass storage driver: usb-storage interfaces: 1 rev: 3.0 speed: 5 Gb/s (596.0 MiB/s) lanes: 1 mode: 3.2 gen-1x1 power: 896mA chip-ID: 0781:5581 class-ID: 0806 serial: <filter>


---

### <mint>πŸ“ `-a -L` (`--logical`) πŸ“</mint>

- Expands the <purple>Component</purple> report: shows `size` / `maj-min` of components and devices, plus the mapped name for logical components. Puts each component/device <hotpink>on its own line</hotpink>. one per line, we're not cramming.

- Adds `maj-min` to LV and other devices.

---

### <yellow>⭐ `-a -m` ⭐</yellow>

- Expands `volts` to include `curr`/`min`/`max` values <lavender>even if they're all identical</lavender>. yes even then. we show it.

- Adds RAM module <cyan>firmware version</cyan>, if detected. ngl it's **not common**.

---

### <blue>πŸ’™ `-a -n`, `-a -N`, `-a -i` πŸ’™</blue>

- Adds, if present, `possible alternate:` kernel modules capable of driving each `Device-x` (this does **not** include the current `driver:`). If no non-driver modules are found, it shows <lavender>nothing</lavender>.

> <red>NOTE:</red> just because it lists a module does **NOT** mean it's available in your system. it's just something the kernel *knows* could possibly be used instead. don't @ me when it doesn't work.

- Adds <mint>PCIe generation</mint>, and if it's different from the running PCIe generation, speed or lanes, then `link-max: gen: speed: lanes:` (only the items that are different from the primary get shown).

- Adds for USB devices the USB `mode` (**Linux only**).

- Adds an `Info:` line (`-n`, `-i` only), with the running network type `services:`. and again β€” **not all services are daemons**. for example, NetworkManager can be started with the `--no-daemon` flag. the more you know 🌈

---

### <peach>πŸŽ€ `-a -o` πŸŽ€</peach>

- Adds the device <blue>kernel major:minor number</blue> (**Linux only**).

---

### <hotpink>πŸ’– `-a -p`, `-a -P` πŸ’–</hotpink>

- Adds <lavender>raw partition size</lavender>, including file system overhead and partition table, like:

raw-size: 60.00 GiB.


- Adds the percent of raw size available to the `size:` item, like:

size: 58.81 GiB (98.01%).


> ok so important: the `used: 16.44 GiB (34.3%)` percent refers to the <hotpink>available size</hotpink>, **not** the raw size. keep that straight bestie.

- Adds partition filesystem <cyan>block size</cyan> if found (requires <yellow>root</yellow> and `blockdev`).

- Adds the device <blue>kernel major:minor number</blue> (**Linux only**).

---

### <cyan>🫢 `-a -r` 🫢</cyan>

- Adds to the `Packages:` report. See `-Ia`. that's it, that's the whole vibe.

---

### <purple>πŸ’œ `-a -R` πŸ’œ</purple>

- Adds the device <blue>kernel major:minor number</blue> (`mdraid`, **Linux only**).

- Adds, if available, the component `size` and `major:minor` number (**Linux only**). Turns the Component report into <hotpink>1 component per line</hotpink>.

---

### <mint>✨ `-a -S` ✨</mint>

- Adds alternate kernel <lavender>clock sources</lavender>, if available (**Linux only**).

- Adds kernel <cyan>boot parameters</cyan> to the Kernel section (if detected). support varies by OS type.

- Adds an advanced desktop (`info:`) item, plus version. currently supports **KDE Frameworks** and version.

- Adds other available (`avail:`) screensavers/lockers in the `tools:` section. these are the ones **installed** β€” not necessarily active or running, so don't get your hopes up.

---

### <rainbow>πŸ‘‘ `-a --slots` πŸ‘‘</rainbow>

- Adds PCI <purple>children</purple> of the main slot bus ID, along with their types and class IDs, <hotpink>recursively</hotpink>. **Linux only**, and only if detected. Sample:

Slot: 0 type: PCIe lanes: 16 status: in use length: long volts: 3.3 bus-ID: 00:03.1 children: 1: 07:00.0 class-ID: 0300 type: display 2: 07:00.1 class-ID: 0403 type: audio


---

# <rainbow>πŸ’… ADVANCED OPTIONS πŸ’…</rainbow>

okay bestie this is where the real ones live. advanced = you asked for it, you got it. ✨

---

### <pink>`--alt 40`</pink>

Bypass <cyan>Perl</cyan> as a downloader option. Priority is: `Perl (HTTP::Tiny)`, `Curl`, `Wget`, `Fetch`, (OpenBSD only) `ftp`.

### <pink>`--alt 41`</pink>

Bypass <cyan>Curl</cyan> as a downloader option. Priority is: `Perl (HTTP::Tiny)`, `Curl`, `Wget`, `Fetch`, (OpenBSD only) `ftp`.

### <pink>`--alt 42`</pink>

Bypass <cyan>Fetch</cyan> as a downloader option. Priority is: `Perl (HTTP::Tiny)`, `Curl`, `Wget`, `Fetch`, (OpenBSD only) `ftp`.

### <pink>`--alt 43`</pink>

Bypass <cyan>Wget</cyan> as a downloader option. Priority is: `Perl (HTTP::Tiny)`, `Curl`, `Wget`, `Fetch`, OpenBSD only: `ftp`.

### <pink>`--alt 44`</pink>

Bypass <cyan>Curl</cyan>, <cyan>Fetch</cyan>, and <cyan>Wget</cyan> as downloader options. This basically forces the downloader selection to use <purple>Perl 5.x HTTP::Tiny</purple>, which is generally *slower* than Curl or Wget 😭 but it may help bypass issues with downloading. so like, it's giving last resort but it works.

---

### <lavender>`--bt-tool [bluetoothctl|bt-adapter|btmgmt|hciconfig|rfkill]`</lavender>

See `--force [tool name]`. Used to set the `-E` report tool. πŸ¦‹

---

### <cyan>`--dig`</cyan>

Shortcut. See `--force dig`.

---

### <blue>`--display [:<integer>]`</blue>

Will try to get display data out of X (does <red>not</red> usually work as root user, rip). Default gets display info from display `:0`. If you use the format `--display :1` then it would get it from display `1` instead, or any display you specify. ✨

> ⚠️ heads up: in some cases `--display` will cause inxi to **hang endlessly** when running the option in console with Intel graphics. The situation regarding other free drivers such as `nouveau`/`ATI` is currently **unknown**. It may be that this is a bug with the Intel graphics driver β€” more information is required. πŸ’€

You can test this easily by running the following command out of X/display server:

glxinfo -display :0


If it hangs, `--display` will not work.

---

### <purple>`--dmidecode`</purple>

Shortcut. See `--force dmidecode`.

---

### <mint>`--downloader [curl|fetch|perl|wget]`</mint>

Force inxi to use `Curl`, `Fetch`, `Perl`, or `Wget` for downloads. pick your fighter 🫢

---

### <yellow>`--egl`</yellow>

Shortcut. See `--force egl`.

---

### <hotpink>`--force [option(s)]`</hotpink>

Various force options to let users override defaults. Values can be given as a **comma separated list**:

inxi -MJ --force dmidecode,lsusb


- `bluetoothctl` - Force use of `bluetoothctl` in `-E`.

- **`bt-adapter`** β€” makes `-E` use the `bt-adapter` tool, no negotiating ✨

- **`btmgmt`** β€” makes `-E` use the `btmgmt` tool instead πŸ’«

- **`colors`** β€” pls keep the colors even when output is piped or redirected, we are not stripping the rainbow 🌈 exactly the same thing as `-Y -2`.

- **`cpuinfo`** β€” forces `cpuinfo` to be used over `sys` for the cpu data in `-C` 🧠

- **`dig`** β€” a temporary override of the `NO_DIG` configuration item. Literally only use this to test with/without `dig`. It restores the default behavior for WAN IP, which is: use `dig` if it's there.

- **`dmidecode`** β€” forces `dmidecode` to be used. This one will override `/sys` data on some lines, like `-M` or `-B` πŸ‘‘

- **`egl`** β€” forces the EGL graphics API even when the internal rules are blocking it from running because it might hang 😭 This is sometimes the case with Intel 32 bit Pentium 4 era Gen2 and older GPUs, but it's not consistent, so like, vibe check at your own risk.

- **`hciconfig`** β€” forces `-E` to use the `hciconfig` tool 🌸

- **`hddtemp`** β€” forces `hddtemp` to be used instead of `/sys` temp data for disks πŸ’Ύ

- **`html-wan`** β€” temporary override of the `NO_HTML_WAN` configuration item. Only use it to test with/without HTML downloaders for WAN IP. Restores the default behavior for WAN IP, which is: use the HTML downloader if present **and** if `dig` failed.

- **`ifconfig`** β€” forces `-i` to use the IF tool `ifconfig` 🫢

- **`ip`** β€” forces `-i` to use the IF tool `ip` (this is the default, bestie).

- **`kscreen`** β€” Wayland: forces `-G` monitor data source to `kscreen-console` πŸ’…

- **`lsusb`** β€” makes the USB data generator use `lsusb` as its data source (default). Overrides `USB_SYS` in user configuration file(s).

- **`man`** β€” forces update / install of the man page with `-U` if you're on `pinxi` or using the `-U 3` dev branch. (Only active if `-U` is is not disabled by maintainers β€” yes, the "is is" is theirs, we keep it fr fr). Default is to always install for `inxi`, and not to install for `pinxi`.

- **`no-dig`** β€” overrides the default use of `dig` to get the WAN IP address. Lets the normal downloader tool get the IP addresses instead. Only use it if `dig` is failing, because `dig` is way faster and more reliable in general than the other methods.

- **`no-doas`** β€” skips using `doas` to run certain internal features (like `hddtemp`, `file`) with `doas`. Not related to running inxi itself with `doas`/`sudo` or as super user. Some systems will register errors that then trigger admin emails in those cases, so if you want to disable regular user use of `doas` (which requires configuration to set up anyway for these options) just use this option, or the `NO_DOAS` configuration item. See `--no-sudo` if you need to disable both types πŸ‘€

- **`no-egl`** β€” skips `eglinfo`-sourced EGL graphics API in `-G`. Use it if Graphics hangs, or if you're running a debugger data set that hangs due to the `eglinfo` bug (only found on ancient Pentium 4 w/ Gen 2 GPUs).

- **`no-graphics-api`** β€” skips the graphics API in `-G` πŸ’€

- **`no-html-wan`** β€” overrides the use of HTML downloaders to get the WAN IP address. Either use only `dig`, or don't get the wan IP at all. Only use if `dig` is failing **and** the HTML downloaders are taking too long, or hanging, or failing.

  Make it permanent with `NO_HTML_WAN='true'`

- **`no-man`** β€” disables man page install with `-U` for master and active development branches. (Only active if `-U` is is not disabled by maintainers.) No man install is the default for `pinxi`. Man install is the default for `inxi`.

- **`no-opengl`** β€” skips `glxinfo`-sourced OpenGL graphics API in `-G` πŸŽ€

- **`no-ssl`** β€” skips SSL certificate checks for all downloader actions (`-U`, `-w`, `-i`). Use it if your system doesn't have current SSL certificate lists, or if you have problems making a connection for literally any reason. Works with Wget, Curl, Perl HTTP::Tiny and Fetch πŸ”₯

- **`no-sudo`** β€” skips using `sudo` to run certain internal features (like `hddtemp`, `file`) with `sudo`. Not related to running inxi itself with `sudo` or superuser. Some systems will register errors that then trigger admin emails in those cases, so if you want to disable regular user use of `sudo` (which requires configuration to set up anyway for these options) just use this option, or the `NO_SUDO` configuration item.

- **`no-vulkan`** β€” skips `vulkaninfo`-sourced Vulkan graphics API in `-G` ⭐

- **`rfkill`** β€” forces `-E` to use the `rfkill` tool. Heads up: `rfkill` does not support mac address data πŸ™ˆ

- **`rpm`, `pkg`** β€” overrides the disabled rpm package counts on primarily rpm run systems, because this command can have unacceptably slow execution times on some systems:

rpm -qa --nodigest --nosignature


Even on newer rpm systems, in virtual machines, running the rpm package list query takes more than 0.15 seconds (compared to 0.01 to 0.05 for dpkg, pacman, pkgtool etc) for just this single feature, which is north of 10% of total execution time for `inxi -bar`. On bare metal this can hit 1 second or more in our tests. Older systems have taken up to **30 seconds** to run this command, no cap 😭

For systems that support running rpm along with the primary package installer (dpkg/apt, pacman, and pkgtool/slackpkg), there are not going to be many rpms, if any, installed, so the command runs in those cases (if inxi can determine it is running in that type of system).

- **`sensors-sys`** β€” forces use of `/sys/class/hwmon` data for sensors (excluding ipmi sensors, which are their own line if present), and skips lm-sensors. Generally useful for testing, since sys data is used if no lm-sensors data was found anyway β€” but if lm-sensors was installed and returned no data, it's most likely if not nearly certain that `/sys` will also not return data 🀷

- **`swaymsg`** β€” Wayland: forces `-G` monitor data source to `swaymsg` 🌸

- **`udevadm`** β€” forces use of `udevadm` as data source (currently `-m` RAM data).

- **`usb-sys`** β€” forces the USB data generator to use `/sys` as data source instead of `lsusb` (Linux only) 🐧

- **`vmstat`** β€” forces use of `vmstat` for memory data.

- **`wayland`** β€” Wayland: forces use of Wayland data sources, and disables the x tools `glxinfo`, `xrandr`, `xdpyinfo` ✨

- **`wl-info`** β€” Wayland: forces `-G` monitor data source to `wayland-info` or `weston-info`.

- **`wlr-randr`** β€” Wayland: forces `-G` monitor data source to `wlr-randr`.

- **`wmctrl`** β€” forces the System item `wm` to use `wmctrl` as data source, overriding the default `ps` source πŸ‘‘

---

- **`--hddtemp`** β€” shortcut. See `--force hddtemp`.

- **`--html-wan`** β€” shortcut. See `--force --html-wan`.

- **`--ifconfig`** β€” shortcut. See `--force ifconfig`.

- **`--man`** β€” shortcut. See `--force man`.

- **`--no-dig`** β€” shortcut. See `--force no-dig`.

- **`--no-doas`** β€” shortcut. See `--force no-doas`.

- **`--no-egl`** β€” shortcut. See `--force no-egl`.

- **`--no-html-wan`** β€” shortcut. See `--force no-html-wan`.

- **`--no-man`** β€” shortcut. See `--force no-man`.

- **`--no-opengl`** β€” shortcut. See `--force no-opengl`.

- **`--no-sensor-force`** β€” overrides the user-set `SENSOR_FORCE` configuration value. Restores default behavior πŸ’«

- **`--no-ssl`** β€” shortcut. See `--force no-ssl`.

- **`--no-sudo`** β€” shortcut. See `--force no-sudo`.

- **`--pm-type`** *[package manager name]* β€” for distro package maintainers only, and only for non apt, rpm, or pacman based systems. To be used to test replacement package lists for recommends for that package manager πŸ› οΈ

- **`--rpm`, `--pkg`** β€” shortcut. See `--force rpm`.

- **`--sensors-default`** β€” overrides the configuration values `SENSORS_USE` or `SENSORS_EXCLUDE` on a one time basis.

- **`--sensors-exclude`** β€” Linux only 🐧. Similar to `--sensors-use` except it **removes** the listed sensors from the sensor data. Make it permanent with the `SENSORS_EXCLUDE` configuration item. Note that gpu, network, disk, and other specific device monitor chips are excluded by default.

Example:

inxi -sxx --sensors-exclude k10temp-pci-00c3


- **`--sensors-sys`** β€” shortcut. See `--force sensors-sys`

- **`--sensors-use`** β€” Linux only 🐧. Use only the (comma separated) sensor arrays for the `-s` report. Make it permanent with the `SENSORS_USE` configuration item. The sensor array ID value must be the exact value shown in lm-sensors sensors output (lm-sensors only), or use `-s --dbg 18` (`'main' =>..` section) to see the sensor ID strings used internally. If you only want to exclude one (or more) sensors from the report, use `--sensors-exclude` instead.

Can be useful if the default sensor data used by inxi isn't from the right sensor array. Note that all other sensor data will be removed, which may lead to undesired consequences. Please be aware that this can lead to many undesirable side-effects, since the default behavior is to use all the sensors arrays and select which values to use from them following a set sequence of rules. So if you force one to be used, you may lose data that was used from another one 😬

Most likely best use is when one (or two) of the sensor arrays has all the sensor data you want, and you just want to make sure inxi doesn't use data from another array that has inaccurate or misleading data.

Note that gpu, network, disk, and other specific device monitor chips are excluded by default, and should not be added since they do not provide cpu, board, system, etc, sensor data.

Example:

inxi -sxx --sensors-use nct6791-isa-0290,k10temp-pci-00c3


- **`--sleep`** *[0-x.x]* β€” usually in decimals. Changes the CPU sleep time for `-C` (current: `.35`). Sleep is used to let the system catch up and show a more accurate CPU use 😴 Example:

inxi -Cxxx --sleep 0.15


Overrides the default internal value and the user configuration value:

CPU_SLEEP=0.25


- **`--tty`** β€” forces the internal IRC flag off. Used in unhandled cases where the program running inxi may not be seen as a shell/pty/tty, but it is **not** an IRC client. Put `--tty` first in the option list to avoid unexpected errors. If you want a specific output width, use the `--width` option. If you want normal color codes in the output, use the `-c` *[color ID]* flag.

The sign you need to use this is extra numbers before the key/value pairs of the output of your program. These are IRC, not TTY, color codes. Please post a codeberg.org issue if you find you need to use `--tty` (including the full `-Ixxx` line) so we can figure out how to add your program to the list of whitelisted programs πŸ™

You can literally see what inxi *thought* started it, right there in the `-Ixxx` line, the <cyan>`Shell:`</cyan> or <cyan>`Client:`</cyan> item. So pls pls pls tell us what that result was so we can add it to the parent start program whitelist. Bestie teamwork fr. 🫢

Sometimes you also wanna add `--no-filter`/`-Z` if you actually *want* to see the filtered values. Filtering is ON by default whenever inxi thinks it's chillin' inside an IRC client. πŸŽ€

- **`--usb-sys`** β€” Shortcut. Peep `--force usb-sys`.
- **`--usb-tool`** β€” Shortcut. Peep `--force lsusb`.
- **`--wan-ip-url [URL]`** β€” Forces `-i` to use the URL you hand it as the WAN IP source. It overrides `dig` or the default IP source urls. The URL **must** start with `http[s]` or `ftp`.

The IP address from the URL has to be the last item on the last (non-empty) line of the page content source code. Like, that's the rule, no cap.

Same as configuration value (example):

WAN_IP_URL='https://mysite.com/ip.php'


- **`--wayland`, `--wl`** β€” Shortcut. Peep `--force wayland`.
- **`--wm`** β€” Shortcut. Peep `--force wmctl`.

---

# 🐞 DEBUGGING OPTIONS 🐞

- **`--dbg {[1-x][,[1-x]]}`** β€” Takes one or more comma separated dbg specific debugging numbers. It's giving very particular.

1. Debug downloader failures. Turns off silent/quiet mode for `curl`, `wget`, and `fetch`. Shows more downloader action information. Shows some more information for the Perl downloader.

1-xx. Peep `codeberg.org` in `inxi-perl/docs/inxi-values.txt` for the specific specialized debugging options. There are, and I quote, *a lot*. πŸ’€

- **`--debug [1-3]`** β€” On screen debugger output.
- **`--debug 10`** β€” Basic logging. Check `$XDG_DATA_HOME/inxi/inxi.log` or `$HOME/.local/share/inxi/inxi.log` or `$HOME/.inxi/inxi.log`.
- **`--debug 11`** β€” Full file/system info logging.
- **`--debug 20`** β€” Creates a `tar.gz` file of system data and collects the inxi report in a file.

- tree traversal data file(s) read from `/proc` and `/sys`, and other system data.
- xorg conf and log data, `xrandr`, `xprop`, `xdpyinfo`, `glxinfo` etc.
- data from dev, disks, partitions, etc.

- **`--debug 21`** β€” Automatically uploads the debugger data `tar.gz` file to `ftp.smxi.org`, then removes the debug data directory, but leaves the debug `tar.gz` file. Peep `--ftp` for uploading to alternate locations.
- **`--debug 22`** β€” Automatically uploads the debugger data `tar.gz` file to `ftp.smxi.org`, then removes the debug data directory **and** the `tar.gz` file. Peep `--ftp` for uploading to alternate locations.
- **`--debug-id [string]`** β€” Inserts a string into the file name for the debugger. This is so helpful, like you can add a username to a debugger dataset so it's easy to find. Iconic.

Sample: `--debug 22 --debug-id mrmazda`

- **`--fake-data-dir`** β€” Developer only: Change the default location of `$fake_data_dir`, which is where files for `--fake {item}` items live.
- **`--ftp [ftp.yoursite.com/incoming]`** β€” For alternate ftp upload locations. Example:

inxi --ftp ftp.yourserver.com/incoming --debug 21


---

# πŸ”§ DEBUGGING OPTIONS TO DEBUG DEBUGGER FAILURES πŸ”§

> Only use the following in conjunction with `--debug 2[012]`, and only use if you experienced a failure or hang, or were instructed to do so. Fr fr, this is the "the devs told me to" zone.

- **`--debug-proc`** β€” Force debugger to parse `/proc` directory data when run as root. Normally this is disabled because the data in the `/proc` tree is unpredictable. πŸ™ˆ
- **`--debug-proc-print`** β€” Use this to locate the file that the `/proc` debugger hangs on.
- **`--debug-no-exit`** β€” Skip exit on error when running the debugger.
- **`--debug-no-proc`** β€” Skip `/proc` debugging in case of a hang.
- **`--debug-no-sys`** β€” Skip `/sys` debugging in case of a hang.
- **`--debug-sys`** β€” Force PowerPC debugger parsing of `/sys` as `doas`/`sudo`/`root`.
- **`--debug-sys-print`** β€” Use this to locate the file that the `/sys` debugger hangs on.

---

# πŸ’¬ SUPPORTED IRC CLIENTS πŸ’¬

`BitchX`, `Gaim/Pidgin`, `ircII`, `Irssi`, `Konversation`, `Kopete`, `KSirc`, `KVIrc`, `Weechat`, and `Xchat`. Plus any others that are capable of displaying either built-in or external program output. Inclusive queen behavior. πŸ‘‘

---

# 🌈 RUNNING IN IRC CLIENT 🌈

To trigger inxi output in your IRC client, pick the appropriate method from the list below:

## Hexchat, XChat, Irssi

(and many other IRC clients)

/exec -o inxi [options]


If you don't include the `-o`, only **you** will see the output on your local IRC client. It's giving private viewing, iykyk. πŸ™ˆ

## Konversation

/cmd inxi [options]


To run inxi in Konversation as a native program, if your distribution or inxi package hasn't already done this for you, create this symbolic link:

KDE 4:

ln -s /usr/local/bin/inxi /usr/share/kde4/apps/konversation/scripts/inxi


KDE 5:

ln -s /usr/local/bin/inxi /usr/share/konversation/scripts/inxi


If inxi is somewhere else, change the path `/usr/local/bin` to wherever it's located. No judgement, just accuracy. πŸ’…

If you're using KDE/QT 5, then you may also need to add the following to get the Konversation `/inxi` command to work:

ln -s /usr/share/konversation /usr/share/apps/


Make sure you also have the `qdbus-qt5` package (Debian/Ubuntu + derived), `qt5-qttools` (Fedora/RHEL/SUSE + derived), `qt5-tools` (Arch + derived) installed (for KDE 5/QT 5, check distros for future package names), `qt5-tools` (Arch + derived). Check your distro if the program is missing. Depending on the distro, `/usr/lib/qt5/bin/qdbus` is required, which in Debian+ is provided by the above package.

Then you can start inxi directly, like this:

/inxi [options]


## WeeChat

NEW:

/exec -o inxi [options]


OLD:

/shell -o inxi [options]


Newer (2014 and later) WeeChats work pretty much the same now as other console IRC clients, with `/exec -o inxi [options]`. Newer WeeChats have dropped the `-curses` part of their program name, i.e.: `weechat` instead of `weechat-curses`. Glow-up arc fr. ✨

---

# πŸ“ CONFIGURATION FILE πŸ“

inxi will read its configuration/initialization files in the following order:

`/etc/inxi.conf` contains the default configurations. These can be overridden by creating a `/etc/inxi.conf.d/inxi.conf` file (global override), which will prevent distro packages from changing or overwriting your edits. This method is **recommended** if you're using a distro packaged inxi and want to override some global configuration items from the package's default `/etc/inxi.conf` file but don't want to lose your changes on a package update. Protect your edits, bestie. πŸ›‘οΈ

In case the distro is using either `/usr/etc` or `/usr/local/etc` as the non core tool default location, inxi will use those paths instead, with the `inxi.conf.d/inxi.conf` override option.

You can also override, per user, with a user configuration file found in one of the following locations (inxi will store its config file using the following precedence):

if `$XDG_CONFIG_HOME` is not empty, it will go there, else if `$HOME/.config/inxi.conf` exists, it will go there, and as a last default, the legacy location is used), i.e.:

$XDG_CONFIG_HOME/inxi.conf > $HOME/.config/inxi.conf > $HOME/.inxi/inxi.conf > /usr/etc/inxi.conf > /usr/etc/inxi.conf.d/inxi.conf > /usr/local/etc/inxi.conf > /usr/local/etc/inxi.conf.d/inxi.conf > /etc/inxi.conf.d/inxi.conf > /etc/inxi.conf


# βš™οΈ CONFIGURATION OPTIONS βš™οΈ

okay bestie, so there's a whole docs page that goes way deeper on how to actually set these up, plus a full list of every option, and it lives here:

🌸 Basic Options 🌸

here's the little quick-and-dirty tour of the ones you'll actually probably wanna touch:

  • COLS_MAX_CONSOLE β€” the max display column width on terminal. if your terminal/console width or --width is less than the wrap width, wrapping of the line starter happens πŸ’…
  • COLS_MAX_IRC β€” the max display column width on IRC clients.
  • COLS_MAX_NO_DISPLAY β€” the max display column width when you're out of X / Wayland / desktop / window manager.
  • CPU_SLEEP β€” a decimal value, 0 or more. default is usually around 0.35 seconds. this is how long inxi will "sleep" before it grabs CPU speed data, so that what it reports actually reflects the real system state 😴
  • DOWNLOADER β€” sets the default inxi downloader: curl, fetch, ftp, perl, wget. peep the --recommends output for more info on downloaders and Perl downloaders.
  • FILTER_STRING β€” default <filter>. any string you'd rather see instead, for filtered values.
  • INDENT β€” change the primary indent width of wide mode output. see --indent.
  • INDENTS β€” change the primary indents of narrow wrapped mode output, and the second level indents. see --indents.
  • LIMIT β€” overrides the default of 10 IP addresses per IF. this one is only of interest to sys admins running servers with a ton of IP addresses, so if that's not you, feel free to not care 🫢
  • LINES_MAX β€” values: [-2-xxx]. see -Y for the explanation and the values. use -Y -3 to restore the default unlimited output lines. avoid using this in general unless the machine is a headless system and you want the output to always be controlled.
  • MAX_WRAP (or WRAP_MAX) β€” the maximum width where the line starter wraps onto its own line. if terminal/console width or --width is less than the wrap width, wrapping of the line starter occurs. overrides the default. see --max-wrap. if it's 80 or less, wrap will never happen, periodt.
  • NO_DIG β€” set to 1 or true to disable WAN IP use of dig and force use of the alternate downloaders.
  • NO_DOAS β€” set to 1 or true to disable internal use of doas.
  • NO_HTML_WAN β€” set to 1 or true to disable WAN IP use of HTML Downloaders and force use of dig only, or nothing at all if dig is disabled as well. same as --no-html-wan. only use this if dig is failing and HTML downloaders are hanging.
  • NO_SUDO β€” set to 1 or true to disable internal use of sudo.
  • PARTITION_SORT β€” overrides the default partition report sort. see --partition-sort for the options.
  • PS_COUNT β€” the default number of items showing per -t type, m or c. default is 5.
  • SENSORS_CPU_NO β€” in cases of ambiguous temp1/temp2 (inxi can't figure out which one is the CPU), forces sensors to use either value 1 or 2 as the CPU temperature. see that configuration page on smxi.org above for full info.
  • SENSORS_EXCLUDE β€” exclude the supplied sensor array[s] from the sensor report. override with --sensors-default. see --sensors-exclude.
  • SENSORS_USE β€” use only the supplied sensor array[s]. override with --sensors-default. see --sensors-use.
  • SEP2_CONSOLE β€” replaces the default key / value separator of ':'. test it with --separator.
  • USB_SYS β€” forces all USB data to use /sys instead of lsusb.
  • WAN_IP_URL β€” forces -i to use the supplied URL, and to not use dig (dig is generally much faster). the URL must begin with http or ftp. note that if you use this, the downloader set tests will run each time you start inxi, whether a downloader feature is actually going to be used or not 😭

the IP address from the URL must be the last item on the last (non-empty) line of the URL's page content source code.

same as --wan-ip-url [URL]

  • WEATHER_SOURCE β€” values: [0-9]. same as --weather-source. values 4-9 are not currently supported, but this can change at any time.
  • WEATHER_UNIT β€” values: [m|i|mi|im]. same as --weather-unit.

🎨 Color Options 🎨

okay so genuinely the best move here is to just use the -c [94-99] color selector tool to set the following values, because it will correctly update the configuration file and remove any invalid or conflicting items. but if you're the type who insists on hand-crafting your own configuration files (respect tbh πŸ‘‘), here are the options. they all take the integer value from the options available in -c 94-99.

NOTE: all default and configuration file set color values get removed when output is piped or redirected. you must use the explicit -c [color number] option if you want colors to show up in the piped/redirected output (making a PDF, for example). no cap.
  • CONSOLE_COLOR_SCHEME β€” the color scheme for console output (not in X/Wayland).
  • GLOBAL_COLOR_SCHEME β€” overrides all other color schemes. main character energy fr.
  • IRC_COLOR_SCHEME β€” desktop X/Wayland IRC CLI color scheme.
  • IRC_CONS_COLOR_SCHEME β€” out of X/Wayland, IRC CLI color scheme.
  • IRC_X_TERM_COLOR_SCHEME β€” in X/Wayland, IRC client terminal color scheme.
  • VIRT_TERM_COLOR_SCHEME β€” color scheme for virtual terminal output (in X/Wayland).

πŸ§‘β€πŸ’» Developer Options πŸ§‘β€πŸ’»

these are useful only for developers, so if you're not one, you can scroll on by bestie πŸ’œ

  • FAKE_DATA_DIR β€” change the default fake data directory location. see --fake-data-dir.

πŸ› BUGS πŸ›

please report bugs using the following resources, ily 🫢

you may be asked to run the inxi debugger tool (see --debug 21/22), which will upload a data dump of system files for use in debugging inxi. these data dumps are very important, since they give us all the real system data inxi uses to parse out its report. so like, they're kind of a big deal ✨

πŸ“ Issue Report πŸ“

file an issue report: https://codeberg.org/smxi/inxi/issues

πŸ’¬ Forums πŸ’¬

post on inxi forums:


## 🧚 IRC 🧚

`irc.oftc.net` / `irc.libera.chat`

you can also visit channel: `#smxi` to post issues on either network.

---

# 🏠 HOMEPAGE 🏠
  • home of inxi source repository

- home of pinxi (inxi development version), docs and data.
  • the main docs for inxi. see the pinxi repository for more technical resources.

- follow @smxi on Mastodon!

---

# πŸ‘‘ AUTHOR AND CONTRIBUTORS TO CODE πŸ‘‘

inxi is a fork of locsmif's very clever `infobash` script. iconic origin story honestly.

original infobash author and copyright holder: Copyright (C) 2005-2007 Michiel de Boer aka locsmif

inxi version: Copyright (C) 2008-2025 Harald Hope

this man page was originally created by Gordon Spencer (aka aus9) and is maintained by Harald Hope (aka h2 or TechAdmin).

initial CPU logic, konversation version logic, occasional maintenance fixes, and the initial `xiin.py` tool for `/sys` parsing (obsolete, but still very much appreciated for all the valuable debugger data it helped generate): Scott Rogers

further fixes (listed as known):

- Horst Tritremmel `<hjt at sidux.com>`
- Steven Barrett (aka: damentz) β€” USB audio patch; swap percent used patch.
- Jarett.Stevens β€” dmidecode `-M` patch for older systems with no `/sys`.

---

# πŸ’– SPECIAL THANKS TO THE FOLLOWING πŸ’–

the nice people at `irc.oftc.net` channels `#linux-smokers-club` and `#smxi`, who all really have to be considered co-developers because of their non-stop enthusiasm and willingness to provide real-time testing and debugging of inxi development over the years. absolute legends 🌈

LinuxQuestions.org Slackware forum members, for major help with development and debugging new or refactored features, particularly the redone CPU logic of 2021-12.

Siduction forum members, who have helped get some features working by providing a large number of datasets that have revealed possible variations, particularly for the RAM `-m` option.

AntiX users and admins, who have helped greatly with testing and debugging, particularly for the 3.0.0 release.

ArcherSeven (Max), Brett Bohnenkamper (aka KittyKatt), and Iotaka, who always manage to find the weirdest or most extreme hardware and setups that help make inxi much more robust. honestly obsessed with them for that πŸ™ˆ

for the vastly underrated skill of report error/glitch catching, Pete Haddow. his patience and focus in going through inxi repeatedly to find errors and inconsistencies is much appreciated.

for a huge boost to BSD support, Stan Vandiver, who did a lot of testing and setup many remote access systems for testing and development.

for testing, bug finding, suggestions, feature requests, MrMazda. he has over the years helped shape inxi into what it is today, in particular but not limited to, the Graphics features.

all the inxi package maintainers, distro support people, forum moderators, and in particular, sys admins with their particular issues, which almost always help make inxi better, and any others who contribute ideas, suggestions, and patches.

without a wide range of diverse Linux kernel-based Free Desktop systems to test on, we could never have gotten inxi to be as reliable and solid as it's turning out to be.

and of course, a big thanks to locsmif, who figured out a lot of the core ideas, logic, and tricks originally used in inxi Gawk/Bash. πŸ’…

---

and that's the whole page bestie!! πŸŽ€ this manual is for **inxi 3.3.41**, dated **2026-07-01**, and it's officially **INXI(1)** β€” go forth and run `inxi` on literally everything you own, mwah πŸ’œβœ¨
πŸ“¦ where this page comes from