Skip to main content
tmo-cli is the Tensormesh administrator CLI: a kubectl-familiar tool for platform/SRE engineers to observe and operate LMCacheEngine resources (the KV-cache controllers) and their per-GPU-node server pods. It unifies two surfaces — the Kubernetes CRD (lmcacheengines.lmcache.lmcache.ai) for engine lifecycle and status, and each server pod’s HTTP control API (reached through the Kubernetes API-server proxy) for cache state, quotas, and diagnostics.
tmo-cli is the admin/SRE CLI talking directly to your Kubernetes cluster (the data plane).

Install

tmo-cli is distributed privately as part of the gated Tensormesh product — not through public Homebrew or krew. It installs from the Tensormesh container registry (GHCR) using the same access token as the operator chart and images: a token scoped to artifact pull only, which grants no access to Tensormesh source code. If you don’t have one, request it from the Tensormesh team — it’s the same token used in the operator install guide.
The script detects your OS and architecture, pulls the matching binary from GHCR, verifies its SHA-256 against the registry digest, and installs it to /usr/local/bin (falling back to ~/.local/bin if that isn’t writable — no sudo). To pin a version or change the target, pass flags after -s --:

Manual install (air-gapped / CI)

Prefer to pull the artifact yourself? Authenticate to GHCR with your token and use oras:

Verify

How it connects

tmo-cli uses your existing kubeconfig — if kubectl works, tmo-cli works. Resolution precedence: --kubeconfig$KUBECONFIG → the tmo-cli config default → ~/.kube/config.
HTTP commands (node, cache, diag, quota) reach engine pods through the Kubernetes API-server proxy by default — no extra network path, and RBAC on pods/proxy gates them. Pass --direct to reach pod host IPs directly when running inside the cluster.

Global flags

Exit codes

Stable and scriptable:

Common tasks

See the fleet

Deploying or changing engines (owned by Helm)

Engine fleet membership and spec are owned by the Helm releasetmo-cli does not create, apply, edit, or delete engines. To add, change, or remove an engine, edit the chart values and helm upgrade.
The CLI’s role in a rollout is the readiness gate after the upgrade:

Inspect servers and cache state

Operate (destructive — gated)

Destructive runtime operations (cache clear, quota rm) print a blast-radius preamble and require confirmation; pass -y/--yes to bypass. In a non-TTY without --yes they refuse (exit 6) rather than guess.

Diagnose and file a ticket

diag bundle collects the CR, recent events, and each server’s /conf, /status, /threads, and /periodic-threads-health into a gzip tarball. Secrets are redacted by default; /env is included only with --include-env (and is still redacted). Attach the tarball to a support ticket.

Output and scripting

Tables are for humans; -o json (and -o yaml) is the automation contract, wrapped in an envelope with tmoOutputVersion: v1:
Color is off in pipes and non-terminals automatically, and can be forced off with --no-color or NO_COLOR=1.

Troubleshooting

tmo-cli does not phone home — there is no telemetry in the default build.