Skip to main content

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.

net-mesh

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 freeze-cluster / thaw-cluster / flush-avoid-lists / force-evict-replica / force-restart-daemon / force-cutover / kill-migration.
snapshot One-shot substrate reads, both requiring --local: get prints the MeshOsSnapshot; status prints the typed StatusSummary.
audit Read-only queries against the RedEX-committed audit ledger.
log tail Substrate log stream (--follow, --daemon, --min-level).
failures tail Substrate failure stream — same shape as log tail.
cap Capability advertisement + discovery.
peer Peer + NAT-traversal helpers (peer ls today; reflex/NAT in Phase 2).
daemon Per-daemon listing from the local snapshot.
netdb NetDB local KV adapter — Cortex-backed tasks + memories.
org Organization root authority authoring (keygen / issue-cert / issue-floors).
node Node ownership provisioning (adopt).
subnet Hierarchical subnet inspection (show, ls, tree).
gateway SubnetGateway stats + export-table operator surface.
channel ChannelConfigRegistry inspection (visibility, ls).
aggregator AggregatorDaemon inspection + remote query.
transfer Blob + directory transfer (recv-blob / send-blob / recv-dir / send-dir / ls / status / cancel).
wrap Wrap a local stdio MCP server as owner-only mesh capabilities.
mcp MCP bridge — expose mesh capabilities to a local MCP host (serve).
forwarding Caller-side credential/header forwarding policy + audit (deny-by-default).
typegen Generate typed language bindings from discovered tool descriptors.
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.
  • --insecure-config-permissions [NET_MESH_INSECURE_CONFIG_PERMISSIONS] — read the profile even when it is group/world-accessible or owned by another user.
  • --output (json|yaml|ndjson|table|text) — auto-detects table/text on TTY and json/ndjson off-TTY.
  • --quiet / -q — suppress stderr diagnostics.
  • --verbose / -v — -v info, -vv debug, -vvv trace. 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). Default 30s.

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 — success
  • 1 — generic error
  • 2 — invalid arguments / parse error
  • 3 — SDK error
  • 4 — ICE simulation blocked
  • 5 — operator-policy reject
  • 6 — connection failure
  • 7 — timeout
  • 8 — confirmation refused
  • 10 — daemon: factory id not registered
  • 11 — db: query JSON failed to parse
  • 12 — db: predicate DSL (--where / --filter) failed to parse
  • 13 — ice: a supplied operator signature failed verification
  • 14 — typegen diff --exit-code: a breaking schema change was detected

License

MIT OR Apache-2.0. See LICENSE-MIT and LICENSE-APACHE.

Metadata

Release files for net-mesh-cli 0.38.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for net-mesh-cli 0.38.0
File Size Uploaded
net_mesh_cli-0.38.0.tar.gz 10.3 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for net-mesh-cli 0.38.0
File
net_mesh_cli-0.38.0-py3-none-win_arm64.whl Python 3 none Windows ARM64 Details
net_mesh_cli-0.38.0-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
net_mesh_cli-0.38.0-py3-none-musllinux_1_2_x86_64.whl Python 3 none Linux musl 1.2+ x86-64 Details
net_mesh_cli-0.38.0-py3-none-musllinux_1_2_aarch64.whl Python 3 none Linux musl 1.2+ ARM64 Details
net_mesh_cli-0.38.0-py3-none-manylinux_2_28_x86_64.whl Python 3 none Linux glibc 2.28+ x86-64 Details
net_mesh_cli-0.38.0-py3-none-manylinux_2_28_aarch64.whl Python 3 none Linux glibc 2.28+ ARM64 Details
net_mesh_cli-0.38.0-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
net_mesh_cli-0.38.0-py3-none-macosx_10_12_x86_64.whl Python 3 none macOS 10.12+ x86-64 Details

Total release size: 57.4 MB

Release files / net_mesh_cli-0.38.0.tar.gz

Download URL net_mesh_cli-0.38.0.tar.gz
Size 10.3 MB
Tags Source
SHA-256 checksum
How to use checksums
d98ea40b199a5d1443e05451a030a72100dccfe06be760ef388d338166fe4a13
BLAKE2b-256 checksum
How to use checksums
5e4ab0fbbc74746657c20c6308cf45781573e81224e91b4340279500de58f243
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.38.0-py3-none-win_arm64.whl

Download URL net_mesh_cli-0.38.0-py3-none-win_arm64.whl
Size 5.6 MB
Tags Python 3 Windows ARM64
SHA-256 checksum
How to use checksums
3e3766c917c7b177f36a509936c5bf4c15d6b55eb92765ed22ed7144f73dbade
BLAKE2b-256 checksum
How to use checksums
19f32945e7daab6abfc902bfb82f264916792853e3d8fa1ec211f038c5ed61b8
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.38.0-py3-none-win_amd64.whl

