Usage Guide

Install from npm, then run one-shot tasks, interactive sessions, web research, or vision/design analysis with local screenshots.

One-Shot

Single prompt

waterbrother "inspect this repo and summarize architecture"
Pipe Mode

Headless automation

printf 'summarize this repo' | waterbrother -p
printf 'read https://example.com and summarize it' | waterbrother -p --output-format json
printf 'inspect package.json' | waterbrother -p --output-format stream-json
Interactive

Chat + tools

waterbrother --approval on-request

On first run this launches onboarding automatically unless --skip-onboarding is used.

Read-only file tools can inspect ~/Desktop, ~/Downloads, and ~/Documents directly. On macOS, /desktop, /downloads, and /documents are treated as shortcuts to those home folders.

Each turn shows live progress animation, visible phase traces while running, and summaries for tools/timing/tokens. Detailed run-state heartbeat lines stay in /trace verbose.

You can paste a large multiline block into the prompt buffer without submitting it immediately. Waterbrother keeps it buffered, shows a compact placeholder like [Pasted Content 14083 chars] in the prompt row, and waits for an explicit Enter before starting the turn.

Agent Profiles

Change behavior live

/agent
/agent designer
/agent reviewer
Vision + Design

Analyze UI screenshots

waterbrother vision ./mockup.png "Critique layout, hierarchy, spacing, and accessibility"

# interactive
/vision ./mockup.png Suggest concrete CSS improvements for this web layout
Web Research

Search or read a URL

waterbrother "Read https://docs.anthropic.com/en/api/messages and summarize tool use"
waterbrother "Search the web for the latest model provider docs and cite sources"

# interactive
https://docs.anthropic.com/en/api/messages
https://docs.anthropic.com/en/api/messages summarize tool use blocks
Explicit Web Commands

Read, search, and open

/read https://docs.anthropic.com/en/api/messages
/search latest model provider tool calling docs
/open 1
MCP

Attach external tool servers

waterbrother config set-json mcpServers '{"filesystem":{"command":"npx","args":["-y","@modelcontextprotocol/server-filesystem","."]}}' --scope project
waterbrother mcp list

# interactive
/mcp
Slash Commands

Slash menu is live while typing: / opens it, /m-style prefixes filter it, ↑/↓ changes highlighted command, Enter accepts selection, and Tab autocompletes.

Tool approvals use a codex-style chooser: ↑/↓ changes the highlighted row, Enter or y approves once, p saves a session approval rule for the current shell-command prefix or tool, and Esc denies and lets you provide a different instruction. The chooser now renders in a bordered block with the default action highlighted.

When session approval rules are active, the footer shows a compact [rules sN tN] indicator.

Receipt summaries are quieter by default for minimal read-only turns. Use /receipt-mode verbose if you want every turn receipt echoed.

CommandWhat it does
/statusShow structured session/runtime state including provider, model, design model, approvals, tools, and message count.
/sessionPrint current session metadata/path.
/sessionsList recent session IDs.
/newStart a new session.
/resume <id>Resume a previous session by ID.
/run <prompt>Run a normal prompt without treating it as a slash command.
/forkFork the current conversation into a new session id.
/clearClear current conversation history.
/compactManual context compaction for long sessions.
/costShow session token usage and estimated cost by model.
/diffShow staged, unstaged, and untracked git changes.
/providerShow active provider, model, design model, and base URL.
/provider <id>Switch provider for current session and load that provider's default model.
/providersPick a provider interactively.
/runtimeShow active runtime summary, including any loaded runtime profile.
/runtime-profile save <name>Save the current provider/model/design setup as a named preset.
/runtime-profile load <name>Load a named runtime preset into the live session.
/runtime-profilesList saved runtime presets.
/channelsShow messaging channel readiness for Telegram, Discord, and Signal.
/gatewayShow messaging gateway readiness and enabled channel counts.
/model <id>Switch model for current session. Provider-prefixed ids also switch provider coherently.
/agent <profile>Switch profile: coder/designer/reviewer/planner.
/read <url>Read and summarize a public URL.
/search <query>Search the web, choose a result with arrows + Enter, then read it.
/open <url|index>Open a public URL or saved search result index in the browser.
/approval <mode>Set approval mode: auto/on-request/never.
/approvalsShow saved session approval rules for shell prefixes and tools.
/tools <on|off>Enable or disable tool use.
/trace <mode>Set trace level: on/off/verbose.
/receipt-mode <auto|off|verbose>Control when turn receipt summaries are printed.
/memory ...Manage WATERBROTHER.md SOT memory file.
/vision <path> <prompt>Run a vision turn on local image input.
/doctorRun environment checks.
/mcpInspect configured MCP servers and discovered tool names.
/updateUpdate Waterbrother: git-clone installs pull + check, npm installs upgrade globally.
/onboardingPrint onboarding/API key guide.
Context

Compaction + memory

/compact
/cost
/fork
/diff
/memory init
/memory add API responses must include file references.
waterbrother config set autoCompactThreshold 0.9
waterbrother config set provider anthropic --scope project
waterbrother config set model anthropic/claude-sonnet-4-20250514 --scope project
waterbrother runtime-profiles save review-anthropic
waterbrother runtime-profiles show review-anthropic
waterbrother runtime-profiles apply review-anthropic
waterbrother channels status
waterbrother gateway status

User config lives in ~/.waterbrother/config.json. Project overrides live in .waterbrother/config.json.