Appearance
Claude
https://youtu.be/aqtseECSdtY?si=I9PX9JiTINYrTjU2
Boris Cherny shared 13 tips on how to get the most out of Claude Code. As a reminder, right before the New Year he stated that over the last 30 days, 100% of his code (including contributions to Claude Code itself) was written by Claude Code.
We’ve put together a concise retelling - you might find something useful here:
1️⃣ I run 5 Claude sessions in parallel in the terminal, number the tabs, and use system notifications to know when Claude needs input.
2️⃣ At the same time, I keep 5–10 sessions open in claude.ai/code alongside the local ones. During work, I move sessions between the terminal and the web, and I also regularly start sessions from my phone.
3️⃣ I use only Opus 4.5 with reasoning for everything. Despite being slower, its better tool usage and reduced need to “steer” the model make it faster overall than Sonnet in most cases.
4️⃣ As a team, we maintain a CLAUDE.md file. Every time Claude makes a mistake, we add a rule so it doesn’t repeat that error.
5️⃣ We also update CLAUDE.md during code reviews, tagging the agent via @claude.
6️⃣ I start most sessions in Plan mode. If the goal is a Pull Request, Claude and I iteratively refine the plan until it’s solid, then I enable auto-accept edits - and the task is often completed in a single pass.
7️⃣ For all recurring internal workflows, I use slash commands. They live in .claude/commands/, speed things up, and allow us to reuse established workflows.
8️⃣ I regularly use sub-agents: for example, one simplifies the code after changes, while another runs end-to-end checks. This automates standard steps for nearly every PR.
9️⃣ We use a PostToolUse hook for code formatting. Claude usually writes clean code, and the hook handles the last 10% to avoid CI failures.
1️⃣0️⃣ I don’t use --dangerously-skip-permissions. Instead, I pre-approve safe commands via /permissions. These settings are stored in .claude/settings.json and shared across the team.
1️⃣1️⃣ Claude Code works with all my tools: Slack, BigQuery, Sentry, and more. MCP configurations (e.g., for Slack) live in .mcp.json and are shared team-wide.
1️⃣2️⃣ For long-running tasks, I ask Claude to validate the result with a background agent, use a Stop hook, or the ralph-wiggum plugin. In a sandbox, I may enable --permission-mode=dontAsk to avoid slowing the agent down.
1️⃣3️⃣ Most importantly, give Claude a way to verify its own work. A feedback loop improves output quality by 2–3×, whether through tests, bash commands, or UI checks in the browser.