Skip to content

How I Use Claude Code — 13 Tips from Boris Cherny

A summary of setup tips shared by Boris Cherny (@bcherny), creator of Claude Code, on January 3, 2026.


Context

Boris shared his personal Claude Code setup, noting it's "surprisingly vanilla" — Claude Code works great out of the box, so he doesn't customize it much. There's no one correct way to use it: the team intentionally builds it so you can use, customize, and hack it however you like. Each person on the Claude Code team uses it very differently.


1/ Run 5 Claudes in Parallel

Run 5 Claudes in parallel in your terminal. Number your tabs 1--5, and use system notifications to know when a Claude needs input.

TIP

Running multiple Claude sessions simultaneously is one of the biggest productivity multipliers. Number your terminal tabs so you can quickly switch between them.

See: Terminal Setup Docs


2/ Use claude.ai/code for Even More Parallelism

Run 5--10 Claudes on claude.ai/code in parallel with your local Claudes. Hand off local sessions to web sessions using claude.ai/code, manually kick off sessions in Chrome, and teleport back and forth.


3/ Use Opus with Thinking for Everything

Use Opus 4.5 with thinking for everything. It's the best coding model Boris has ever used — even though it's bigger and slower than Sonnet, since you have to steer it less and it's better at tool use, it is almost always faster than using a smaller model in the end.

INFO

Even though Opus is bigger and slower than Sonnet, the reduced need for steering and better tool use means it is almost always faster end-to-end.


4/ Share a Single CLAUDE.md with Your Team

Share a single CLAUDE.md for the repo. Check it into git, and have the whole team contribute multiple times a week. Anytime Claude does something incorrectly, add it to the CLAUDE.md so Claude knows not to do it next time.


5/ Tag @claude on PRs to Update CLAUDE.md

During code review, tag @claude on your coworkers' PRs to add something to the CLAUDE.md as part of the PR. Use the Claude Code GitHub action (install-@hub-action) for this — it's Boris's version of Compounding Engineering.

TIP

This creates a virtuous cycle: every code review becomes an opportunity to improve Claude's knowledge base for the entire team.


6/ Start Most Sessions in Plan Mode

Start most sessions in Plan mode (shift+tab twice). If the goal is to write a Pull Request, use Plan mode and go back and forth with Claude until you like its plan. From there, switch into auto-accept edits mode and Claude can usually 1-shot it. A good plan is really important.

WARNING

Don't skip the planning step. A good plan is the difference between Claude 1-shotting the implementation and going back and forth with corrections.


7/ Use Slash Commands for Inner Loop Workflows

Use slash commands for every "inner loop" workflow that you do many times a day. This saves you from repeated prompting, and makes it so Claude can use these workflows too. Commands are checked into git and live in .claude/commands/.

Example: /commit-push-pr — Commit, push, and open a PR.


8/ Use Subagents to Automate Common Workflows

Use a few subagents regularly: code-simplifier simplifies the code after Claude is done working, verify-app has detailed instructions for testing Claude Code end to end, and so on. Think of subagents as automating the most common workflows — similar to slash commands.

Subagents live in .claude/agents/.


9/ Use a PostToolUse Hook to Auto-Format Code

Use a PostToolUse hook to format Claude's code. Claude usually generates well-formatted code out of the box, and the hook handles the last 10% to avoid formatting errors in CI later.

json
"PostToolUse": [
  {
    "matcher": "Write|Edit",
    "hooks": [
      {
        "type": "command",
        "command": "bun run format || true"
      }
    ]
  }
]

10/ Pre-allow Permissions Instead of --dangerously-skip-permissions

Don't use --dangerously-skip-permissions. Instead, use /permissions to pre-allow common bash commands that you know are safe in your environment, to avoid unnecessary permission prompts. Most of these are checked into .claude/settings.json and shared with the team.

WARNING

Avoid --dangerously-skip-permissions. Use /permissions to pre-allow known-safe commands instead — it's safer and the configuration is shareable with your team.


11/ Let Claude Use All Your Tools via MCP

Claude Code uses all your tools. It often searches and posts to Slack (via the MCP server), runs BigQuery queries to answer analytics questions (using bq CLI), grabs error logs from Sentry, etc. The Slack MCP configuration is checked into .mcp.json and shared with the team.


12/ Verify Long-Running Tasks with Background Agents

For very long-running tasks, either (a) prompt Claude to verify its work with a background agent when it's done, (b) use an agent Stop hook to do that more deterministically, or (c) use the ralph-wiggum plugin (originally dreamt up by @GeoffreyHuntley).


13/ Give Claude a Way to Verify Its Work

Most Important Tip

Probably the most important thing to get great results out of Claude Code — give Claude a way to verify its work. If Claude has that feedback loop, it will 2--3x the quality of the final result.

Claude tests every single change Boris lands.


Sources