Karpathy's setup: from tab complete to talking to Claude
Published
Andrej Karpathy has spent two decades training neural networks: as a founding member of OpenAI, as director of AI at Tesla, and in small teaching repositories like nanoGPT and nanochat. He also writes in public about how he writes code, and over four years those posts trace one of the clearest records of how AI changed a working programmer’s tools. This is the timeline, from his own posts.
2022: Copilot writes most of the code
At the end of 2022 he was already on GitHub Copilot: “Copilot has dramatically accelerated my coding, it’s hard to imagine going back to ‘manual coding’,” he wrote. “It already writes ~80% of my code, ~80% accuracy. I don’t even really code, I prompt. & edit.” A month later he summed it up in one line: “The hottest new programming language is English.”
August 2024: Cursor
In August 2024 he switched: “I’m trying VS Code Cursor + Sonnet 3.5 instead of GitHub Copilot again and I think it’s now a net win.” He called what he was doing “half-coding”: “you write the first chunk of the code you’d like, maybe comment it a bit so the LLM knows what the plan is, and then tab tab tab through completions.”
February 2025: vibe coding
On 2 February 2025 he named a new way of working: “There’s a new kind of coding I call ‘vibe coding’, where you fully give in to the vibes, embrace exponentials, and forget that the code even exists.” The setup was Cursor Composer with Sonnet, and he spoke rather than typed: “I just talk to Composer with SuperWhisper so I barely even touch the keyboard.” He was clear about where it belonged: “It’s not too bad for throwaway weekend projects.”
In April he wrote up one such project, MenuGen, an app that generates pictures for the dishes on a restaurant menu. “100% of the code was written by Cursor+Claude,” a TypeScript and React app deployed on Vercel with Clerk for sign-in. Writing the code was the easy part. Most of the post is about everything else: API keys, deployment settings, authentication and payments.
August 2025: four layers
By August his use had spread across several tools, each for a different kind of job:
- “The bread & butter (~75%?) of my LLM assistance continues to be just (Cursor) tab complete,” because writing code in the right place is “a high bandwidth way of communicating ’task specification’ to the LLM.”
- Next, highlighting a chunk of code and asking for a change.
- Then “Claude Code / Codex / etc, running on the side of Cursor,” for larger pieces that are easy to describe. He did not run them in YOLO mode (“I ESC fairly often”) and found they “basically don’t have a sense of taste.” They were most useful outside his specialty, “e.g. writing some rust recently, or sql commands.”
- And for the hardest bugs, GPT-5 Pro: “Final layer of defense.”
October 2025: nanochat, by hand
Then came nanochat, a small end-to-end pipeline for training a ChatGPT-like model in Python and PyTorch, managed with uv. Asked how much of it the agents wrote, he answered: “it’s basically entirely hand-written (with tab autocomplete). I tried to use claude/codex agents a few times but they just didn’t work well enough at all and net unhelpful, possibly the repo is too far off the data distribution.”
December 2025: the switch to agents
Two months later that had reversed. In A few random notes from claude coding (January 2026) he described the change: “I rapidly went from about 80% manual+autocomplete coding and 20% agents in November to 80% agent coding and 20% edits+touchups in December.” He called it “easily the biggest change to my basic coding workflow in ~2 decades of programming.”
He still kept an editor open: “my current is a small few CC sessions on the left in ghostty windows/tabs and an IDE on the right for viewing the code + manual edits.” And he still had complaints: the models “make wrong assumptions on your behalf,” “really like to overcomplicate code and APIs,” and ignore “a few simple attempts to fix it via instructions in CLAUDE.md.” His advice was to give agents goals, not steps: “Don’t tell it what to do, give it success criteria and watch it go.”
The week before, he had written “I’ve never felt this much behind as a programmer,” listing everything there now was to learn: “agents, subagents, their prompts, contexts, memory, modes, permissions, tools, plugins, skills, hooks, MCP.” In his 2025 year in review he credited Claude Code with “a delightful, minimal CLI form factor” and argued that “it makes more sense to run the agents directly on the developer’s computer” than in cloud containers.
March 2026: agents doing the research
In March 2026 he pointed the agents at nanochat itself. autoresearch gives an agent a single training file to change, five minutes per experiment and one number to improve. “Simply spin up your Claude/Codex or whatever you want in this repo,” the README says, and the human edits only a Markdown prompt, program.md. After two days, he reported, the agent had worked through “approx. 700 changes autonomously” and found about 20 that cut nanochat’s time to GPT-2 from 2.02 to 1.80 hours. Iterating on training runs is “the bread and butter of what I do daily for 2 decades. Seeing the agent do this entire workflow end-to-end and all by itself… is wild.”
October 2026: only talking to Claude
His most recent write-up, HackerTube (31 October 2026), is a site of videos recommended in Hacker News comments. It describes a setup with no editor in it at all: “I use Claude Code (desktop app for Mac),” with Opus 5.5 on medium effort as his default, and a Claude Code Workflow to run Sonnet over the comments. “I don’t actually do anything resembling traditional engineering anymore… I only talk to Claude and have it do everything.” The parts he did himself were an API key, a server and a domain. Then “I gave Claude the IP” and told it to “update, deploy, secure, harden and optimize the code.”
What the stack says
The languages barely moved: Python and PyTorch for the research, a little Rust where speed mattered. The tools around them changed four times in four years, from Copilot to Cursor’s tab complete to agents beside the editor to agents instead of it. And each time, he posted where he had landed and what still didn’t work.