Download URL net_mesh_cli-0.38.0-py3-none-win_amd64.whl
Size 5.9 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
d5040fd089b7ca50c6aad901323e2f4d767854469833126e809b0403c6b867a0
BLAKE2b-256 checksum
How to use checksums
8c07fa381f2a248b4288eda2eb920069b75a11f3292934910827fce3805979bd
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.38.0-py3-none-musllinux_1_2_x86_64.whl

Download URL net_mesh_cli-0.38.0-py3-none-musllinux_1_2_x86_64.whl
Size 6.2 MB
Tags Linux musl 1.2+ x86-64 Python 3
SHA-256 checksum
How to use checksums
85eefd6bbb3eb4bfacdf8ef659787dae646df1ed75e6abb94b6ecab9c810afe2
BLAKE2b-256 checksum
How to use checksums
fea8b2d1fd040e8e285b5344f925a8a6f2448ec03c9780bdb06c743d77600d88
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.38.0-py3-none-musllinux_1_2_aarch64.whl

Download URL net_mesh_cli-0.38.0-py3-none-musllinux_1_2_aarch64.whl
Size 5.9 MB
Tags Linux musl 1.2+ ARM64 Python 3
SHA-256 checksum
How to use checksums
84a10203fc0291e264c426b1660659bcb90d1fe2bccda48f3a5bdbf0721e5ef0
BLAKE2b-256 checksum
How to use checksums
0b16ae2fd18bff1e71158dfc3afb509757cff6562913333325aec8cec5c0e536
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.38.0-py3-none-manylinux_2_28_x86_64.whl

Download URL net_mesh_cli-0.38.0-py3-none-manylinux_2_28_x86_64.whl
Size 6.2 MB
Tags Linux glibc 2.28+ x86-64 Python 3
SHA-256 checksum
How to use checksums
22a8b6a2cfe7a6fb32d178200fca4bf8922ac154a0e059038c74c822ebed11dd
BLAKE2b-256 checksum
How to use checksums
d2aaa509eb9dc2bbadcebbf0c14115e1dde97e044a3ed095dceeaef6445b4104
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.38.0-py3-none-manylinux_2_28_aarch64.whl

Download URL net_mesh_cli-0.38.0-py3-none-manylinux_2_28_aarch64.whl
Size 5.9 MB
Tags Linux glibc 2.28+ ARM64 Python 3
SHA-256 checksum
How to use checksums
d6a6f6ce1a6257c7fcb1c96d7f3d5fa0bdb9b0713ca9141fe4db23fca38a56c6
BLAKE2b-256 checksum
How to use checksums
0b28c5819e9ea6b67b7051549b7b967603c7846a2a75290c0ebed0eb38b6cdc6
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.38.0-py3-none-macosx_11_0_arm64.whl

Download URL net_mesh_cli-0.38.0-py3-none-macosx_11_0_arm64.whl
Size 5.4 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
d8cbeb25f9ac8fb76174bcbcbe29e4522ccc23bca16221a9847b419132316bc5
BLAKE2b-256 checksum
How to use checksums
00c9c774a7389fec96d71586290cfec65f0958603cb2da8c2df61c7f38a4a982
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.38.0-py3-none-macosx_10_12_x86_64.whl

Download URL net_mesh_cli-0.38.0-py3-none-macosx_10_12_x86_64.whl
Size 6.0 MB
Tags Python 3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
0f6cad9fbce3dd0ee564caf3d1b335ed97ed601c92b403855039430f3fc60841
BLAKE2b-256 checksum
How to use checksums
d1821a21990536b352a40f09b368d5cd93af90c1919ae3e8c80167a0e123420f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

0.43.0

9 release files

0.38.2

9 release files

0.38.1

9 release files

This release

0.38.0 This release

9 release files

0.37.1

9 release files

0.37.0

9 release files

0.36.0

9 release files

0.35.0

9 release files

0.33.0

9 release files

0.32.0

9 release files

0.29.1

9 release files

0.28.0

9 release files

0.27.7

9 release files

0.27.6

9 release files

0.27.5

9 release files

0.27.4

9 release files

0.27.3

9 release files

0.27.2

9 release files

0.26.0

9 release files

0.25.2

9 release files

0.25.1

9 release files

0.25.0

9 release files

0.24.0

9 release files

0.23.0

9 release files

0.22.0

9 release files

0.21.0

9 release files

0.20.2

9 release files

0.20.1

9 release files

0.19.0

9 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page