Boris Cherny runs Claude Code at Anthropic, and he says he doesn’t prompt Claude anymore. Loops prompt Claude for him. Here’s what a loop is, the commands that run one, and a copy-paste charter for your first loop today.
Here’s the quote, as Addy Osmani shared it: "I don’t prompt Claude anymore. I have loops running that prompt Claude and figuring out what to do. My job is to write loops." That’s Boris Cherny, Head of Claude Code at Anthropic, describing his own workflow.
Prompting keeps you in the room. You type, you wait, you fix, you type again. A loop takes your seat. You hand it one goal, and it finds the work, does it, checks itself, remembers what it finished, and goes again until the goal is done.
Sources: Addy Osmani’s loop engineering breakdown and the X post that started this.
Every loop, no matter how fancy, runs the same five beats.
The skill isn’t bigger prompts. It’s designing this cycle once so the prompting happens without you.
Typing "do this in a loop" into a normal chat doesn’t build one. Claude Code has commands built in for it, and which one you use depends on the kind of loop.
01
/goal works until it’s done
Type /goal plus what "done" looks like, and Claude keeps working turn after turn. After every turn, a separate model checks whether the condition is met. If not, Claude keeps going. When it’s met, the loop stops. (How goals work)
That works because the goal is measurable. The checker only reads what shows up in the chat, so asking Claude to print the counts gives it proof to judge. To let it run without stopping to ask permission, use auto mode. /goal clear stops it early.
02
/loop repeats on a rhythm
Use this when there’s no finish pile, just something to keep checking, like a deploy. Give it an interval and a prompt. Leave out the interval and Claude picks its own pace.
It only runs while your session is open, and repeating tasks expire after 7 days. To stop a fixed-interval loop like this one, ask Claude to cancel it. Esc only stops a loop where Claude picks the timing. (Loop docs)
03
/schedule runs while you sleep
For something like "every weekday at 9am, review open pull requests," type /schedule and describe it. Claude sets up a cloud scheduled task (formerly called routines) that runs on Anthropic’s servers, even with your laptop closed. It’s on Pro, Max, Ultra, Team and Enterprise. (Scheduled task docs)
The Easy Way To Remember
Finish line? Use /goal. Rhythm while you work? Use /loop. Needs to run without you? Use /schedule. If a command is missing, update Claude Code.
Addy Osmani lists five pieces that make a loop more powerful and more trustworthy. Here’s each one in Claude Code.
/loop and /schedule above, or claude -p "your prompt" run from your own scheduler.claude --worktree. Skip this if you run one agent at a time.SKILL.md file in .claude/skills/ that holds what you keep re-explaining: your structure, rules and formats. Ask Claude to turn what you just explained into a skill.claude mcp add and manage them with /mcp..claude/agents/ that checks the builder’s work.Ask Claude for a one-page research brief and it can hand you clean-looking sources that don’t exist. A single prompt stays confident until something actually opens the link.
A loop fixes that. The goal becomes a bar Claude can measure: every claim has at least three sources, and every link opens to a page that backs it up. Claude writes the brief, opens each link, throws out the fakes, finds real replacements and keeps going until every source checks out.
The Part Most People Get Wrong
Your goal has to be something Claude can grade itself against, like numbers, a percentage or a checklist. "Make it good" gives it nothing to check.
A one-line goal is plenty for a small job. For bigger work like a backlog or a folder to clean up, hand the loop a full charter. Fill in the brackets and paste it into Claude Code, or put the GOAL line after /goal so the built-in checker confirms every item.
The state file turns ten separate runs into one continuous worker. Without it, every run starts from zero.
Start this week. Pick one annoying multi-item task, paste the charter, and watch it run once. Once you trust it, schedule it.