net-mesh-cli
net-mesh — the unified command-line interface for the NET mesh.
The non-interactive counterpart to net-deck: a one-shot tool for operator scripts, CI pipelines, daemon authoring, and ad-hoc cluster inspection. Same SDK underneath, same signed admin chain, no TUI.
Install
# pip
pip install net-mesh-cli
# uv
uv tool install net-mesh-cli
The wheel bundles the Rust net-mesh binary directly (built with maturin's bindings = "bin" mode) — pip install / uv tool install puts it on your $PATH with no compilation step and no Python shim layer.
Wheels are published for linux (glibc + musl, x86_64 + aarch64), macOS (x86_64 + aarch64), and Windows (x86_64 + aarch64). A source distribution is also published for any platform pip can't find a wheel for — that path needs a Rust toolchain.
Run
net-mesh --help
Subcommand surface
| Subcommand | What it does |
|---|---|
version |
SDK version + build metadata. |
identity |
Generate / inspect / fingerprint operator identity files. |
admin |
Signed admin-chain commits — drain, cordon, maintenance, drop-replicas, etc. |
ice |
Break-glass ICE — simulate then commit force-drain / evict / restart / cutover. |
snapshot |
One-shot MeshOsSnapshot reads (and --watch for streaming). |
audit |
Read-only queries against the RedEX-committed audit ledger. |
log tail |
Substrate log stream (--follow, --daemon, --level). |
failures tail |
Substrate failure stream — same shape as log tail. |
cap |
Capability advertisement + discovery. |
peer |
Peer + NAT-traversal helpers. |
daemon |
Per-daemon listing from the local snapshot. |
netdb |
NetDB local KV adapter — Cortex-backed tasks + memories. |
subnet |
Hierarchical subnet inspection (show, ls, tree). |
gateway |
SubnetGateway stats + export-table operator surface. |
channel |
ChannelConfigRegistry inspection (visibility, ls). |
aggregator |
AggregatorDaemon inspection + remote query. |
completion |
Emit a shell-completion script (bash / zsh / fish / powershell). |
man |
Emit the troff(1) man page on stdout. |
Global flags
Applied to every subcommand; environment-variable fallbacks in brackets:
--config <path>[NET_MESH_CONFIG]— profile file (default$XDG_CONFIG_HOME/net-mesh/config.toml).--profile <name>[NET_MESH_PROFILE]— named profile within the config file.--output (json|yaml|ndjson|table|text)— auto-detectstable/texton TTY andjson/ndjsonoff-TTY.--quiet/-q— suppress stderr diagnostics.--verbose/-v—-vinfo,-vvdebug,-vvvtrace.NET_MESH_LOG=env-filter overrides.--no-color[NO_COLOR]— disable ANSI in table / text output.--timeout <dur>— global per-call timeout (e.g.500ms,1h30m). Default30s.
Config + identity
The profile file is optional — every flag has a sensible default. When present, it lives at $XDG_CONFIG_HOME/net-mesh/config.toml (or the platform equivalent) and looks like:
[default]
identity = "~/.config/net-mesh/identity.toml"
endpoint = "in-process"
default_timeout_ms = 30000
[profiles.prod]
identity = "~/.config/net-mesh/ops-identity.toml"
node_addr = "10.0.0.4:7700"
node_pubkey = "abcd…" # 64 hex
psk_hex = "1234…" # 64 hex
Operator identity files are authored by net-mesh identity generate — ed25519 seed + public key + SHA-256 fingerprint, the same format the deck loads from the maintenance node. Every signed admin / ice command picks the identity up from the active profile (or --identity).
Exit codes
Typed via ExitCodeKind. Scripts can match on the discriminator:
0— success2— usage / parse error3— config / identity load failure4— substrate refused the action (auth, ICE threshold, etc.)5— timeout6— transport error
License
Apache-2.0.
Metadata
Release files for net-mesh-cli 0.36.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| net_mesh_cli-0.36.0.tar.gz | 7.4 MB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| net_mesh_cli-0.36.0-py3-none-win_arm64.whl | Python 3 | none | Windows ARM64 | Details |
| net_mesh_cli-0.36.0-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| net_mesh_cli-0.36.0-py3-none-musllinux_1_2_x86_64.whl | Python 3 | none | Linux musl 1.2+ x86-64 | Details |
| net_mesh_cli-0.36.0-py3-none-musllinux_1_2_aarch64.whl | Python 3 | none | Linux musl 1.2+ ARM64 | Details |
| net_mesh_cli-0.36.0-py3-none-manylinux_2_28_x86_64.whl | Python 3 | none | Linux glibc 2.28+ x86-64 | Details |
| net_mesh_cli-0.36.0-py3-none-manylinux_2_28_aarch64.whl | Python 3 | none | Linux glibc 2.28+ ARM64 | Details |
| net_mesh_cli-0.36.0-py3-none-macosx_11_0_arm64.whl | Python 3 | none | macOS 11.0+ ARM64 | Details |
| net_mesh_cli-0.36.0-py3-none-macosx_10_12_x86_64.whl | Python 3 | none | macOS 10.12+ x86-64 | Details |
Total release size: 39.7 MB
Release files / net_mesh_cli-0.36.0.tar.gz
| Download URL | net_mesh_cli-0.36.0.tar.gz |
|---|---|
| Size | 7.4 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2621d055b3b7fc47b773cab1bf207f9e6a49654a138db0f08284b966b62cb42d
|
|
BLAKE2b-256 checksum How to use checksums |
692296d909e4d9eda6056c36992209a1e5ec6dc8490fe64f90556c49e4b73b74
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / net_mesh_cli-0.36.0-py3-none-win_arm64.whl
| Download URL | net_mesh_cli-0.36.0-py3-none-win_arm64.whl |
|---|---|
| Size | 3.8 MB |
| Tags | Python 3 Windows ARM64 |
|
SHA-256 checksum How to use checksums |
a691d6da0e0eba7a4cf9bc03f633c995c959c2caf9f02fbc16eeba0eedc20953
|
|
BLAKE2b-256 checksum How to use checksums |
564ff74636acfd3ced7dd0326e1f320c07f27f0599c4505e580edf9fbbb06a03
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / net_mesh_cli-0.36.0-py3-none-win_amd64.whl
| Download URL | net_mesh_cli-0.36.0-py3-none-win_amd64.whl |
|---|---|
| Size | 4.1 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
043923c9d77ad80eadd13a1bb5f9b25afcd597af94ea1b8a13ddf78c1e33d2a3
|
|
BLAKE2b-256 checksum How to use checksums |
a5b55091d1bdf4d7d20eba642cd0e51739fce349839d3ebcb14fca7fdba51f4a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / net_mesh_cli-0.36.0-py3-none-musllinux_1_2_x86_64.whl
| Download URL | net_mesh_cli-0.36.0-py3-none-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 4.3 MB |
| Tags | Linux musl 1.2+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
f6d77724c9715bed931e3c94ddab1b3935bf511a588e3a64fcefb3d71fe11887
|
|
BLAKE2b-256 checksum How to use checksums |
1625db02a546f10008b36ba76aaf41c28ca6b8eaa6553c9b5720b288080996e5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / net_mesh_cli-0.36.0-py3-none-musllinux_1_2_aarch64.whl
| Download URL | net_mesh_cli-0.36.0-py3-none-musllinux_1_2_aarch64.whl |
|---|---|
| Size | 4.0 MB |
| Tags | Linux musl 1.2+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
aea005d515f65bb286780540d5c8af5a344c19304af8c84c1ca8d57f7ad4952b
|
|
BLAKE2b-256 checksum How to use checksums |
61106bbb976c4174c405758084999b6994f0bf77b71c7ee192f898cf2aa677c3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / net_mesh_cli-0.36.0-py3-none-manylinux_2_28_x86_64.whl
| Download URL | net_mesh_cli-0.36.0-py3-none-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 4.3 MB |
| Tags | Linux glibc 2.28+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
29b7a706895152f8983bad3a1251300d2e39d251c785dd82c773799515c7b846
|
|
BLAKE2b-256 checksum How to use checksums |
3ee72d2f4dec24a5fd11948c60be78e9c752371f65d0c1153bd72ff6463afd0f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / net_mesh_cli-0.36.0-py3-none-manylinux_2_28_aarch64.whl
| Download URL | net_mesh_cli-0.36.0-py3-none-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 4.0 MB |
| Tags | Linux glibc 2.28+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
524dbd73224998e13116a5a572359c5f10aeb18a9e76e42529adbf34ad1acbc2
|
|
BLAKE2b-256 checksum How to use checksums |
aab5f9c1cdda54062168261adb2a22f590bf0acf3e56d4e42d402344da28e593
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / net_mesh_cli-0.36.0-py3-none-macosx_11_0_arm64.whl
| Download URL | net_mesh_cli-0.36.0-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 3.7 MB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
af2880db724d91b4c020abe917d0cfba4261f74460f5fd263033cde9e0563016
|
|
BLAKE2b-256 checksum How to use checksums |
eac7b6862a9bab51bcff822e1ef1f7a8456c09fa593b0de9974c983a3c6ada78
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / net_mesh_cli-0.36.0-py3-none-macosx_10_12_x86_64.whl
| Download URL | net_mesh_cli-0.36.0-py3-none-macosx_10_12_x86_64.whl |
|---|---|
| Size | 4.1 MB |
| Tags | Python 3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
52c9eb30c86910d51befaa16a0e8ddbdd33b1eaa14684b0415d5b5452ea59be6
|
|
BLAKE2b-256 checksum How to use checksums |
9a23d5c19a25f689d250fa8101edc06a4c87bf375a689850a7fe79e9b63676df
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|