Skip to main content

CLI reference

One binary, one command surface. Run lumen-agent <command> -h for the full flag list of any command.

CommandWhat it does
runStart the daemon: loopback inspection API, and the capturing proxy when the config enables it
statusWhat this machine's agent is doing: daemon, policy, hooks, routed tooling, spool, last heartbeat
disable / enableThe machine-wide off switch (needs root) — see Service lifecycle
enrollExchange an enrollment token for the per-device cloud credential (run does this itself on startup; this is the manual/MDM flow)
inspectOne-shot inspection from the CLI
policyvalidate | init | show | effective a policy file
intelcompile | check a threat-intel snapshot
classifiershow | score | train | eval the toxicity and topic models
mcpWrap an MCP server (stdio) behind the policy engine
nmNative-messaging host for the browser extension (nm install writes the per-browser host manifests)
proxyThe local LLM API proxy, standalone
autoconfigstatus | apply | revert — discover the AI tooling on this machine and point it at the proxy
hookClaude Code hook guard: reads a hook event on stdin, answers with the policy decision
servicegenerate | install | uninstall the OS service; uninstall also un-routes what autoconfig redirected
upgradeReplace this binary with a released version from the CDN (--check | --to vX.Y.Z | --rollback)
versionPrint the version

The ones you will use daily

inspect — a verdict in one shot

lumen-agent inspect --text "the key is AKIAIOSFODNN7EXAMPLE"
lumen-agent inspect --stage output --intel feed.bloom --text "reset at https://sec-reset-login.example"
lumen-agent inspect --policy demo-policy.yaml --context '{"device":{"managed":false}}' --text "..."

--stage selects prompt (input, default) or response (output) rules; --policy points at a policy file (the CLI default is the built-in enforcing policy); --context feeds the access-rule engine.

status — the whole picture, one screen

lumen-agent status # exit 0 answered, 3 daemon down, 1 no report
lumen-agent status --json | jq '.warnings'

Run it as the developer whose tooling you are asking about — hook and routed-tooling reporting is per-user. Under sudo the report resolves the human from SUDO_USER, the same way service uninstall does.

policy effective — what is actually in force

lumen-agent policy validate --policy /etc/lumen/policy.yaml
lumen-agent policy effective --config /etc/lumen/agent.yaml

effective resolves agent.policy exactly the way run does, so it cannot report something the daemon does not run. --json prints the same thing machine-readably.

intel compile — threat-intel snapshots

lumen-agent intel compile --list feed.txt --out feed.bloom

Compiles an entity list into the memory-mapped bloom filter the malicious-entity detector tests against. An exact list can block; a bloom candidate only logs.