@network-harness/cli
v0.2.0
Published
Part of the network harness: @network-harness/cli.
Readme
harness
The terminal interface to one node.
An interface is the one extension kind the host does not load: this is a client of the control API, with the human's token, and it holds no protocol and derives no caller. Two things it does that the API cannot, because they are about the machine rather than the node: it creates a node's home on first run, and it starts and stops the two processes a node is.
harness setup --command claude # a home, an identity, a spine, an executor
harness start # the daemon, and the worker beside it
harness status # what is running, and what it says it is
harness data add spotify --file export.json
harness extensions add --source @network-harness/protocol-skills --manifest skills.json
harness consents ls # what the node is waiting to be told
harness consents approve <id>
harness api POST /protocols/skills/calls --body '{"skill":"x","input":"y"}'State lives in ~/.harness (override with HARNESS_HOME):
harness.json the api's port and the token, readable by its owner only
data/ the node's own directory: entry files, stores, extension state
private/ the human's data, outside the data directory by design
harness.log both processes' output
daemon.pid what 'harness stop' stops
worker.pidFor a browser instead of a terminal, harness ui serves one page that reads the
same node -- see interfaces/web.
harness api is the escape hatch, and it is deliberate: everything an interface
can do is a route, so a route this CLI has no verb for is still one command
away. An installed protocol's own routes are reached the same way, under
/protocols/<id>/.
