Boris Cherny, the creator of Claude Code, shares 13 effective usage tips.
Boris Cherny, the creator of Claude Code, shares Claude Code workflows and usage tips, including how to run multiple Claude instances in parallel, collaborate across platforms, use the Opus 4.5 model, team file sharing, and scheduling modes...
Claude Boris Cherny, the father of Code, shared...Claude Code workflow and usage techniques, how to run multiple programs in parallelClaudeExamples, multi-platform collaboration, usageClaude Opus 4.5 model, team file sharing, scheduled session startup, creating slash commands, utilizing sub-agents, code formatting, preset permissions, handling long-running tasks, and 13 other core techniques. These methods can effectively improve...AIThe programming efficiency is something developers should learn from.
I amClaude Boris, the developer of Code. Many people ask me how I use it.Claude Since this is code, I'd like to briefly demonstrate my configuration.
My configuration is very simple!Claude Code is excellent out of the box, so I haven't done much customization myself.Claude There is no single right way to code: we deliberately designed it to be usable directly, but also customizable and modifiable as desired.Claude Each member of the Code team uses it in a completely different way.
1.
Running 5 simultaneously in the terminalClaudeExample: Number the tabs 1-5 and use system notifications to find out which tab is being used.ClaudeYou need to enter a command. https://code.claude.com/docs/en/terminal-config#iterm-2-system-notifications
2.
Simultaneously run 5-10 at http://claude.ai/codeClaudeInstances, and localClaudeParallel work. When programming in the terminal, I often switch my local session to the web interface (using the '&' symbol), or manually start a new session in Chrome, sometimes switching back and forth between the two using the `--teleport` parameter. During my morning and daytime work, I use my phone (via...)Claude (iOS app) Open a few sessions and check the progress later.
3.
All tasks used the Opus 4.5 model, which supports deep thinking. This is the best programming model I've ever used—although it's larger and slightly slower than the Sonnet version, it's more efficient in practice than the smaller model because it requires almost no manual guidance and has superior tool-calling capabilities.
4.
Our team shares a...Claude Code repository settings http://CLAUDE.md The files were checked into Git, and the entire team collaborated on updates multiple times each week. Whenever a problem was discovered...ClaudeIf an operational deviation occurs, we will record it in http://CLAUDE.md.ClaudeThis will help avoid the same problem next time. Other teams also maintain their own http://CLAUDE.md files, and timely updates have become a basic responsibility for each team.
5.
During code reviews, I often tag colleagues' pull requests with @.claude, including the content that needs to be added to http://CLAUDE.md as part of the pull request. We specifically use [this feature/method] for this purpose.Claude The code's GitHub Action (installed via /install-github-action). This is equivalent to our team's "Compounding Engineering" approach proposed by @danshipper.
6.
Most sessions begin in plan mode (press shift+tab twice). If my goal is to write a pull request, I would use plan mode, along with...ClaudeRepeated communication continued until a satisfactory solution was found. Then, the process was switched to...automaticAuto-accept edits mode.ClaudeIt can usually be done in one go. A good plan is crucial!
7.
For inner loop workflows that I repeat multiple times a day, I use forward slash commands to implement them all. This saves me from rewriting code.Prompt wordsAlso letClaudeThese workflows can be invoked. These commands are all managed via Git and stored in the `.claude/commands/` directory. For example, me and...ClaudeI use the `/commit-push-pr` slash command dozens of times a day—this command pre-computes information such as git state through inline bash.fastExecution avoids time-consuming back-and-forth communication with the model. https://code.claude.com/docs/en/slash-commands#bash-command-execution
8.
I often use several sub-itemsintelligentbodycode-simplifier inClaudeAfter completing the task, the code was simplified; verify-app includes end-to-end testing.Claude Detailed instructions for the code, etc. Similar to the forward slash command, I believe the sub...intelligentbodyableautomaticSub-agents are the most common workflow I perform for most pull requests. [https://code.claude.com/docs/en/sub-agents](https://code.claude.com/docs/en/sub-agents)
9.
We use the PostToolUse hook function for formatting.ClaudeThe generated code.ClaudeTypically, code that can be output in a standardized format can be directly output. Hooks will handle the remaining 10% of the details to prevent formatting errors in subsequent CI (Continuous Integration) processes.
10.
Instead of using the `--dangerously-skip-permissions` parameter, I use the `/permissions` command to pre-authorize commonly used bash commands in the environment that I've verified are safe, avoiding unnecessary permission prompts. Most of these settings are stored in the `.claude/settings.json` file and shared with the team.
11.
Claude Code helps me access all the tools: I frequently use the MCP server to search and post Slack messages, run BigQuery queries to analyze data (using the bq command-line tool), and retrieve error logs from Sentry. Our Slack MCP configuration is stored in a .mcp.json file for team sharing.
12.
For time-consuming tasks, I would use one of the following methods:
- (a) RequirementsClaudeAfter completion, verify the work results yourself through the backend agent;
- (b) Using a proxy
StopHooks perform verification in a more deterministic way; - (c) Use the ralph-wiggum plugin.
Additionally, I will use the `--permission-mode=dontAsk` or `--dangerously-skip-permissions` parameters in the sandbox environment to prevent permission prompts from being blocked during the session.ClaudeA continuous workflow.
https://github.com/anthropics/claude-plugins-official/tree/main/plugins/ralph-wiggum
https://code.claude.com/docs/en/hooks-guide
13.
One last little tip: You need to letClaude The most crucial factor in the outstanding output of code is perhaps—ClaudeEstablish a work verification mechanism.ClaudeWith this feedback loop, the quality of the final result can be improved by 2-3 times.
For example, every time I submit changes to http://claude.ai/codeClaudeAll processes will be tested using a Chrome extension:automaticOpen the browser, test the user interface, and iterate continuously until the code runs without errors and the user experience is smooth.
Verification mechanisms vary by domain—they may be...SimpleWhether it's executing bash commands, running a full test suite, or testing applications in a browser/mobile emulator, please invest time and effort in building a robust and reliable verification system.
I'm Boris and I created Claude Code. Lots of people have asked how I use Claude Code, so I wanted to show off my setup a bit.
My setup might be surprisingly vanilla! Claude Code works great out of the box, so I personally don't customize it much. There is no one correct way to use Claude Code: we intentionally build it in a way that you can use it, customize it, and hack it however you like. Each person on the Claude The code team uses it very differently.
So, here it goes.
1/ I run 5 Claudes in parallel in my terminal. I number my tabs 1-5, and use system notifications to know when a Claude Need input
https://code.claude.com/docs/en/terminal-config#iterm-2-system-notifications
2/ I also run 5-10 Claudes on claude.ai/code, in parallel with my local Claudes. As I code in my terminal, I will often hand off local sessions to web (using &), or manually kick off sessions in Chrome, and sometimes I will –teleport back and forth. I also start a few sessions from my phone (from the Claude iOS app) every morning and throughout the day, and check in on them later.
3/ I use Opus 4.5 with thinking for everything. It's the best coding model I've ever used, and 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 than using a smaller model in the end.
4/ Our team shares a single CLAUDE.md for the Claude Code repo. We check it into git, and the whole team contributes multiple times a week. Anytime we see Claude do something incorrectly we add it to the CLAUDE.md, so Claude knows not to do it next time. Other teams maintain their own CLAUDE.md's. It is each team's job to keep theirs up to date.
5/ During code review, I will often tag @.claude on my coworkers' PRs to add something to the CLAUDE.md as part of the PR. We use the Claude Code Github action (/install-github-action) for this. It's our version of @danshipper's Compounding Engineering
6/ Most sessions start in Plan mode (shift+tab twice). If my goal is to write a Pull Request, I will use Plan mode, and go back and forth with Claude until I like its plan. From there, I switch into auto-accept edits mode and Claude can usually 1-shot it. A good plan is really important!
7/ I use slash commands for every "inner loop" workflow that I end up doing many times a day. This saves me from repeated prompting, and makes it so Claude can use these workflows, too. Commands are checked into git and live in .claude/commands/. For example, Claude and I use a /commit-push-pr slash command dozens of times every day. The command uses inline bash to pre-compute git status and a few other pieces of info to make the command run quickly and avoid back-and-forth with the model (code.claude.com/docs/en/slash-)