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 9c832b0e21 docs(knowledge): update cards via knowledge-extraction workflow (5q/round)
7 cards updated, 4 new cards added. Topics: signal-routing,
worker-isolation, storage-layer, adapter-isolation, sense contracts,
workflow runtime enforcement, coding conventions details.

小橘 <xiaoju@shazhou.work>
2026-04-30 05:56:29 +00:00

3.4 KiB

Nerve CLI

nerve — CLI entry point for nerve workspace management.

Workspace Lifecycle

nerve init                    # scaffold a new workspace (nerve.yaml, senses/, workflows/)
nerve init --force            # reinitialize workspace even if ~/.uncaged-nerve/ exists (preserves data/)
nerve init --from <git-url>   # clone existing workspace from git repository
nerve validate                # validate nerve.yaml config
nerve dev                     # run kernel foreground (development, Ctrl+C to stop)
nerve start                   # start daemon (background)
nerve stop                    # stop daemon
nerve status                  # check daemon health (uptime, senses, workflows)
nerve daemon                  # restart daemon (stop + start)

Init Behavior

Default nerve init: Creates workspace at ~/.uncaged-nerve/. If this directory already exists and is non-empty, exits with error requiring --force flag. No merge/overwrite logic — prevents accidental workspace destruction.

Force mode nerve init --force: Reinitializes workspace even if ~/.uncaged-nerve/ exists. Preserves data/ directory (containing sense SQLite databases and logs) but overwrites all config files (nerve.yaml, package.json, etc.) and example senses.

Git clone nerve init --from <url>: Clones existing repository to ~/.uncaged-nerve/. Requires empty target directory — fails if workspace already exists and is non-empty.

Sense Management

nerve create sense <name>     # scaffold a new sense (compute.ts + schema.ts)
nerve sense list              # list configured senses
nerve sense trigger <name>    # manually trigger a sense compute
nerve sense schema <name>     # show sense Drizzle schema
nerve sense query <name>      # inspect sense SQLite database
nerve sense query <name> --sql "SELECT * FROM samples LIMIT 5"

Workflow Management

nerve create workflow <name>  # scaffold a new workflow
nerve workflow trigger <name> --prompt "..." [--max-rounds N] [--dry-run]
nerve workflow list           # list configured workflows
nerve thread                  # list active (queued/started) workflow threads

Knowledge

nerve knowledge sync          # chunk files per knowledge.yaml, compute embeddings → knowledge.db
nerve knowledge query "text"  # search indexed knowledge (cosine similarity)
nerve knowledge query -g "text"           # global search across all indexed repos
nerve knowledge query --repo /path "text" # search specific repo

Logs & Store

nerve logs                    # view daemon logs (last 50 lines)
nerve logs -f                 # follow logs (tail -f style)
nerve logs -n 200             # last N lines
nerve store archive           # archive old log entries to JSONL

Remote

nerve remote add <name> <url> # add a remote daemon endpoint
nerve status --remote <name>  # check remote daemon health

Workspace Layout

my-agent/
  nerve.yaml                  # senses, workflows, extract config
  knowledge.yaml              # knowledge index config (optional)
  senses/
    cpu-usage/
      compute.ts              # sense implementation
      schema.ts               # Drizzle schema
      migrations/             # auto-generated
  workflows/
    cleanup/
      src/index.ts            # workflow definition
  knowledge.db                # generated by nerve knowledge sync
  .knowledge/                 # curated knowledge cards