This repository has been archived on 2026-06-01. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
xiaoju 8dd82d99da refactor(core): remove WorkflowTrigger from SenseTrigger — shell only
Senses trigger shell commands only. Workflows are invoked via CLI.

SenseTrigger is now { command: string } — no discriminated union.

Closes #318

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-02 12:33:38 +00:00
..

@uncaged/nerve-cli

Command-line interface for the nerve observation engine.

Install

pnpm add -g @uncaged/nerve-cli
# or
npx @uncaged/nerve-cli

Requires Node.js ≥ 22.5.

Commands

Workspace

nerve init                  # Initialize a nerve workspace (installs deps, scaffolds config)
nerve validate              # Validate nerve.yaml configuration

Daemon management

nerve daemon start          # Start the daemon (background)
nerve daemon stop           # Stop the daemon
nerve daemon status         # Show pid, uptime, sense names from nerve.yaml (process must exist)
nerve daemon restart        # Stop then start
nerve daemon logs           # Tail daemon process logs (file under workspace logs/)

Development

nerve dev                   # Foreground kernel with file watcher + IPC (Ctrl+C stops)

Querying & status

nerve logs                  # Tail or page the daemon text log file (path in footer; default ~/.uncaged-nerve/logs/nerve.log)
nerve status                # Short daemon health summary (aliases daemon status)

Structured rows in data/logs.db are surfaced via nerve workflow inspect / nerve workflow list (and LogStore in code), not via nerve logs.

Sense

nerve sense list            # List senses (live fields from daemon IPC when running)
nerve sense trigger <name>  # IPC trigger-sense — queue a compute for that sense

Sense state is persisted as JSON under data/senses/<name>.json by the sense worker after each successful compute.

Store maintenance

nerve store archive         # Move old log rows to JSONL under data/archive/logs/… (optional --vacuum)

Workflows

nerve workflow list         # Queued/started runs (add --all for terminal states; --workflow, --limit, --offset)
nerve workflow inspect <runId>   # Run metadata + paginated workflow log lines
nerve workflow thread <runId>    # Role rounds from persisted messages (--before, --budget)
nerve workflow trigger <name>    # IPC trigger-workflow (daemon must be running)
                                   # Optional JSON: --payload '{"prompt":"…","maxRounds":50}'

nerve workflow trigger sends a trigger-workflow line on the daemon Unix socket (same protocol as @uncaged/nerve-core / parseDaemonIpcRequest). It does not read nerve.yaml workflow definitions beyond what the running daemon already loaded.

Top-level aliases

nerve start    → nerve daemon start
nerve stop     → nerve daemon stop
nerve status   → nerve daemon status
nerve logs     → nerve daemon logs

License

MIT