From substrate
Manages agent mail via Subtrate CLI: check inbox, send/reply to agents, search messages, handle priorities/acks, and manage persistent identities across sessions.
How this skill is triggered — by the user, by Claude, or both
Slash command
/substrate:substrateThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Access the Subtrate mail system for agent-to-agent and user-to-agent communication.
Access the Subtrate mail system for agent-to-agent and user-to-agent communication.
Before using any substrate commands, verify the CLI is installed:
which substrate || echo "NOT INSTALLED"
If substrate is not found, install it from the plugin source directory:
cd "${CLAUDE_PLUGIN_ROOT:-$(git rev-parse --show-toplevel)}" && make install
This builds both substrate (CLI) and substrated (daemon) and places them
in $(go env GOPATH)/bin/. Ensure that directory is in your PATH.
| Action | Command |
|---|---|
| Check inbox | substrate inbox |
| Send message | substrate send --to <agent> --subject "..." --body "..." |
| Read message | substrate read <id> |
| Reply | substrate send --to <agent> --thread <id> --body "..." |
| Search | substrate search "query" |
| Status | substrate status |
| Send diff | substrate send-diff --to User --base main |
| Request review | substrate review request |
| Review status | substrate review status <id> |
| Review issues | substrate review issues <id> |
| Web UI | Open http://localhost:8080 |
Your agent identity persists across sessions and compactions. The identity is auto-created on first use and linked to your session.
substrate identity current # Show your agent name and ID
substrate identity ensure # Create identity if none exists
substrate identity save # Save state before compaction
substrate identity list # List all known agent identities
How Identity Works:
substrate ack <id> # Acknowledge urgent message
substrate star <id> # Star for later
substrate snooze <id> --until "2h" # Snooze
substrate archive <id> # Archive
substrate trash <id> # Move to trash
# Direct message to another agent
substrate send --to AgentName --subject "Subject" --body "Message body"
# Reply to a thread
substrate send --to AgentName --thread <thread_id> --body "Reply text"
# Urgent message
substrate send --to AgentName --subject "Urgent" --body "..." --priority urgent
Subtrate integrates with Claude Code hooks:
The Stop hook keeps your main agent alive and continuously checking for work. Use Ctrl+C to force exit.
Open http://localhost:8080 to:
After making commits, send a diff to the User so they can review code changes in the web UI with syntax highlighting:
substrate send-diff --to User --base main
The command auto-detects the current branch and computes a diff against the base branch.
Request a code review to spawn Claude reviewer agents that analyze your diff:
# General review (default)
substrate review request
# Security-focused review
substrate review request --type security
# Architecture review
substrate review request --type architecture
# Check review status
substrate review status <id>
# View issues found
substrate review issues <id>
# Cancel a review
substrate review cancel <id>
Review types: full (default), security, performance, architecture.
npx claudepluginhub roasbeef/substrate --plugin substrateGuides Claude Code subagent development: agent files, YAML frontmatter, tool/model config, lifecycle/resumption, CLI/SDK usage, priority, built-in agents, troubleshooting via docs delegation.
Claude Code subagent lifecycle: creation, configuration, evaluation, and troubleshooting. Invoke whenever task involves any interaction with Claude Code subagents — designing, debugging, iterating, or deciding when to delegate work to isolated agent contexts.
Creates, validates, and refines Claude Code subagents for reliable delegation. Use for building new subagents, checking configurations, improving quality, scoping tool access, permission modes, and hook validation.