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, run init, register the native host, and install the skills. |
neurodock setup | Full setup in one command: runs install-all then install-hooks. Standalone daemon is opt-in via --daemon. |
neurodock install-skills | Copy the per-neurotype skills into your client’s personal skills directory (~/.claude/skills). |
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 guardrail status | Report which proactive-guardrail pieces (hooks, daemon) are wired and which are missing. |
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, runs neurodock init to wire MCP clients, registers the optional native-messaging host, and installs the per-neurotype skills into ~/.claude/skills. Collapses six pip install lines plus init, host registration, and skill install 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. |
--no-native-host | n/a | Skip registering the optional native-messaging host (browser extension ↔ profile.yaml). |
--no-skills | n/a | Skip copying the per-neurotype skills into ~/.claude/skills. |
--extension-id <id> | — | Extra browser-extension id to allow on the native host (repeatable; published store ids are always included). |
The native-host and skills steps are best-effort: a failure in either emits a warning but does not fail the command (the six MCP servers are the core).
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 setup
Section titled “neurodock setup”npx neurodock setupFull setup in one command. A thin orchestrator that runs two existing installers in order:
neurodock install-all— install the six MCP servers, wire the clients, register the native-messaging host, and install the skills.neurodock install-hooks— wire the Claude Code proactive-guardrail hooks into~/.claude/settings.json.
The standalone guardrail daemon stays opt-in: pass --daemon to also register it at user-login autostart. The hooks step runs even if install-all reported a problem, so a PATH hiccup with the MCP entrypoints does not leave you without proactive guardrails.
| 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 wire clients + hooks). |
--yes | false | Answer yes to all prompts. |
--dry-run | false | Print what would happen without writing. |
--no-native-host | n/a | Skip registering the optional native-messaging host. |
--no-skills | n/a | Skip copying the per-neurotype skills into ~/.claude/skills. |
--daemon | false | Also register the standalone guardrail daemon at user-login autostart. |
--extension-id <id> | — | Extra browser-extension id to allow on the native host (repeatable; published store ids are always included). |
Exit codes: install-all’s exit code wins when non-zero; otherwise 1 if the hooks step failed, else 0.
neurodock install-skills
Section titled “neurodock install-skills”npx neurodock install-skillsCopy the per-neurotype NeuroDock skills bundled in the CLI tarball into your client’s personal skills directory so Claude Code / Claude Desktop discover them. Each skill installs as ~/.claude/skills/neurodock-<name>/SKILL.md (namespaced so it is collision-free and recognisably NeuroDock’s).
- Claude Code and Claude Desktop share
~/.claude/skills; the command de-duplicates so the files are written once. - Cursor has no skills system today and is skipped with a notice (never an error).
- Idempotent: re-running refreshes each
SKILL.mdin place. - This step also runs automatically inside
install-all,setup, andupdateunless you pass--no-skills.
| Flag | Default | Meaning |
|---|---|---|
--client <id> | all | claude-desktop, claude-code, cursor, or all. |
--dry-run | false | Print the planned targets without writing anything. |
--yes | false | Answer yes to all prompts (idempotent re-runs refresh in place). |
Exit codes: 0 on success; 1 if no bundled skills were found (a packaging bug).
neurodock 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, re-registers the optional native-messaging host, and refreshes the per-neurotype skills in ~/.claude/skills. 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. |
--no-skills | n/a | Skip refreshing the per-neurotype skills in ~/.claude/skills. |
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 guardrail status
Section titled “neurodock guardrail status”neurodock guardrail statusReport which proactive-guardrail pieces are wired and which are missing — the Claude Code hooks in ~/.claude/settings.json and the optional standalone daemon. Read-only diagnostic; writes nothing. No flags.
Exit codes: 0 when the wiring is healthy; non-zero when a piece is missing.
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.8.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.