nox cleanup delete without --confirm deletes nothing; the vault refuses it for its missing confirm alone and judges only a confirmed delete, and nox records the warranting act only for that one (issue 1126 review 2). Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
mesh-cli
The operator's command on every node: mesh-cli <command line>, in interactive zsh also nox. Each line calls the
seat verb or the module tool that owns its job, through this machine's console, and prints the owner's answer.
nox status
nox conditions --severity urgent
nox deliveries
nox assign <node> <module> --why <text>
nox issue <number>
nox call <node>/node-service-manager.status '{"unit":"plex"}'
nox help
What it places
| What | Where | How |
|---|---|---|
| the program | /usr/local/bin/mesh-cli |
the program bundle, unpacked by an archive resource: the node-engine moves the one file in, refuses to write over a file it did not place, and takes out only that file when the module goes |
| the console's address | /etc/mesh-cli/console |
a file resource from files/console: http://127.0.0.1:${bound:mcp-endpoint:port}/mcp, from the mcp-endpoint the module requires |
the alias nox |
the zsh module's mesh block in ~/.zshrc |
a shell contribution in the normal slot (ADR 0204) |
No link and no second copy. /usr/local/bin is on every account's PATH already. The alias is interactive zsh only:
a script, sudo, a cron line and any document meant to work everywhere say mesh-cli. In interactive zsh the alias
hides any other nox (Arch's python-nox installs /usr/bin/nox); command nox still reaches it.
How it is answered
mesh-cli holds no credential and has no bus account of its own (so its manifest declares no invokes: an account
nothing dials would only be minted and kept). It calls mesh_call on this machine's console, the mesh MCP server the
module node-tools serves on loopback (novox/hq ADR 0152: whoever is on the machine owns the mesh there), and the console
puts the call on the bus, as every agent session on the machine does. The console's address is read from
/etc/mesh-cli/console, or MESH_CONSOLE when set, or node-tools' declared port when the file is not there yet.
- Who judges. The seat that owns the job: a change of placement is a proposal the operator approves
(
mesh-placement.propose), a config value is set with its why (mesh-config.config), a silence or a hand act is recorded as one. Until novox/hq issue 1126 the controller ran these lines and judged the account (ADR 0272); with the controller unassigned, that judgement went with it. - The map. Every line the controller ran, and the seat verb or tool that does its job now, or none, is
commands.go's table (and hq's.work/1126/nox-map.mdwhile issue 1126 runs). A line no seat or module owns says that it was the controller's, that the controller is unassigned, and what to use instead, and exits 1 having called nothing. A line nox cannot read says how it is written and exits 2. - Any address.
nox call <address> [json]calls any seat verb or tool;nox search <words>andnox describe <address>find one and its arguments. - What is printed. The owner's answer as the console gave it (JSON), on standard output with exit 0; an answer the console marks an error (a refusal, nothing serving, no answer within its bound) on standard error with exit 1. A console that does not answer is said as nothing having been called; no answer in time is said as a call that may have run.
nox statusis the delivery view's (mesh-delivery-view.view_status). When the view does not answer, nox says so first, shows the open conditions and the deliveries under their own addresses, and exits 1: they are never passed off as the status.nox enrol open --key <file>runs here and asks nothing of the mesh (ADR 0587 §8).
A process that runs for a verb (it carries MESH_VERB) is refused before anything is called: a verb is never the
operator.
What it does not do yet
- No formatting beyond
nox nodes. Answers are the owners' JSON. - Lines with no owner. Accepting a secret from a person, making or setting the operator key, opening a sealed secret locally, registering a module from another repository and forgetting a module have no seat verb yet; nox names what to use meanwhile.
Tests
go test ./...: every owned line calls its owner's address with the arguments it reads, against a stand-in console
answering MCP tools/call as node-tools does; a line with no owner or not read calls nothing and says why; an error
answer, a silent console and a verb's process are said; the status's fallback is labelled and exits 1; the console's
address is found; enrol open opens a sealed token locally; the module places the program and the console's address
and nothing else.
Files it does not know
Each directory or archive this module declares says how it treats a file it did not write (ADR 0422, ADR 0416).
/usr/local/bin: everything in it is the program's; the mesh moves nothing out (ADR 0422 §2)./etc/mesh-cli: the program's; it holds the console's address alone.