How Andrej Karpathy Actually Uses Claude Code Day to Day
Karpathy's real Claude Code workflow: medium effort only, no reading code, ASD-STE100 explanations, and Sonnet sub-agent delegation.

What is Andrej Karpathy’s Claude Code workflow?
Andrej Karpathy, the former Tesla AI lead and OpenAI co-founder who coined the term “vibe coding,” runs nearly all of his personal projects through the Claude Code desktop app using Opus 5.5 set to medium effort. He doesn’t read the code it writes, doesn’t run terminal commands himself, and keeps his prompts short and deliberately simple. The workflow leans on plain language requests, visual explanations instead of text, and delegating heavy lifting to cheaper Sonnet sub-agents orchestrated underneath Opus.
TL;DR
- Karpathy uses Claude Code on Opus 5.5 at medium effort, not max, treating the higher effort setting as unnecessary for most of his work.
- He follows a strict hands-off rule: no reading code, no writing code, no running terminal commands himself, letting Claude handle all of it.
- His prompts favor short, underspecified instructions over detailed requirements, on the theory that extra constraints often contradict each other and confuse the model.
- He asks models to explain things in ASD-STE100, a controlled vocabulary originally designed for aircraft maintenance manuals, to strip out unnecessary words.
- For architecture decisions, he prefers Opus delegating to Sonnet sub-agents, getting frontier-model orchestration while routing the bulk of the work to a cheaper model.
- He’s skeptical of public benchmarks and instead points to Epoch AI’s ECI (a benchmark-of-benchmarks that scores how reliable other benchmarks actually are).
- When sharing projects, he gives people the data source and the prompt, not the finished app, treating the specific implementation as a disposable wrapper around the data.
Everyone else built a construction worker.
We built the contractor.
One file at a time.
UI, API, database, deploy.
Why does he use medium effort instead of max?
Claude Code lets users pick an effort level, trading inference time and cost for more thorough reasoning. Karpathy’s default is medium, not max. The implication is that max effort is overkill for the kind of iterative, conversational work he does. He’d rather get a fast response, look at the result, and give another short instruction than wait longer for a single more exhaustive pass. This fits a broader pattern in his workflow: tight feedback loops matter more than squeezing maximum reasoning out of every single call.
Why does he refuse to read or write the code himself?
Karpathy has described a standing rule for himself: he doesn’t read the code Claude produces, doesn’t write any of it, and doesn’t execute terminal commands directly. Everything happens through conversation with the model. This is a stronger form of delegation than most people practice. Plenty of engineers still review diffs line by line or jump into a terminal to fix something quickly. Karpathy treats that as unnecessary friction. If something’s wrong, the fix is to talk to Claude about it, not to intervene manually.
This only works because he trusts the model to handle the full loop: writing code, running it, checking results, and iterating. It also forces him to communicate intent clearly in natural language, since he has no fallback of just fixing things himself.
What is ASD-STE100 and why does he ask for it?
ASD-STE100 (sometimes called “Simplified Technical English”) is a controlled language standard developed for aerospace maintenance documentation. It restricts vocabulary and grammar so that technical manuals can be understood quickly and unambiguously, including by non-native English speakers. Karpathy asks models to explain concepts to him using this same restricted style: short sentences, plain words, no unnecessary qualifiers.
The logic is simple. Dense, jargon-heavy explanations take longer to parse than they need to, and most of that density isn’t adding information. Asking for ASD-STE100-style output forces the model to cut the fat, which makes answers faster to read and harder to misunderstand.
Why are his prompts short and “dumb” on purpose?
A counterintuitive piece of Karpathy’s approach is that he avoids loading his prompts with detailed requirements. His reasoning: people are bad at noticing when their own requirements contradict each other. A long prompt accumulated over multiple edits often contains an earlier instruction that quietly conflicts with a later one, and the model ends up trying to satisfy both, producing worse output than if it had just been given a short, clear goal.
This shows up in how casually he delegates real tasks. To harden security on a project, he reportedly just sent Claude the message “check recent cyber stuff,” and Claude dispatched sub-agents to research current threats and apply fixes. To deploy a server, he gave Claude the IP address and five words: “update, deploy, secure, harden, and optimize.” No step-by-step spec, no checklist. He’s betting that a frontier model with Claude Code’s tool access can fill in the operational detail better than a human-written list of instructions.
How does he use images and diagrams instead of text?
Karpathy reportedly asks Claude to generate diagrams, HTML pages, or even custom explainer videos when he’s trying to understand something, rather than requesting a written explanation. The rationale is straightforward: a picture can be absorbed faster than the equivalent amount of text, so if a model can produce a clear diagram in about the same time it would take to generate a paragraph, the diagram is the better use of everyone’s time. This is less a formal technique and more a habit of picking the fastest format for a given idea, and it only became practical once image and interactive-page generation got cheap and fast enough to use as a routine explanation tool rather than a special request.
Why does he distrust public benchmarks?
Karpathy has been vocal, including in a recent Hacker News comment, about not trusting standard public leaderboards to reflect real model quality. Instead he points people toward Epoch AI’s ECI, a project that evaluates benchmarks themselves, rating how rigorous and trustworthy each one actually is rather than just reporting model scores. The underlying critique is that many popular benchmarks have flaws (contamination, narrow task coverage, or scoring quirks) that make raw leaderboard position a weak signal.
He backs this skepticism with his own informal tests. In one example, he asked a model to classify whether a given latitude and longitude was land or water, then plotted thousands of these answers to reconstruct a rough map of the world purely from the model’s internal knowledge. The exercise wasn’t a rigorous benchmark either, but it demonstrated something benchmarks often miss: how much world knowledge is compressed into a model’s weights, visible once you probe it the right way rather than just running it through a standard test suite.
How does the Opus-to-Sonnet delegation structure work?
For data-heavy projects, Karpathy’s pattern is to have Claude build filtering logic (stripping out URLs, regex noise, spam, and so on), then pass the cleaned-up results to Sonnet, run through Claude Code workflows. The practical benefit is cost and throughput: Opus 5.5 on medium effort acts as the orchestrator making higher-level decisions, while Sonnet sub-agents handle the bulk, repetitive work, running within his subscription rather than racking up separate heavy usage. This mirrors a broader trend in agentic coding: use the frontier model sparingly for judgment calls, and lean on a cheaper, faster model for volume.
He applied a version of this setup to a personal project called HackerTube, a YouTube-style site built by scraping and filtering content repeatedly recommended on Hacker News, created after he got annoyed by low-quality thumbnails cluttering his YouTube feed. It’s a small example of a larger habit: when something annoys him, he builds a fix rather than working around it.
Is sharing the app even necessary anymore?
Karpathy’s approach to sharing his projects is unusual. Rather than handing someone a finished app, he shares the data source and the prompt he used to build it, on the logic that anyone can now regenerate their own customized version with Claude. He treats the specific app as a disposable wrapper around the real asset, which is the underlying data. If a capable model can generate a comparable or better interface on demand, distributing the original implementation adds little value beyond convenience.
Frequently Asked Questions
What effort setting does Karpathy use in Claude Code?
He uses medium effort on Opus 5.5 as his default, not max effort, favoring faster iterative responses over the most exhaustive reasoning pass available.
Does Karpathy write any of his own code?
No. He has described a rule where he doesn’t read the code, write the code, or run terminal commands, delegating the entire execution loop to Claude.
What is ASD-STE100 and why does it matter for AI prompting?
It’s a controlled vocabulary standard built for aircraft maintenance manuals, designed for maximum clarity with minimal words. Karpathy asks models to explain concepts in this style to cut unnecessary verbosity.
Why does Karpathy prefer Epoch’s ECI over standard benchmarks?
He considers many popular public benchmarks flawed or easy to game. Epoch’s ECI evaluates the benchmarks themselves, which he treats as a more trustworthy signal than raw leaderboard scores.
What is the point of delegating from Opus to Sonnet sub-agents?
It separates judgment from volume. Opus 5.5 handles higher-level orchestration while Sonnet sub-agents process bulk work more cheaply, keeping heavy tasks running within a standard subscription rather than requiring constant top-tier model usage.
