5 Claudes in parallel terminal tabs
Tabs numbered 1–5. iTerm2 shows system notifications when a Claude needs input. Never wait on a single process.
132 documented tips from the creator of Claude Code — from X threads, podcasts, conferences, and the Anthropic Engineering Blog. Fully researched, organized by theme, with original sources and difficulty level.
Boris Cherny is the creator and Head of Claude Code at Anthropic. He started the project in September 2024 as a side project; launch was on February 24, 2025. His single most important rule: "Give Claude a way to verify its work — it will 2–3× the quality."
His setup is surprisingly simple: 5 parallel terminal tabs + 5–10 web sessions on claude.ai/code + mobile sessions, always starting in Plan Mode, with a shared CLAUDE.md, slash commands in .claude/commands/, subagents in .claude/agents/, a PostToolUse format hook, and /permissions (never --dangerously-skip-permissions outside of sandboxes).
The arc of his tips from launch to today: "Chatbot in the terminal" → "Parallel execution engine" → "Autonomous, scheduled, voice-controlled agent". Plan Mode and CLAUDE.md (Q1 2026) → Hooks/Plugins (Feb 2026) → /simplify, /batch, Worktrees (Feb–Mar 2026) → /loop, /schedule, Code Review, /btw (Mar 2026) → Auto Mode, /focus, /go for Opus 4.7 (Apr 2026).
The single biggest productivity lever. Run multiple Claudes simultaneously — locally, in worktrees, in the cloud.
Tabs numbered 1–5. iTerm2 shows system notifications when a Claude needs input. Never wait on a single process.
Handoff local↔web via & or --teleport. Boris starts sessions in the morning from the iOS app.
"The single biggest productivity unlock." Team members use shell aliases za, zb, zc to jump; some have a dedicated "analysis worktree" for logs/BigQuery. Boris personally uses multiple checkouts instead.
claude --worktree (or -w)Built-in worktree isolation. Name the worktree or let Claude name it. With --tmux everything starts in a tmux session.
Code tab → check "worktree" checkbox. No terminal needed.
Tell Claude: "use worktrees for its agents". Powerful for large batched changes and migrations.
isolation: worktree in agent frontmatterRun custom subagent permanently in its own worktree. Set in the YAML frontmatter of the agent definition.
Mercurial, Perforce, SVN, Jujutsu: define your own WorktreeCreate and WorktreeRemove hooks.
Boris verbatim: "I have dozens of Claudes running at all times." Scales from the point where tab-switching alone slows you down.
Let it think before every complex task. A good plan almost always one-shots the implementation.
Shift+Tab twice. Iterate on the plan with Claude, then switch to auto-accept edits. Claude usually one-shots when the plan is good.
Front-load thinking into the plan — implementation almost always follows one-shot. Front-loading reduces context usage across the entire session.
"Don't keep pushing. Switch back to plan mode and re-plan." When something goes wrong, force fresh context.
Claude A writes the plan, Claude B reviews it with fresh context — like a senior review before coding.
Don't just plan the implementation — "how do I verify this works" also belongs in the plan.
Claude derives a descriptive session name from the plan conversation. Easy to recognize in parallel setups.
Your team's institutional memory. A Markdown file that enables compounding improvements.
Team contributes multiple times per week. Becomes living documentation of the codebase.
"Anytime we see Claude do something incorrectly we add it to the CLAUDE.md." Compounding engineering at its core.
Cross-team CLAUDE.md ownership lies with each individual team. Local knowledge stays local.
Boris's version of Dan Shipper's "Compounding Engineering". Installed via /install-github-action.
End-of-correction prompt: lets Claude write the rule for itself.
"Keep iterating until Claude's mistake rate measurably drops." Pruning is just as important as adding.
One engineer maintains a notes directory per task, updated after every PR. CLAUDE.md references it.
CLAUDE.md (project, in git), CLAUDE.local.md (gitignored, personal), ~/.claude/CLAUDE.md (global), per subfolder a/b/CLAUDE.md for monorepos.
"It's a file that has some stuff. And it's auto-read into context." Simpler than any vector store.
# to remember"Add to Claude's memory by prepending # to something you want Claude Code to remember." Claude asks about memory location (project/user).
Auto-Memory saves preferences/corrections automatically. Auto-Dream is a subagent that periodically reviews and consolidates past sessions (REM sleep metaphor).
The tool that encapsulates repeated prompts in a single keystroke. Boris's "inner loop" of daily work.
Saves repeated prompting. Stored in .claude/commands/, checked into git. Claude itself can use them too.
/commit-push-pr dozens of times per dayInline bash for pre-computed git status — avoids model back-and-forth.
/feature-dev as step-by-step guide"First ask me what exactly I want, build the specification, build a detailed plan, then a to-do list, walk through step-by-step."
/commit — the most basic commandMost-used Slash Command at Anthropic. Auto-runs save+push without permission prompts.
/code-review on every PRHuman approves the merge, Claude does the first sweep. Standard at Anthropic team.
"Slash commands are actually just like prompts. So they're not actually tools." Important for the mental model.
"If you just want something really simple and local… just use local commands for that." MCP only when needed.
/init generates starter CLAUDE.mdAnalyzes codebase, detects build systems, tests, code patterns. First step in a new project.
/techdebt finds duplicated codeRun at the end of every session. Community favorite among custom commands.
Syncs 7 days of Slack + GDrive + Asana + GitHub into one prompt. Powerhouse setup of a team engineer.
/simplify (built-in skill)Parallel agents improve code quality and enforce CLAUDE.md compliance. Usage: "make this change then run /simplify".
/batch (built-in skill)Interviews you, then fans out to dozens/hundreds/thousands of worktree agents. Example: "/batch migrate src/ from Solid to React".
/loop for recurring local tasks (up to 3 days)Boris's setup: /loop 5m /babysit, /loop 30m /slack-feedback, /loop /post-merge-sweeper, /loop 1h /pr-pruner.
/schedule for cloud-based recurring jobsSurvives a closed laptop. Anthropic team uses it for auto CI-failure-resolution, docs updates.
/btw for side-chain conversationsSingle-turn, no tool calls, full context. "I use this all the time to answer quick questions while the agent works." By Erik Schluntz as side project.
/branch + --resume <id> --fork-sessionFork an existing session into a branched conversation. Saves re-contextualization.
/effort sets reasoning levellow / medium / high / xhigh / max. Boris uses xhigh for most tasks, max for the hardest. Max only applies to current session, other levels are sticky.
/focus Mode (CLI)Hides intermediate work, shows only final result. "I generally trust the model to run the right commands and edits."
/go — Composite SkillClaude tests end-to-end (Bash, Browser or Computer Use) → runs /simplify → opens a PR. "Many of my prompts look like 'Claude do blah blah /go'."
/fewer-permission-prompts SkillScans session history for safe-but-prompted commands; recommends allowlist expansion.
/voice activates voice dictationHold space bar in CLI, voice button in desktop, iOS dictation. "I do most of my coding by speaking to Claude, rather than typing."
/color for color-coding sessionsEasier to tell parallel sessions apart.
/statuslineShows context %, git branch, model, cost. Everyone on the team has their own statusline.
/keybindingsEvery key binding is customizable, settings live-reload. Stored in ~/.claude/keybindings.json.
/sandbox for open-source sandboxFile and network isolation. Modes: BashTool auto-allow, BashTool with prompts, off.
/plugin for browsing marketplaceLSPs, MCPs, Skills, Agents, Hooks. Companies can host their own marketplace.
/agents for creating custom agentsPlace Markdown files in .claude/agents/. Frontmatter configures tools/model/system prompt.
/terminal-setup for Shift+Enter newlinesFor IDE terminal, Apple Terminal, Warp, Alacritty.
/vim for Vim mode editingOne-line setup. Obvious for Vim users.
/teleportBrings a cloud session down to local terminal (claude --teleport).
/remote-controlControls a local session from any device. Boris has "Enable Remote Control for all sessions" in /config.
/compact <hint> instead of /clear mid-task/compact is lossy LLM summary, maintains momentum. /clear + briefing is hand-written context. Rule: new task = clear, related = compact.
/rewind (or double-Esc) instead of correctionDon't pollute context with failed attempts + corrections — rewind and re-prompt with what you learned.
Have Claude write a handoff message to its future self. Maximizes continuous learning across rewinds.
The value is not in anthropomorphization — but in two independent context windows.
Stored in .claude/agents/. Reusable across the team.
code-simplifier AgentCleans code after Claude's work. Boris's standard after every implementation.
verify-app AgentDetailed instructions for end-to-end testing. Verification step as reusable building block.
One-word escalation to any prompt. Throws more compute at the problem.
Keeps the window free for important work. Research-heavy tasks are perfect for this.
"Use 5 subagents to explore the codebase" — runs in parallel. Fastest way to understanding.
Hook scans for prompt injection attacks, auto-approves the safe ones. Massively reduces UI friction.
Boris spawns subagents for style/history/bugs as first pass — then 5 more subagents that poke holes in the first findings to eliminate false positives.
The value is not anthropomorphization — but two context windows that know nothing about each other.
--agent Flagclaude --agent=ReadOnly. Agent .md frontmatter sets name, color, tools, model, system prompt.
"agent" field in settings.json or --agent flag. Enforce team-specific defaults.
"Can you research three separate ideas for how to do it? Do it in parallel. Use three agents to do it."
Deterministic logic where the model alone is too unreliable. Formatting, logging, approvals.
Matcher "Write|Edit", runs bun run format || true. Claude formats ~90% correctly, hook catches the 10% to avoid CI failures.
Dynamically loads context whenever Claude starts. Ideal place for current branch info.
Logs every bash command the model executes. Audit trail for sensitive repos.
Routes approval prompts to WhatsApp/Slack/SMS. Boris approves permissions from his phone.
Poke Claude when it stops. Can kick an agent or let a prompt decide whether to continue.
More deterministic than asking Claude to verify itself.
Fires after Claude compresses its context. Useful for re-injecting critical instructions.
For non-git VCS (Mercurial, Perforce, SVN, Jujutsu). Define worktree logic yourself.
Community plugin by @GeoffreyHuntley for unattended cooking. For multi-day runs.
Pre-allow is better than skipping everywhere. --dangerously-skip-permissions only in sandboxes.
--dangerously-skip-permissions for normal workUse /permissions instead to pre-allow safe commands.
.claude/settings.json with teamCheck pre-allowed perms into git. Onboarding becomes a one-command thing.
"Bash(bun run *)", "Edit(/docs/**)". Practical for entire tool families.
Model-based classifier auto-approves safe permission prompts. "No 👏 more 👏 permission prompts 👏". Shift+Tab cycles: Ask → Plan → Auto.
--permission-mode=dontAsk in sandboxesBoris uses this (or --dangerously-skip-permissions) only in sandboxes for long runs.
Reduces prompts without --dangerously-skip.
"Combo of prompt-injection detection, static analysis, sandboxing, and human oversight."
Slack, BigQuery, Sentry, Docker. Claude goes beyond your own repo.
.mcp.jsonShared with team. Claude searches and posts independently.
bq CLI for BigQuery"Personally, I haven't written a line of SQL in 6+ months." Works with any DB that has CLI/MCP/API.
Pulls error logs automatically into Claude. Bug triage without context switching.
Zero context switching. Slack thread + one word = implementation in minutes.
Surprisingly strong at troubleshooting distributed systems.
/loop every morning use the Slack MCP to give me a summary of top posts I was tagged in.
/plugin install imessage@claude-plugins-official. Text Claude from any Apple device via SMS.
Opus with Thinking for almost everything. Stronger, slower, but usually faster in the end due to fewer corrections.
"Even though it's bigger & slower than Sonnet, since you have to steer it less and it's better at tool use, it is almost always faster in the end."
Pro/Sonnet users opt in via /extra-usage.
Model decides itself when Thinking makes sense. No fixed budgets anymore.
Or "Prioritize responding quickly" to save tokens.
think < think hard < think harder < ultrathink — progressive Thinking budget. In CC v2 replaced by /effort, ultrathink remains highlighted.
If you want length/style, say so explicitly. If Claude doesn't use the right tools, name them. For "Refactor across 40 files": explicitly request Subagents.
Code review harnesses for older models may see lower recall — not a regression, Claude follows instructions more faithfully.
"We default to Sonnet for most everything… you can override the model if you want."
"If you want Claude to think, just tell it to think. Be like, you know, make a plan. Think hard. Don't write any code yet."
If you take away only one thing from Boris: give Claude a way to verify its own work. 2-3x more quality.
The most important single tip in the entire setup. Invest here first.
Claude opens Chrome extension, tests every UI change in browser, iterates until UX is good. "Claude tests every single change I land to claude.ai/code."
Bash, test suite, simulator, browser, Computer Use. Invest in their robustness.
Make sure Claude can start your service.
Boris uses it for every web code change. More reliable than other browser MCPs.
Desktop app bundles automatic server start + built-in browser testing.
"Don't make a PR until I pass your test." Make Claude your reviewer.
Have Claude diff behavior between main and your branch.
"Knowing everything you know now, scrap this and implement the elegant solution."
Show Claude a mock, let it use Puppeteer for comparing and iterating.
"If the model is doing something wrong, it's better to identify that earlier and correct it earlier."
Long-term tasks without keeping the laptop open. Routines, schedules, recaps.
Simplest option: prompt Claude to spawn a background agent for verification when it finishes.
More reliable than (a). Code instead of model makes the decision.
Community pattern for very long runs. For multi-day unattended cooking tasks.
Short summary of done + next. Useful when returning after minutes or hours. Disableable in /config.
Schedule, GitHub event, and API triggers. Runs on Anthropic infra. Laptop can be closed.
"Tell Claude to write down the state of this session into this text doc… in your new session, tell Claude to read from that doc."
Delegation beats guidance. Treat Claude like an engineer you're delegating to.
"The model performs best if you treat it like an engineer you're delegating to, not a pair programmer you're guiding line by line."
Goal + Constraints + Acceptance Criteria — all three in the first turn.
"The more specific you are, the better the output."
"There's just no way we could have shipped this if we started with static mocks and Figma or if we started with a PRD." Instead, dozens of working prototypes.
"Paste the bug, say 'fix.' Don't micromanage how."
"I'll just ask Claude Code to prototype, like, three versions of it. And I'll try the feature and see which one I like better."
37 settings, 84 environment variables. Make it your tool.
Star Trek-themed example. Check settings.json into source control.
Claude explains frameworks; coaches you through changes.
Use "env" field in settings.json to avoid wrapper scripts.
Japanese, Spanish, German — any language configurable.
Team benefits from your customizations. Support for enterprise-wide policies.
Experimental renderer: no flicker/jump, constant memory/CPU, mouse support, nicer selection. CLAUDE_CODE_NO_FLICKER=1 claude.
Claude as Unix utility, not a chatbot. cat foo.csv | claude -p "summarize".
claude -p for non-interactive modePass prompt in quotes. Pipeline-friendly.
"That's the place where it works really well."
"Start small… test it on one test… iterate on your prompt. Then scale it up to 10."
-p"Just add a line: claude -p and whatever instruction you have." (Keep under ~5 sec.)
--allow-tools to scope permissionsLock down specific tools for batch operations.
--bare flag for 10x SDK startupSkips search for local CLAUDE.md/settings/MCPs (default will flip to --bare in future).
--add-dir (or /add-dir)Gives Claude access to additional repos. Set "additionalDirectories" in settings.json for the team.
--name "<session>"Human-readable session names for parallel work.
claude is a Unix utility, not a chatbot"You can pipe in… cat the CSV, pipe it into claude."
"We're big fans of Ink… We're also, we use Bun. So big fans of Bun." Transferable for your own CLI tools.
Reviews were the bottleneck. Now agents do the first sweep — humans approve the merge.
Each agent focuses on different concerns (logic, security, performance), posts inline comments.
"Code output per Anthropic engineer is up 200% this year, and reviews were the bottleneck."
"It catches real bugs I wouldn't have noticed otherwise."
"It's an ROI question, not a cost question." Boris breaks with cost-cutting logic.
"If you can make an engineer 50, 70% more productive, that's worth a lot."
"Currently, we're seeing costs around like $6 per day per active user." (Cat Wu, same podcast)
Mainly for code migrations.
"Don't try to cost-cut at the beginning. Start by giving engineers as many tokens as possible."
Massive cost reduction for repeated multi-turn agent work.
CLI, IDE, GitHub, Slack, Mobile, Web. Boris codes a lot from his phone.
iOS and Android. Boris writes a lot of code from the iOS app. Code tab on the left.
"When I'm not coding, I'm dispatching." Uses MCPs/browser/computer with your permissions.
Recommended for IDE users: inline diffs, @-mentions, plan review.
"Every engineer is different and you can use Claude Code the way you want."
"From the terminal / From the IDE (as an extension) / As a GitHub app so you can @claude right in a GitHub issue comment / Via the SDK, using Claude as a Unix utility"
"(explore › plan › confirm › code › commit) vs (tests › commit › code › iterate › commit) vs (code › screenshot › iterate)"
Partially migrated codebases confuse humans and models alike. Finish what you start.
"Always make sure that when you start a migration, you finish the migration." Partially migrated codebases confuse humans and models.
/batch is the migration toolPlan interactively, then fan out to dozens of Worktree agents.
Entire team uses it for analytics directly from Claude Code.
Output styles, visualizations, ASCII diagrams, spaced repetition. Claude as teacher.
Claude explains the why behind changes. Deliberately onboarding-friendly.
"Surprisingly good slides!"
Of new protocols, codebases, architectures.
You explain your understanding, Claude asks follow-up questions to fill gaps.
New engineers use Claude Code to navigate codebases — "significantly improving ramp-up time."
Context rot is real. Boris's rule: every turn is a branching point.
CLAUDE_CODE_AUTO_COMPACT_WINDOW=400000 claude to avoid context rot in 1M model.
Don't let intelligence-sensitive sessions drift beyond that.
Newcomers: stay under 40%, wrap up at 60%. Experienced: under 30%; to 60% only for simple tasks.
Pick Continue / /rewind / /clear / /compact / Subagent — depending on context needs.
"We landed on just agentic search… just using regular code searching, you know, glob, grep." Avoids indexing/sync/security issues at the cost of latency and tokens.
Ghostty + tmux + voice dictation. The small things that actually move your velocity.
Team favorite: synchronized rendering, 24-bit color, Unicode.
Organize terminal tabs by color-coding and names.
"You speak 3x faster than you type, and your prompts get way more detailed as a result."
From side project in September 2024 to Webby Award in April 2026.
/simplify and /batch announcement./loop announcement./effort max, Voice Mode, Remote Control, PostCompact Hook./schedule, iMessage plugin, Auto-Memory/Dream.From vanilla setup to autonomous agent stack. Clear thresholds for when to move to the next phase.
/init for starter CLAUDE.md. Plan Mode (Shift+Tab twice) for every task. Don't customize./permissions, check .claude/settings.json into git..claude/agents/code-simplifier.md and verify-app.md. "Use 5 subagents to explore the codebase" on new repos. Adversarial review pattern./focus, recaps on. /loop for PR babysitting, Slack feedback. /schedule for jobs that survive closed laptops. Chrome extension for frontend verification. /voice.Where Boris's setup differs from his own team — and where you need to decide for yourself.
Boris personally uses multiple checkouts. The rest of the team prefers worktrees and built native worktree support for it. Both work — choose by mental model.
Boris uses Slack MCP. Secondary sources from the team push back: "For read-heavy workflows, a well-crafted CLI skill is often simpler." Rule of thumb: local & simple → Slash Command. External data → MCP.
Boris uses Opus 4.5/4.6/4.7 with Thinking for everything. Team default and Pro tier still surface Sonnet. Rule of thumb: less steering effort with Opus = often faster, despite higher latency.
Auto Mode (Opus 4.7) auto-approves safe permissions. Security-conscious teams prefer manual approval via PermissionRequest Hook. Sandboxes allow middle ground.
Important limitations for honest framing of these tips.
/extra-usage for 1M context on Pro). Test, don't assume.