Vibe Coding
Vibe Coding
Coined by Andrej Karpathy on February 2, 2025. The practice of accepting AI-generated code without reading it, iterating on behavior rather than implementation. You describe what you want, the AI writes it, you test if it works, you describe what's wrong, repeat.
Karpathy's Framing
Original tweet: "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 broader framing: "I just see stuff, say stuff, run stuff, and it mostly works." The developer operates at the level of desired behavior, not source code. The model handles implementation. This is qualitatively different from using AI autocomplete — you're not guiding the code, you're describing outcomes.
This works because modern frontier models (claude-sonnet-4-6, gpt-5-4) can write functional code for a large range of tasks without needing a human to guide implementation decisions.
The term gained wide recognition: Collins Dictionary named it Word of the Year, and MIT Technology Review listed it as one of 10 Breakthrough Technologies of 2026.
When It Works
- New projects with well-understood requirements: Building a web scraper, a CLI tool, a simple web app. Known patterns, known libraries. The model has seen thousands of examples.
- Prototyping: Speed matters, maintainability doesn't yet. Vibe coding for a prototype is fine — throw it away when you understand the problem.
- Glue code: Scripts, data transforms, API integrations. Low complexity, clear inputs/outputs.
When It Breaks Down
- Large codebases: Once a codebase is large enough, the model loses coherence about what exists where. Changes in one place break things elsewhere, and the model doesn't always track this.
- Domain-specific correctness: Financial calculations, medical logic, security-critical code — "seems to work" is not enough.
- Performance-sensitive code: The model writes working code, not necessarily efficient code.
- Your codebase, long-term: Vibe-coded codebases tend to become unmaintainable because no human understands the implementation.
The Honest Version
Vibe coding is a real productivity tool for the right tasks. It's also genuinely risky for the wrong ones. The error is not the practice itself but applying it without understanding its failure modes.
A mature version: vibe code to get something working, then read and understand the output before relying on it. The model handles the implementation burden; you maintain understanding.
Tools
claude-code and cursor are the primary tools for vibe coding. Claude Code for autonomous sessions, Cursor for interactive inline edits with visual diff review.
Related
claude-code · cursor · agentic-workflows · evals