Examples

Recipes from the cockpit

Copy-paste patterns for real work — from your first run to headless CI to running a fleet of parallel agents. Every command here is accurate to the current mrc.

🚀

Your first run

basics

Point mrc at a repo. The first launch builds the image (~2 min); every launch after is ~5 seconds. Quit Claude and the container vanishes — your files never left the host.

first run
$ export ANTHROPIC_API_KEY="sk-ant-..." $ mrc ~/projects/myapp ◎ Mr. Radar is scanning the environment... ✓ Radar locked. → Firewall: jammed (just like their radar)
🕶️

Keep secrets out of the room

security

The firewall already blocks the network path to your databases. .sandboxignore closes the other door — it makes the secret files themselves disappear inside the container.

~/projects/myapp/.sandboxignore
# These appear empty (files) or empty dirs (folders) to Claude .env .env.production secrets/ terraform/ ~/.aws/ # yes, even paths outside the repo root, per file location

Files are masked with /dev/null; directories get an anonymous overlay. Combine with the default firewall and there's simply nothing sensitive to find — on disk or on the wire.

🌐

Let him read the web

network

Need web search and fetch? --web opens outbound HTTPS to any host — while the host-services lockdown and IPv6 block stay in place. Make it a default for a repo by dropping it in .mrcrc.

web access
# One-off $ mrc --web ~/projects/myapp # Or always-on for this repo $ echo --web >> ~/projects/myapp/.mrcrc

Need a specific private host but not the whole web? Add it to the allowlist loop in init-firewall.sh and rebuild — see the security docs.

👯

Two Claudes, one repo

scale

Run a second session against the same project — say, one writing a feature while another investigates a bug. Each instance gets its own config volume and its own dynamically allocated proxy ports, so they never collide.

terminal A & B
# Terminal A $ mrc ~/projects/myapp # Terminal B — mrc notices the first and isolates the second $ mrc ~/projects/myapp ⚠ There's already 1 Mr. Claude running in this repo. They'll share the workspace but get separate config volumes.

They share the same working tree — so mind edit conflicts. Two Claudes, one codebase, no good if they fight over the same file.

🤝

A second opinion from Codex

multi-agent

Same sandbox, different brain. Launch OpenAI's Codex CLI with --agent codex to cross-check a tricky refactor. It uses its own persistent config volume and the already-whitelisted api.openai.com.

codex
$ export OPENAI_API_KEY="sk-..." # or in .env / 1Password $ mrc --agent codex ~/projects/myapp
🎩

Run a team of agents

teams

Don't run one agent — command a team. Declare a roster (or grab a preset), mrc team up, and steer the crew from the dashboard or your phone. Each member is sandboxed with its own write territory; they propose, you steer, you commit.

mrc team
# 1 · write a team.json from a preset (game / web / mobile / backend) — or hand-write one $ mrc team new --preset web ~/projects/myapp # 2 · launch — each live member boots in its own sandbox (accept its one-time Channels prompt) $ mrc team up ~/projects/myapp # 3 · steer from the web app — every room, the @you inbox, live transcripts $ mrc rooms dashboard # drop into a member's terminal, or check the org + your inbox $ mrc team console roland $ mrc team status

They collaborate by @mention; a critic reviews risky work when called; you direct from the leads room and commit the work. Close a tab to suspend (reopen to resume); link a Telegram bot to answer from your phone. Full walkthrough → the teams guide.

🧮

Feed a fleet of parallel agents

performance

Dynamic workflows can fan out many subagents at once. Give the VM room to breathe: mrc already defaults to all your cores and half your RAM, but you can push memory higher for heavy parallel runs.

big iron
# All cores, 48 GB for this session $ mrc --colima-memory 48 ~/projects/myapp # Resizing an already-running VM? Stop it first. $ colima stop && mrc --colima-cpu 16 --colima-memory 64 .

Concurrency in dynamic workflows is capped at min(16, cores − 2), so once you're past ~18 cores more CPU won't add parallelism — but more RAM still helps when many agents run at once.

🤖

Headless & scriptable

automation

For CI or embedding, run detached with --daemon (prints a container ID) or stream machine-readable output with --json.

headless
# Detached — capture the container ID $ CID=$(mrc --daemon ~/projects/myapp) $ echo $CID 9f8e7d6c5b4a... # Stream stream-json for a one-shot prompt $ mrc --json . -- -p "summarize the test failures"
💾

A session-driven workflow

sessions

Name conversations as you go, then jump back into any of them. Reopening a repo resumes the most recent automatically; the picker lets you choose.

sessions
$ mrc --new payment-retries ~/projects/myapp # start, named # ...later... $ mrc pick ~/projects/myapp # arrow-key picker $ mrc sessions resume payment-retries ~/projects/myapp
⚙️

Team-wide defaults

ergonomics

Commit a .mrcrc to a repo so everyone gets the same sandbox behavior. Personal preferences go in ~/.mrcrc; CLI flags override both.

repo .mrcrc
# Checked into the repo — sane defaults for everyone --web # this project needs web search --colima-memory 24 # it's a heavy monorepo # ~/.mrcrc — just for you, layered on top --no-sound
📡

See everything that's running

ops

Lost track of how many sessions are open across projects? mrc status sweeps every repo — and it needs no API key, so it's safe to alias and run anywhere.

mrc status
$ mrc status 🎩 Active Mr. Claude Sessions ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ → myapp · up 1h 12m /Users/you/projects/myapp [a1b2c3d4e5f6] → infra-tools · up 23m (--web) /Users/you/work/infra-tools [9f8e7d6c5b4a]
"Ludicrous speed... GO!"
— Dark Helmet

Got a pattern of your own?

The recipes live in the repo. PRs with new ones are very welcome.