CLI === SMARTie comes with an optional command line interface (CLI) which can be installed with: .. code-block:: bash pip install smartie[cli] The CLI provides human-friendly and machine-readable output for common SMARTie commands like enumerating devices and getting temperatures. It can also be used to dump raw device responses for debugging and testing. The CLI is installed as the `smartie` command. Run `smartie --help` for a list of available commands and options. .. code-block:: bash smartie --help List Devices ------------ To list all devices connected to the system, run: .. code-block:: bash smartie enumerate Which will output something like: .. code-block:: text sudo smartie enumerate Path Model Serial Temperature ──────────────────────────────────────────────────────────────────────── /dev/nvme0n1 WD_BLACK SN770 2TB 224123A00621 49 /dev/sdb Samsung SSD 860 EVO 1TB S1Z8NB0ADM0852J 28 /dev/sdc Samsung SSD 860 EVO 1TB S1Z8NB0K317857K 28 /dev/nvme1n1 WD_BLACK SN770 2TB 2WE21!200596 46 /dev/sda Samsung SSD 860 EVO 1TB S3Z8FD0K325382T 28 Device Details -------------- To get detailed information about a specific device, run: .. code-block:: bash smartie details /dev/nvme0n1 Which will output something like: .. code-block:: text sudo smartie details /dev/nvme0n1 ┌───────────────┬──────────────────────────────────────────────────────────────────────────────────────┐ │ Model Number │ WD_BLACK SN770 2TB │ │ Serial Number │ 22421Q800621 │ │ Temperature │ 49°C │ │ │ SMART Attributes │ │ │ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ │ │ │ ┃ Name ┃ Value ┃ │ │ │ ┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩ │ │ │ │ Critical Warning │ ┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━┓ │ │ │ │ │ │ ┃ Offset ┃ Name ┃ Value ┃ │ │ │ │ │ │ ┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━┩ │ │ │ │ │ │ │ [000:001] │ available_spare │ 0x000 │ │ │ │ │ │ │ ├───────────┼────────────────────────┼───────┤ │ │ │ │ │ │ │ [001:002] │ temperature │ 0x000 │ │ │ │ │ │ │ ├───────────┼────────────────────────┼───────┤ │ │ │ │ │ │ │ [002:003] │ degraded_nvm │ 0x000 │ │ │ │ │ │ │ ├───────────┼────────────────────────┼───────┤ │ │ │ │ │ │ │ [003:004] │ read_only │ 0x000 │ │ │ │ │ │ │ ├───────────┼────────────────────────┼───────┤ │ │ │ │ │ │ │ [004:005] │ volatile_memory_backup │ 0x000 │ │ │ │ │ │ │ ├───────────┼────────────────────────┼───────┤ │ │ │ │ │ │ │ [005:008] │ reserved_1 │ 0x000 │ │ │ │ │ │ │ └───────────┴────────────────────────┴───────┘ │ │ │ │ │ Temperature │ 49.85°C │ │ │ │ │ Available Spare │ 100% │ │ │ │ │ Available Spare Threshold │ 10% │ │ │ │ │ Percentage Used │ 8% │ │ │ │ │ Data Units Read │ 17905.66GB │ │ │ │ │ Data Units Written │ 140446.82GB │ │ │ │ │ Host Read Commands │ 347546295 │ │ │ │ │ Host Write Commands │ 6357604683 │ │ │ │ │ Controller Busy Time │ 15482 │ │ │ │ │ Power Cycles │ 115 │ │ │ │ │ Power On Hours │ 10135 │ │ │ │ │ Unsafe Shutdowns │ 69 │ │ │ │ │ Media and Data Integrity Errors │ 0 │ │ │ │ │ Error Information Log Entries │ 0 │ │ │ │ │ Temperature Sensors │ ┏━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━┓ │ │ │ │ │ │ ┃ Sensor ┃ Temperature ┃ │ │ │ │ │ │ ┡━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━┩ │ │ │ │ │ │ │ 0 │ 70°C │ │ │ │ │ │ │ │ 1 │ 37°C │ │ │ │ │ │ │ └─────────────────┴──────────────────────────┘ │ │ │ │ └─────────────────────────────────┴────────────────────────────────────────────────┘ │ └───────────────┴──────────────────────────────────────────────────────────────────────────────────────┘ JSON ---- The CLI can also output JSON for easy parsing by other programs: .. code-block:: bash smartie api --help Dump Raw Device Data --------------------- To dump raw device data for common commands, you can use the `dump` command with the device path and the command name. For example, to dump the `identify` command for a device, run: .. code-block:: bash smartie dump /dev/nvme0n1 identify Which will output something like: .. code-block:: text sudo smartie dump /dev/sdc identify ┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ Offset ┃ Name ┃ Value ┃ ┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩ │ [000:001] │ reserved_1 │ 0x000 │ ├───────────┼─────────────────────┼────────────────────────────────────────────────────────────────────────────────────────┤ │ [001:002] │ retired_3 │ 0x000 │ ├───────────┼─────────────────────┼────────────────────────────────────────────────────────────────────────────────────────┤ │ [002:003] │ response_incomplete │ 0x000 │ ├───────────┼─────────────────────┼────────────────────────────────────────────────────────────────────────────────────────┤ │ [003:006] │ retired_2 │ 0x000 │ ├───────────┼─────────────────────┼────────────────────────────────────────────────────────────────────────────────────────┤ │ [006:007] │ fixed_device │ 0x001 │ ├───────────┼─────────────────────┼────────────────────────────────────────────────────────────────────────────────────────┤ │ [007:008] │ removable_media │ 0x000 │ ├───────────┼─────────────────────┼────────────────────────────────────────────────────────────────────────────────────────┤ │ [008:015] │ retired_1 │ 0x000 │ ├───────────┼─────────────────────┼────────────────────────────────────────────────────────────────────────────────────────┤ │ [015:016] │ device_type │ 0x000 │ ├───────────┼─────────────────────┼────────────────────────────────────────────────────────────────────────────────────────┤ │ [016:160] │ padding_1 │ ┌───────────────────────────────────────────────────────┬────────────────────┐ │ │ │ │ │ FF 3F 37 C8 10 00 00 00 00 00 3F 00 00 00 00 00 00 00 │ .?7.......?....... │ │ │ │ │ └───────────────────────────────────────────────────────┴────────────────────┘ │ ├───────────┼─────────────────────┼────────────────────────────────────────────────────────────────────────────────────────┤ │ [160:320] │ serial_number │ ┌─────────────────────────────────────────────────────────────┬──────────────────────┐ │ │ │ │ │ 33 53 38 5A 42 4E 4B 30 31 33 38 37 37 35 20 4B 20 20 20 20 │ 3S81NK313B7115 K │ │ │ │ │ └─────────────────────────────────────────────────────────────┴──────────────────────┘ │ ├───────────┼─────────────────────┼────────────────────────────────────────────────────────────────────────────────────────┤ │ [320:368] │ padding_2 │ ┌───────────────────┬────────┐ │ │ │ │ │ 00 00 00 00 00 00 │ ...... │ │ │ │ │ └───────────────────┴────────┘ │ ├───────────┼─────────────────────┼────────────────────────────────────────────────────────────────────────────────────────┤ │ [368:432] │ firmware_revision │ ┌─────────────────────────┬──────────┐ │ │ │ │ │ 56 52 30 54 42 31 51 36 │ VR0TB1Q6 │ │ │ │ │ └─────────────────────────┴──────────┘ │ ├───────────┼─────────────────────┼────────────────────────────────────────────────────────────────────────────────────────┤ │ [432:752] │ model_number │ ┌─────────────────────────────────────────────────────────────┬──────────────────────┐ │ │ │ │ │ 61 53 73 6D 6E 75 20 67 53 53 20 44 36 38 20 30 56 45 20 4F │ aSsmnu gSS D68 0VE O │ │ │ │ │ │ 54 31 20 42 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 │ T1 B │ │ │ │ │ └─────────────────────────────────────────────────────────────┴──────────────────────┘ │ └───────────┴─────────────────────┴────────────────────────────────────────────────────────────────────────────────────────┘