An nvitop-like terminal monitor for MetaX GPUs.
Project description
metax-mxtop
metax-mxtop is an nvitop-like terminal monitor for MetaX GPUs. Install the PyPI package, then run the mxtop command.
Color bands match nvitop: usage fields and each MEM / MBW / UTL / PWR bar are colored by their own values (memory thresholds 10/80, GPU thresholds 10/75).
| Idle — light load, mostly green | Mixed — per-bar color bands | Heavy — saturation across the cluster |
16-GPU host? mxtop uses an 8+8 compact layout when the terminal is wide enough, with a single-column fallback for narrower screens.
Features
- nvitop-like terminal dashboard for MetaX GPUs.
- Read-only monitoring through MXSML/Pymxsml or
mx-smi. - GPU device panel with temperature, power, utilization, memory, bus id, persistence, performance state, and driver fields when available.
- Host panel with load average, CPU, memory, swap, and aggregate GPU utilization.
- Process table with GPU, PID, user, GPU memory, GPU utilization, CPU, host memory, runtime, command, selection, scrolling, and sorting.
- ANSI-colored one-shot output and curses TUI colors aligned with the nvitop-style visual hierarchy.
- Shared filters for TUI, text, and JSON output.
The monitor is intentionally read-only. It does not run firmware update, GPU reset, persistence-mode mutation, process kill, or other destructive/admin commands.
Install
From PyPI:
pip install -U metax-mxtop
The installed command is:
mxtop
From source:
git clone https://github.com/linkedlist771/metax-mxtop.git
cd metax-mxtop
pip install -e .
MetaX backend discovery
mxtop tries backends in this order when --backend auto is used:
- Pymxsml/MXSML, when importable and usable.
mx-smi, when the CLI is available.
For the mx-smi backend, the executable path is resolved in this order:
- Explicit backend path when constructed by callers.
MXTOP_MXSMI_PATHenvironment variable./opt/mxdriver/bin/mx-smi.mx-smifromPATH.
Example:
MXTOP_MXSMI_PATH=/opt/mxdriver/bin/mx-smi mxtop --backend mxsmi
Usage
Interactive dashboard:
mxtop
One-shot colored text output:
mxtop --once
Plain text output:
mxtop --once --no-color
JSON output:
mxtop --json
Common filters:
mxtop --only 0 1
mxtop --user alice bob
mxtop --pid 1234 5678
mxtop --only-compute
mxtop --only-graphics
Backend and layout options:
mxtop --backend auto
mxtop --backend pymxsml
mxtop --backend mxsmi
mxtop --interval 1.0
mxtop --monitor auto
mxtop --monitor full
mxtop --monitor compact
Useful CLI flags:
| Flag | Meaning |
|---|---|
--version |
Print the runtime version. |
--backend {auto,pymxsml,mxsmi} |
Select telemetry backend. |
--interval SECONDS |
TUI refresh interval, minimum 0.25. |
--once, -1 |
Print one text snapshot and exit. |
--json |
Print one JSON snapshot and exit. |
--no-color |
Disable ANSI colors in text output. |
--monitor {auto,full,compact} |
Select TUI layout mode. |
--only INDEX... |
Show only selected GPU indices. |
--user USER... |
Show only processes owned by selected users. |
--pid PID... |
Show only selected process IDs. |
--compute, --graphics |
Prefer matching process types when available. |
--only-compute, --only-graphics |
Require matching process types when available. |
--ascii, --no-unicode |
Reserve ASCII-only rendering mode. |
Interactive keys
| Key | Action |
|---|---|
q, Esc, Ctrl-C |
Quit. |
h, ? |
Toggle help. |
r |
Refresh immediately. |
j, k, arrow up/down |
Move selected process. |
PageUp, PageDown |
Scroll vertically. |
| Arrow left/right | Scroll the command column horizontally. |
,, . |
Cycle process sort field. |
/ |
Reverse current sort. |
a |
Auto layout. |
f |
Full layout. |
c |
Compact layout. |
o then a sort key |
Direct process sort when supported. |
Packaging and releases
The PyPI distribution name is metax-mxtop; the Python import package and CLI command are both mxtop.
pip install metax-mxtop
mxtop --version
Release automation is tag-driven:
- Bump
pyproject.toml,src/mxtop/__init__.py, andtests/test_version.pyto the new version. - Commit the change.
- Create a new semver tag, for example
v0.1.4. - Push the commit and that tag.
GitHub Actions then builds the wheelhouse, creates or updates the GitHub Release, and publishes the package to PyPI through Trusted Publishing for v* tags.
Development
Run tests and lint locally:
uv run --with pytest --with psutil pytest -q
uv run --with ruff ruff check .
uv run --with build python -m build
More background is available in INTRO.md.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file metax_mxtop-0.1.9.tar.gz.
File metadata
- Download URL: metax_mxtop-0.1.9.tar.gz
- Upload date:
- Size: 33.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b8903b2ff9f0551024295a6921b4609cbbc344ba6aea0b05a684a514f124ff18
|
|
| MD5 |
90fc2aeb5106bf23fb647a3be03c47f7
|
|
| BLAKE2b-256 |
c78674f81b82f15fbc91bab2f7a0b1833e27c3005cb97d9f783249fb0100ad19
|
Provenance
The following attestation bundles were made for metax_mxtop-0.1.9.tar.gz:
Publisher:
wheels.yml on linkedlist771/metax-mxtop
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
metax_mxtop-0.1.9.tar.gz -
Subject digest:
b8903b2ff9f0551024295a6921b4609cbbc344ba6aea0b05a684a514f124ff18 - Sigstore transparency entry: 1545931560
- Sigstore integration time:
-
Permalink:
linkedlist771/metax-mxtop@d79e7d5aaf319d967ceaeccbad1d5e997fb75f6b -
Branch / Tag:
refs/tags/v0.1.9 - Owner: https://github.com/linkedlist771
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@d79e7d5aaf319d967ceaeccbad1d5e997fb75f6b -
Trigger Event:
push
-
Statement type:
File details
Details for the file metax_mxtop-0.1.9-py3-none-any.whl.
File metadata
- Download URL: metax_mxtop-0.1.9-py3-none-any.whl
- Upload date:
- Size: 33.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ac9042b694acf93d5cc1f0afc462c5e5054eaa2fa1169158d1dea2c16eb49751
|
|
| MD5 |
8753d2a6b45461da4bc5390ab40f262b
|
|
| BLAKE2b-256 |
350df0277580eb139d62308e848f3969a8ea91a97e7ef9cff19741bd7b07fa22
|
Provenance
The following attestation bundles were made for metax_mxtop-0.1.9-py3-none-any.whl:
Publisher:
wheels.yml on linkedlist771/metax-mxtop
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
metax_mxtop-0.1.9-py3-none-any.whl -
Subject digest:
ac9042b694acf93d5cc1f0afc462c5e5054eaa2fa1169158d1dea2c16eb49751 - Sigstore transparency entry: 1545931646
- Sigstore integration time:
-
Permalink:
linkedlist771/metax-mxtop@d79e7d5aaf319d967ceaeccbad1d5e997fb75f6b -
Branch / Tag:
refs/tags/v0.1.9 - Owner: https://github.com/linkedlist771
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
wheels.yml@d79e7d5aaf319d967ceaeccbad1d5e997fb75f6b -
Trigger Event:
push
-
Statement type: