Set Up Claude Code Like Its Creator
Set Up Claude Code Like Its Creator
What you'll build
A `/setup` skill that configures any project with the same settings, permissions, hooks, and workflows that Boris Cherny (the creator of Claude Code) uses to ship 259 PRs a month.
What You're Building
Boris Cherny created Claude Code. He also uses it to ship roughly 8-9 PRs per day — 259 in a single month, 100% AI-generated. He's been public about his exact setup: how he configures projects, what permissions he sets, what hooks auto-format his code, and what slash commands he runs dozens of times daily.
We're going to research his workflow, configure your Claude Code to match it, and then package the whole thing as a reusable skill. By the end, you'll type /setup in any new project and Claude will configure it with the creator's settings automatically.
Milestone 1: Research the Creator's Workflow
We'll use Claude Code to pull Boris's public posts, extract every concrete detail, and save it as a reference doc you can reuse.
Prompt:
Search the web for how Boris Cherny (creator of Claude Code) uses Claude Code. Find his Threads posts, the howborisusesclaudecode.com site, and any interviews. I want specifics: how many terminals he runs in parallel, what model he uses, how he uses Plan Mode, what's in his CLAUDE.md, what slash commands he has, what hooks and permissions he configures, and his production metrics. Save everything as a structured reference doc to ~/Documents/references/boris-workflow.md — for each practice, include "What Boris does" and "How to apply this." Add a cheat sheet at the end.
What Claude Code does: Claude runs web searches, fetches full pages, cross-references multiple sources, and writes a structured document. Web research without leaving the terminal — Claude finds the sources, reads them, and synthesizes the details into one reference doc. You get a permanent knowledge base, not a chat message that disappears.
Try it: Open ~/Documents/references/boris-workflow.md. You should see sections covering parallel sessions, model choice, Plan Mode, CLAUDE.md, slash commands, hooks, permissions, and verification. If any section is thin, tell Claude: "Go deeper on [topic] — fetch [specific URL] and extract every detail."
Milestone 2: Configure Project Settings Like Boris
Boris's team stores shared settings in .claude/settings.json — permissions for safe commands, hooks that auto-format code, and tool configurations. Let's set yours up.
Prompt:
Read the reference doc at ~/Documents/references/boris-workflow.md. Now configure this project's Claude Code settings the way Boris does. Create .claude/settings.json with: 1) Permissions that pre-allow safe commands (build, test, lint, git status, git diff, git log). 2) A PostToolUse hook that auto-formats code with prettier (or the project's formatter) after every Write/Edit. Use the permission patterns Boris uses — wildcards like "Bash(npm run *)".
What Claude Code does: Claude creates .claude/settings.json with two key configurations. Permissions pre-allow safe bash commands so Claude doesn't ask for approval on every git status or npm test. Hooks auto-format code after Claude writes it — catching the ~10% of cases where formatting isn't perfect and preventing CI failures. Boris never uses --dangerously-skip-permissions. He uses granular permissions instead.
Try it: Open .claude/settings.json. You should see an allow list with wildcard patterns and a PostToolUse hook matching Write|Edit. Try running a command Claude would normally ask permission for (like git status) — it should execute without prompting.
Milestone 3: Create a CLAUDE.md and Slash Commands
Boris keeps a CLAUDE.md in every repo — just ~2,500 tokens of focused rules. He also uses slash commands for repeated workflows, especially /commit-push-pr.
Prompt:
Following Boris's workflow from the reference doc: 1) Create a CLAUDE.md for this project. Detect the tech stack from package.json or the project files. Include: architecture overview, key rules, common workflows (build, test, deploy), and a "Known Issues" section. Keep it under 2,500 tokens — focused and actionable, not bloated. 2) Create .claude/commands/commit-push-pr.md — a slash command that stages changes, writes a commit message from the diff, pushes, and creates a PR. Include an inline bash block at the top that pre-runs git status and git log so Claude has context automatically.
What Claude Code does: Claude creates two files. CLAUDE.md is the project brain — it tells Claude the rules for this specific project. Every time Claude starts a session here, it reads this file first. Boris's team updates theirs multiple times a week — whenever Claude does something wrong, they add a rule. Slash commands are just markdown files in .claude/commands/. The filename becomes the command: commit-push-pr.md becomes /commit-push-pr. The inline bash block at the top runs automatically when invoked, giving Claude git context without an extra model call.
Try it: Verify CLAUDE.md exists and reads accurately for your project. Then check .claude/commands/commit-push-pr.md — open it and confirm the inline bash block is at the top and the steps are clear. Type /commit-push-pr in Claude Code — it should appear in autocomplete.
Milestone 4: Package It All as a Reusable /setup Skill
You've configured one project. Now let's turn this entire setup into a skill you can run on any project.
Prompt:
Create a global slash command at ~/.claude/commands/setup.md. This skill should do everything we just did — but for any project I point it at. When I invoke /setup, it should: 1) Read ~/Documents/references/boris-workflow.md for the reference workflow. 2) Scan the current project (detect tech stack, check for existing config). 3) Create or update .claude/settings.json with permissions and hooks appropriate for the project's tools. 4) Create or update CLAUDE.md based on the detected tech stack. 5) Create .claude/commands/commit-push-pr.md with inline bash context. 6) Display a cheat sheet with Boris's key shortcuts: Plan Mode (Shift+Tab twice), auto-accept (Tab), voice input (fn x2), and the verification rule.
What Claude Code does: Claude creates a skill file in ~/.claude/commands/ — the global commands directory, meaning this skill works everywhere, not just one project. The skill reads your reference doc every time it runs, so if you update the reference with new learnings, the skill automatically picks them up. The inline project scan (step 2) makes the skill adaptive — it configures differently for a Next.js app vs. a Python script vs. a static site.
Try it: Run ls ~/.claude/commands/setup.md to confirm the file exists. Open it and verify all 6 steps are there, including the reference doc path and the cheat sheet.
Milestone 5: Test It on a Real Project
Navigate to a project you're working on and run your new skill.
Prompt:
/setup
One command. Claude reads the Boris reference doc, scans your project, creates the settings file with permissions and hooks, writes a CLAUDE.md, drops in the commit-push-pr slash command, and shows you the cheat sheet.
What Claude Code does: Your skill orchestrates the full setup. It detects the project, adapts the configuration, and creates all the files — the same setup Boris uses, applied to your project in one shot. If anything looks wrong, edit ~/.claude/commands/setup.md directly. Changes take effect immediately.
Try it: After the skill runs, verify: Does .claude/settings.json exist with permissions? Does CLAUDE.md reflect your tech stack? Does .claude/commands/commit-push-pr.md exist? Does the cheat sheet show Boris's shortcuts? Try Shift+Tab twice — you should enter Plan Mode. That's the creator's core loop: plan first, then execute.
What You Built
Your Claude Code now works the way its creator's does:
.claude/settings.json— Permissions for safe commands + auto-formatting hooksCLAUDE.md— Project brain that Claude reads on every session.claude/commands/commit-push-pr.md— The slash command Boris runs dozens of times daily~/.claude/commands/setup.md— A reusable skill that applies this setup to any project
The creator's workflow in one command: /setup → configure → Plan Mode → build → verify → /commit-push-pr. Repeat.
Take It Further
- Add more slash commands —
/test,/deploy,/fix-ci,/techdebt(Boris runs/techdebtat the end of every session) - Create subagents in
.claude/agents/— acode-simplifierthat cleans up after Claude, averify-appthat tests end-to-end - Update your reference doc as you discover new practices — the
/setupskill reads it fresh every time
Ready to build your first AI agent?
Live Zoom workshop + 1 month WhatsApp follow-up with Yuval Keshtcher (Hebrew)
Learn about the Workshop