ALL-SMI(1)

NAME
all-smi - Command-line utility for monitoring GPU hardware

SYNOPSIS
all-smi [view] [OPTIONS]
all-smi api [OPTIONS]
all-smi help [COMMAND]

DESCRIPTION
all-smi is a comprehensive hardware monitoring tool that provides real-time information about GPU/NPU utilization, memory usage, temperature, power consumption, and other metrics. It supports various hardware platforms including NVIDIA GPUs, Apple Silicon, NVIDIA Jetson, Tenstorrent NPUs, Rebellions NPUs, and Furiosa NPUs. The tool can run in two primary modes:

view mode
    An interactive terminal user interface (TUI) for real-time monitoring

api mode
    A Prometheus-compatible metrics endpoint for integration with monitoring systems

COMMANDS

view
    Run in view mode, displaying an interactive TUI. This is the default mode if no command is specified. Requires sudo permissions on macOS for Apple Silicon metrics.

api Run in API mode, exposing metrics in Prometheus format via HTTP endpoint. Requires sudo permissions on macOS for Apple Silicon metrics.

help
    Display help information about all-smi or a specific command.

OPTIONS

  Common Options

-h, --help
    Display help information

-V, --version
    Display version information

  View Mode Options

--hosts URL...
    A list of host addresses to connect to for remote monitoring. Multiple hosts can be specified. Format: http://hostname:port or https://hostname:port

--hostfile FILE
    A CSV file containing a list of host addresses to connect to for remote monitoring. The file should contain one URL per line.

-i, --interval SECONDS
    The interval in seconds at which to update the hardware information. If not specified, uses adaptive interval based on node count:

    •   Local monitoring: 1 second (Apple Silicon) or 2 seconds (others)

    •   1-10 remote nodes: 3 seconds

    •   11-50 remote nodes: 4 seconds

    •   51-100 remote nodes: 5 seconds

    •   101+ remote nodes: 6 seconds

  API Mode Options

-p, --port PORT
    The port to listen on for the API server (default: 9090)

-i, --interval SECONDS
    The interval in seconds at which to update the hardware information (default: 3)

--processes
    Include the process list in the API output

INTERACTIVE CONTROLS (VIEW MODE)

Tab / Shift+Tab
    Navigate between different tabs (GPU, CPU, Memory, Network, Disk)

Up/Down Arrow Keys, j/k
    Navigate through items in the current tab

Left/Right Arrow Keys, h/l
    Scroll horizontally when content exceeds screen width

Page Up/Page Down
    Scroll through items page by page

Home/End
    Jump to the first/last item

r   Refresh the display immediately

d   Toggle debug log visibility

q, Ctrl+C
    Quit the application

SUPPORTED PLATFORMS

NVIDIA GPUs
    Full support via nvidia-smi, including CUDA information, PCIe status, and performance states

Apple Silicon
    Native support for M1/M2/M3/M4 series with Metal API integration, ANE power monitoring, and thermal pressure tracking

NVIDIA Jetson
    Tegra-specific metrics with DLA (Deep Learning Accelerator) support

Tenstorrent NPUs
    Support for Grayskull and Wormhole architectures with multiple temperature sensors and clock domains

Rebellions NPUs
    Support for ATOM, ATOM+, and ATOM Max variants with PCIe Gen4 interface

Furiosa NPUs
    Support for RNGD architecture with 8-core NPUs and PE utilization tracking

x86 CPUs
    Intel and AMD CPU monitoring on Linux systems

API ENDPOINTS (API MODE)

/metrics
    Prometheus-compatible metrics endpoint with hardware statistics

/health
    Health check endpoint returning "OK"

EXAMPLES

View local hardware in interactive TUI:
    all-smi
    or
    all-smi view

Start API server on default port 9090:
    all-smi api

Start API server on custom port with 5-second interval:
    all-smi api --port 8080 --interval 5

Monitor remote hosts:
    all-smi view --hosts http://node1:9090 http://node2:9090

Monitor hosts from file:
    all-smi view --hostfile cluster_hosts.csv

Monitor remote cluster with custom interval:
    all-smi view --hostfile hosts.csv --interval 10

FILES

hosts.csv
    Example hostfile format for remote monitoring. One URL per line:
    http://node001:9090
    http://node002:9090
    https://node003:9443

ENVIRONMENT

RUST_LOG
    Set logging level (e.g., debug, info, warn, error)

NOTES

•   On macOS, sudo permissions are required for accessing hardware metrics via the powermetrics command

•   Remote monitoring requires the target hosts to be running all-smi in API mode

•   The tool automatically detects available hardware and loads appropriate drivers

•   Connection limits are optimized for high-scale deployments (128+ nodes)

EXIT STATUS

0   Successful execution

1   General error or invalid arguments

130 Interrupted by Ctrl+C (SIGINT)

143 Terminated by SIGTERM

BUGS
Report bugs at: https://github.com/inureyes/all-smi/issues

AUTHOR
Written by Jeongkyu Shin <inureyes@gmail.com>

COPYRIGHT
Copyright (C) 2025 Jeongkyu Shin.
License: MIT OR Apache-2.0
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

SEE ALSO
nvidia-smi(1), powermetrics(1) Project homepage: https://github.com/inureyes/all-smi