.substrate/ directory in your current working directory — there is no global registry and no --project flag. Run substrate --help to see the version on its first line. Running substrate with no subcommand is an alias for substrate serve.
Usage
Command Groups
Setting Up
init
Create a
.substrate/ in the current directory, optionally seeded from a template.add
Apply a shared template into an existing
.substrate/. Dry-run by default.install-skill
Refresh the packaged agent skill in
~/.claude/skills/.Running
mcp
Start the stdio MCP server. Spawned by agent runtimes.
serve
Start the localhost read-only web inspector.
The Human Channel
pending-approval
List every task waiting on a human sign-off.
approve
Set a
human_only field on a task.unapprove
Revoke a mistaken approval.
Data and Diagnostics
backup
Timestamped archive into
.substrate/backups/.export / import
Move a whole substrate as a
.tar.gz.validate
Lint boards and policies without a server. CI-friendly.
diagnose
Environment and substrate health.
logs
Recent lines from the persistent log.
explain
Self-contained HTML map of the substrate.
Global Behaviour
Working directory is the addressing scheme. Every command operates on the.substrate/ in the directory it runs from. There is no --project flag and no global registry. That rule is also how you point a process at another checkout — see Worktrees and Clones.
Unknown flags are rejected per command, rather than silently ignored.
Network: none. No Substrate command fetches anything — including add and init --template. Templates are always local directories.