CLI
Commands
Section titled “Commands”| Command | Job |
|---|---|
neurodock init | Detect installed MCP clients, scaffold the profile, register the five substrate servers. |
neurodock install-all | One-command install: detect uv or pip, install the six Python packages, then run init. |
neurodock examples | Print copy-pasteable prompts that exercise every wired NeuroDock MCP tool. |
neurodock doctor | Verify the install. Profile readable, all servers start, embedding backend reachable. |
neurodock validate | Ajv-driven schema validation against the canonical profile schema. |
neurodock update | Upgrade NeuroDock — re-installs the six MCP servers via pip/uv and re-wires clients. |
neurodock sync | Re-shape stale NeuroDock MCP entries in client configs without upgrading packages. |
neurodock uninstall | Reverse what init did. Preserves data unless --purge. |
neurodock host install | Register the optional Chrome Native Messaging host with installed browsers. |
neurodock host uninstall | Remove the native messaging host manifests / registry pointers. |
neurodock profile show | Print the loaded profile with loader defaults applied. |
neurodock profile validate | Validate ~/.neurodock/profile.yaml against the schema. |
neurodock plugin add | Install a plugin from a local directory into ~/.neurodock/plugins/. |
neurodock plugin remove | Remove an installed plugin. |
neurodock plugin list | List installed plugins and their enabled state. |
neurodock plugin enable | Activate an installed plugin (writes the .enabled marker). |
neurodock plugin disable | Deactivate an installed plugin (removes the .enabled marker; keeps files). |
neurodock plugin validate | Validate a plugin manifest without installing. |
neurodock install-hooks | Wire the proactive-guardrail hook into Claude Code, optionally autostart the daemon. |
neurodock init
Section titled “neurodock init”npx neurodock initDetect Claude Desktop, Claude Code, and Cursor; scaffold ~/.neurodock/profile.yaml; register the five substrate MCP servers in each detected client.
| Flag | Default | Meaning |
|---|---|---|
--client <id> | all | Restrict to claude-desktop, claude-code, cursor, or all. |
--profile <id> | example | Use example (richer) or minimal (smaller) preset. |
--dry-run | false | Print every file that would be created or modified without touching anything. |
--yes | false | Answer yes to all prompts (idempotent re-runs, collisions). |
Exit codes: 0 on success.
Example:
npx neurodock init --client claude-desktop --profile minimal --dry-runneurodock install-all
Section titled “neurodock install-all”npx neurodock install-allThe one-command first-time install. Detects whether uv is on PATH (preferred) and falls back to python -m pip, installs the six Python MCP servers (neurodock-mcp-chronometric, neurodock-mcp-cognitive-graph, neurodock-mcp-task-fractionator, neurodock-mcp-translation, neurodock-mcp-guardrail, neurodock-evals), verifies each entrypoint with <command> --help, and then runs neurodock init to wire MCP clients. Collapses six pip install lines plus an init into one.
| Flag | Default | Meaning |
|---|---|---|
--client <id> | all | claude-desktop, claude-code, cursor, or all. |
--profile <id> | example | minimal or example. |
--installer <id> | auto | uv, pip, or auto. |
--skip-install | false | Skip the Python install step; only run init. |
--yes | false | Answer yes to all prompts. |
--dry-run | false | Print what would happen without writing. |
Exit codes: 0 on success; 1 if any entrypoint is missing from PATH; 2 if init fails.
Example:
npx neurodock install-all --installer uv --yesneurodock examples
Section titled “neurodock examples”neurodock examplesPrint a copy-pasteable prompt cheat-sheet that exercises every wired NeuroDock MCP tool. Detects which servers are wired across all detected client configs and prints 2–3 example prompts per server, each annotated with the underlying tool name. Honours NO_COLOR / FORCE_COLOR.
| Flag | Default | Meaning |
|---|---|---|
--server <name> | — | Filter to a single server (e.g. neurodock-chronometric). |
--json | false | Print the example data as JSON for scripting. |
Exit codes: 0 on success.
Example:
neurodock examples --server neurodock-guardrailneurodock doctor
Section titled “neurodock doctor”neurodock doctorChecklist diagnostic. Each line is PASS, FAIL, or SKIP with a short reason.
Checks:
- Node >= 22.
uvavailable (skip if absent —pipfallback is acceptable).- Python available.
- Profile presence and schema validity.
- Client config JSON syntax for each detected client.
- NeuroDock server wiring in each detected client.
Exit codes: 0 if all checks pass; 1 otherwise.
neurodock validate
Section titled “neurodock validate”neurodock validateAjv-driven schema validation against packages/core/schemas/profile.schema.json. Reports field-path violations with file:line references.
| Flag | Default | Meaning |
|---|---|---|
--file <path> | resolved profile path | Validate an alternate file. |
--strict | false | Also flag unknown keys (default allows forward-compat extras, per ADR 0004). |
Exit codes: 0 if valid; 1 if missing, unparseable, or invalid.
neurodock update
Section titled “neurodock update”neurodock updateUpgrades NeuroDock to the latest version. Same code path as install-all — re-runs pip install --upgrade (or uv tool install) for every NeuroDock MCP server, re-wires the detected MCP clients, and re-registers the optional native-messaging host. This is the verb users look for when they want a version bump.
| Flag | Default | Meaning |
|---|---|---|
--client <id> | all | claude-desktop, claude-code, cursor, or all. |
--profile <id> | example | minimal or example. |
--installer <id> | auto | uv, pip, or auto. |
--skip-install | false | Skip the Python upgrade step (only re-wire clients). |
--yes | false | Answer yes to all prompts. |
--dry-run | false | Print what would happen without writing. |
--no-native-host | n/a | Skip re-registering the optional native-messaging host. |
Exit codes: 0 ok; 1 an entrypoint is missing from PATH after install; 2 init failed.
Before 0.5.0, neurodock update only re-shaped client configs (without upgrading packages). That behaviour moved to neurodock sync.
neurodock sync
Section titled “neurodock sync”neurodock syncRe-shape stale NeuroDock MCP entries in existing client configs (version drift, command/args/cwd changes) without upgrading any packages. Non-NeuroDock entries and unrelated top-level keys round-trip untouched. Useful when the desired wiring shape changed but you don’t need a package upgrade.
| Flag | Default | Meaning |
|---|---|---|
--client <id> | all | claude-desktop, claude-code, cursor, or all. |
--dry-run | false | Print the diff without writing anything. |
Exit codes: 0 on success.
neurodock uninstall
Section titled “neurodock uninstall”neurodock uninstallReverses what init did. Removes NeuroDock MCP entries from each client config while preserving customisations. Asks (interactively) whether to delete ~/.neurodock/profile.yaml and ~/.neurodock/cognitive-graph.sqlite; defaults to no.
| Flag | Default | Meaning |
|---|---|---|
--client <id> | all | claude-desktop, claude-code, cursor, or all. |
--dry-run | false | Print the diff without writing. |
--yes | false | Skip interactive prompts (still preserves data unless --purge). |
--purge | false | Also delete ~/.neurodock/profile.yaml and cognitive-graph.sqlite. |
Exit codes: 0 on success.
neurodock host install
Section titled “neurodock host install”neurodock host installRegister the optional NeuroDock native messaging host (com.neurodock.profile) with installed browsers so the browser extension can read and write ~/.neurodock/profile.yaml directly. Per-platform manifest dispatch lives in @neurodock/native-host.
| Flag | Default | Meaning |
|---|---|---|
--extension-id <id> | — | Browser extension id allowed to connect. Repeatable. |
Exit codes: 0 on success.
neurodock host uninstall
Section titled “neurodock host uninstall”neurodock host uninstallRemove the native messaging host manifests and (on Windows) the registry pointers. No flags.
Exit codes: 0 on success.
neurodock profile show
Section titled “neurodock profile show”neurodock profile showPrint the loaded profile with loader-applied defaults filled in. Useful for confirming what the substrate actually reads, since defaults are not written into the file on disk.
Exit codes: 0 on success; 1 if no profile is found at the resolved path.
neurodock profile validate
Section titled “neurodock profile validate”neurodock profile validateValidate ~/.neurodock/profile.yaml against the canonical schema. Returns the same checks as the top-level validate command but scoped to the resolved profile path with no file/strict flags.
Exit codes: 0 if valid; 1 if missing or invalid.
neurodock plugin add
Section titled “neurodock plugin add”neurodock plugin add <source>Install a plugin from a local directory into ~/.neurodock/plugins/<name>/. The <source> is a path to a directory containing a valid plugin.yaml. See ADR 0007 for the plugin contract.
| Flag | Default | Meaning |
|---|---|---|
--yes | false | Skip the overwrite prompt; refuse without --force. |
--dry-run | false | Print what would happen without writing anything. |
--force | false | Overwrite an existing install of the same plugin name. |
Exit codes: 0 on success; non-zero when the source is missing, the manifest fails validation, or the target exists without --force.
neurodock plugin remove
Section titled “neurodock plugin remove”neurodock plugin remove <name>Remove an installed plugin from ~/.neurodock/plugins/. Aliased as neurodock plugin uninstall.
| Flag | Default | Meaning |
|---|---|---|
--yes | false | Skip the confirmation prompt. |
--dry-run | false | Print what would happen without writing anything. |
Exit codes: 0 on success.
neurodock plugin list
Section titled “neurodock plugin list”neurodock plugin listList plugins installed under ~/.neurodock/plugins/ and their enabled state.
| Flag | Default | Meaning |
|---|---|---|
--json | false | Print machine-readable output. |
Exit codes: 0.
neurodock plugin enable
Section titled “neurodock plugin enable”neurodock plugin enable <name>Activate an installed plugin. Writes a .enabled marker file the substrate reads at startup. No flags.
Exit codes: 0 on success; non-zero if the plugin is not installed.
neurodock plugin disable
Section titled “neurodock plugin disable”neurodock plugin disable <name>Deactivate an installed plugin (removes the .enabled marker; keeps the files in place so re-enabling is one command). No flags.
Exit codes: 0 on success; non-zero if the plugin is not installed.
neurodock plugin validate
Section titled “neurodock plugin validate”neurodock plugin validate <source>Validate a plugin manifest without installing. Checks plugin.yaml against plugin.schema.json and reports field-path violations.
| Flag | Default | Meaning |
|---|---|---|
--json | false | Print machine-readable output. |
Exit codes: 0 if valid; non-zero otherwise.
Global flags
Section titled “Global flags”| Flag | Meaning |
|---|---|
-v, --version | Print the CLI version (0.6.2). |
-h, --help | Show help for the program or a subcommand. |
Environment
Section titled “Environment”| Variable | Effect |
|---|---|
NEURODOCK_PROFILE_PATH | Override the default profile location. |
NO_COLOR / FORCE_COLOR | Disable or force ANSI colour output. |
Exit codes (general convention)
Section titled “Exit codes (general convention)”| Code | Meaning |
|---|---|
| 0 | Success. |
| 1 | User-actionable failure (bad input, missing profile, validation error, missing entrypoint on PATH). |
| 2 | Init failure during install-all (Python packages installed but client wiring failed). |
neurodock install-hooks
Section titled “neurodock install-hooks”neurodock install-hooks --self-testneurodock install-hooks --install-daemon --self-testneurodock install-hooks --uninstallneurodock install-hooks --dry-runWires the proactive-guardrail hook into Claude Code’s hook system so chronometric + rumination + sycophancy checks fire automatically on every Nth tool call, without the user having to invoke them.
Flags
| Flag | Effect |
|---|---|
--dry-run | Print what would happen without writing ~/.claude/settings.json. Echoes the exact hook command so you can spot path-escape bugs before they bite. |
--self-test | After install, run the script’s self-test to verify Python is on PATH and heuristics fire. |
--install-daemon | Also register the standalone Phase 3 daemon at user-login autostart (HKCU Run / LaunchAgent / systemd --user). |
--uninstall | Remove NeuroDock hook entries from settings.json and the daemon autostart entry. Leaves the script files in ~/.neurodock/hooks/. |
What it writes
~/.neurodock/hooks/proactive_guardrail.py— Phase 1 hook (stdlib only, no pip install required).~/.neurodock/hooks/neurodock_daemon.py— Phase 3 daemon (same).- 4 entries in
~/.claude/settings.jsonunderhooks:SessionStart,PreToolUse,PostToolUse,Stop. - Optionally: per-OS autostart entry for the daemon.
Opt-out
export NEURODOCK_GUARDRAILS=off # disables hook + daemon without removing themneurodock install-hooks --uninstall # removes them entirelySee Proactive guardrails for the full design + opt-out matrix.
What’s next
Section titled “What’s next”- Installation for the end-to-end install flow.
- Profile schema for the file
initwrites. - Proactive guardrails for the automatic safety surfaces.
@neurodock/cliCHANGELOG for per-release detail.