Boris Cherny, Claude Code Creator, Shares His Setup
A tutorial by Boris Cherny. Featured in the OTF curated resource library.
Hardware and Environment
Boris keeps his setup intentionally minimal. A MacBook Pro M4 Max with 64GB RAM handles everything — Claude Code, multiple terminal sessions, a browser, and occasionally Xcode. No external monitors; he works exclusively on the laptop screen.
The rationale: mobility matters more than screen real estate. Boris works from cafes, offices, and home interchangeably. A setup that depends on external monitors creates friction when changing locations. Claude Code's terminal-based interface is designed to work beautifully on a single screen.
His physical setup: a laptop stand, an external keyboard (Apple Magic Keyboard), and a trackpad. Simple, portable, and effective.
Terminal and Shell Configuration
Boris's terminal setup is optimized for Claude Code's terminal-based workflow.
Terminal: iTerm2 with minimal config
Boris uses iTerm2 with a custom color scheme (dark background, high-contrast text) and splits for multiple sessions. He runs Claude Code in one pane and a shell for manual commands in another.
Shell: zsh with oh-my-zsh
A standard zsh setup with a minimal prompt showing the current directory and git branch. No fancy themes — clarity over aesthetics. The prompt is designed to not interfere with Claude Code's output.
Key aliases
A handful of aliases speed up common workflows: `cc` for `claude-code`, `ccr` for `claude-code --resume`, and git shortcuts. The principle: make the most common actions the fewest keystrokes.
tmux for session persistence
Boris uses tmux to maintain persistent terminal sessions. When he closes his laptop and reopens it, his Claude Code sessions, terminal splits, and working state are exactly where he left them.
Claude Code Setup
AGENTS.md in Every Project
Boris has an AGENTS.md in every project root. It includes the project's tech stack, key architectural decisions, coding conventions, and current sprint context. He updates the context section daily — sometimes multiple times a day.
Custom Slash Commands
He maintains a library of custom slash commands for repetitive tasks: `/test-coverage` runs tests and asks Claude to fill gaps, `/pr-summary` generates a PR description, and `/deploy-check` verifies deployment readiness.
Model Selection Strategy
Boris uses the default Sonnet model for most tasks and switches to Opus for complex architectural decisions or multi-file refactoring. The key: don't overthink model selection — Sonnet handles 90% of daily work.
Session Management
He starts fresh sessions for each new task/feature and uses /compact when sessions get long. The rule: if the agent starts repeating itself or producing lower-quality output, it's time for /compact or a new session.
The Daily Workflow
Boris's typical day follows a consistent pattern:
Morning (9-10am): Review overnight agent PRs (if running headless tasks), check team Slack, update AGENTS.md with today's focus.
Deep Work Block 1 (10am-1pm): Primary feature development with Claude Code. This is where most code gets written. He works in focused 30-minute sessions — describe a feature, let the agent implement it, review, iterate, commit.
Afternoon (2-4pm): Code review, debugging, and meetings. Uses Claude Code for investigating bugs reported by the team. The debugging workflow: paste the error, describe expected behavior, let the agent investigate.
Deep Work Block 2 (4-6pm): Wrap up features, clean up TODOs, and set up headless tasks for overnight processing.
The key ritual: before closing the laptop, Boris writes 3-5 bullet points in his AGENTS.md about what was accomplished and what's next. This gives future-him (and future-Claude-Code) perfect context to resume the next morning.
Philosophy on Tools
Boris's tool philosophy can be summarized in three principles:
1. Minimize friction, not features. The best setup is the one that doesn't get in the way. Boris doesn't use the flashiest tools — he uses the ones that disappear into the background, letting him focus on the actual problem.
2. Optimize for the common case. 90% of his work happens in a terminal with Claude Code. The other 10% (GUI debugging, design review, meetings) uses standard tools without customization. Don't over-optimize for edge cases.
3. Tools should adapt to you. Not the reverse. Custom slash commands, personalized AGENTS.md, and consistent aliases mean the tools work the way Boris thinks. He spent time upfront configuring, so daily work requires zero configuration.
The meta-insight: the creator of Claude Code's setup isn't exotic. It's a MacBook, a terminal, and well-configured AI tooling. The power isn't in the hardware or exotic software — it's in the workflow and the context (AGENTS.md) that makes every AI interaction productive.