Vibe coding is a term coined by Andrej Karpathy in early 2025 to describe a style of software development where you write code primarily through natural language instructions to an AI assistant, largely ignoring the actual code being generated. The idea is to describe what you want — “add a dark mode toggle that persists across sessions” — and let the AI handle the implementation details, intervening only when the output is wrong and telling the AI to fix it. You ride the vibe, accepting code you could not have written yourself as long as it works. The term spread rapidly because it named something many developers were already doing, and it crystallised a genuine debate about what software development looks like when AI writes most of the code.
Where the Term Came From
Andrej Karpathy, former director of AI at Tesla and a founding member of OpenAI, posted about the concept in February 2025: “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.” He described building small apps entirely through voice prompts in Cursor, accepting whatever the model generated, and only telling the AI to fix errors when things broke. The post resonated because Karpathy is a credible voice — he understands both AI systems deeply and software engineering — and because he was articulating an experience that many people had but lacked vocabulary for. Cursor, Claude Code, Windsurf, and GitHub Copilot had all made high-quality AI-generated code accessible enough that this style of working was genuinely feasible.
What Makes It Different from Earlier AI-Assisted Coding
The shift from earlier AI coding assistance (GitHub Copilot’s autocomplete in 2021–2022) to vibe coding is a shift in agency and scope. Earlier tools autocompleted — they suggested the next few lines based on what you were typing. The developer remained the primary author and architect; the AI was a sophisticated autocomplete. Vibe coding inverts this: the developer describes the goal and the AI generates entire features, files, or applications. The developer’s role shifts from writing code to writing prompts, evaluating outputs, and deciding what to ask for next. This shift is enabled by two technological changes: much more capable models (GPT-4o, Claude 3.5/3.7, Gemini 2.0 can write substantially more complex code correctly) and agentic scaffolding (tools like Cursor, Windsurf, and Claude Code that give the model access to the full codebase, terminal, and error output for multi-step tasks).
The Full Spectrum: From Vibe to Careful
Vibe coding is better understood as one end of a spectrum than as a single practice. At the vibe end: you describe features, accept generated code, run it, tell the AI what broke, and repeat. You do not read the code carefully and do not necessarily understand what it is doing. At the careful end: you use AI to generate code but review every line, understand each change, and reject or modify anything that does not meet your standards. Most practical AI-assisted coding falls somewhere between these poles — using AI for boilerplate, routine features, and first drafts while reviewing carefully for complex logic, security-sensitive code, and anything in shared production codebases. “Full vibe coding” in Karpathy’s original description is practical for personal tools and throwaway scripts; production software typically warrants more careful review.
Figure 1 — The AI-assisted coding spectrum
When Vibe Coding Works Well
Vibe coding is most effective for several categories of work. Personal tools and scripts: a data processing script, a personal web scraper, a small utility you’ll use twice — these do not need code review or security hardening. Prototyping and validation: building something quickly to test whether an idea works before investing in production quality. UI and boilerplate-heavy features: React components, API clients, database schemas — high volume of predictable code where correctness is easily validated by running the result. Learning and exploration: building something to understand how a technology works, where the process matters more than the output quality. Non-critical internal tools: admin dashboards, internal reporting tools, one-off data transformations that run on trusted data in trusted environments. The common thread: contexts where the cost of a code quality issue is low, validation is easy, and the value of speed outweighs the value of careful craftsmanship.
When Vibe Coding Is Risky
Vibe coding is poorly suited to contexts where code quality failures have real consequences. Security-sensitive code: authentication, authorisation, cryptography, payment processing, data validation — AI models make subtle errors in these areas that are not visible from testing happy paths and can be exploited. Highly concurrent systems: race conditions and deadlocks in concurrent code are often not caught by basic testing and require careful reasoning about execution ordering. Long-lived production codebases: code you do not understand accumulates technical debt silently; a vibe-coded codebase becomes progressively harder to reason about because no human deeply understands it. Performance-critical paths: the model may generate correct but inefficient code that only becomes a problem at scale. Regulated industries: healthcare, finance, aviation — regulatory requirements demand that someone understands and can explain what the code does. The general principle: as the cost of a hidden bug increases, the value of understanding the code increases, and pure vibe coding becomes less appropriate.
The Skills Vibe Coding Requires
A common misconception is that vibe coding requires no technical skill. It requires different skills than writing code from scratch, but they are not trivially easier. You need enough programming knowledge to evaluate whether generated code is correct and to debug when it is not — pure non-programmers using vibe coding to build non-trivial software often hit walls they cannot get past because they cannot diagnose failures. You need prompt engineering skill to describe what you want precisely enough that the AI generates what you need. You need system design knowledge to break large problems into appropriately-scoped AI requests. You need judgement about when to accept generated code and when to push back and ask for a revision. Vibe coding lowers the floor of what is achievable for less experienced programmers, but it does not eliminate the need for skill — it changes the skills that matter most.
The Tools That Enable Vibe Coding
The vibe coding experience depends heavily on the tool. Cursor is the most commonly cited platform: it gives the AI access to the full codebase, a terminal, and the ability to make multi-file edits, which enables the kind of sustained feature development Karpathy described. Claude Code operates similarly as a terminal tool. Windsurf (from Codeium) is a strong competitor with comparable capabilities. GitHub Copilot with Workspace mode added agentic multi-file capabilities in 2025. Bolt.new and Lovable focus on web app generation from prompts, targeting non-developers. The choice of tool significantly affects the vibe coding experience — tools with better agentic scaffolding (file access, error feedback, terminal access) enable larger and more complex vibe coding sessions than autocomplete-only tools.
Vibe Coding and the Future of Software Development
Vibe coding as a concept sparked debate about what software development will look like as AI capability increases. One view: vibe coding is a transitional approach during which AI is capable enough to generate code but not yet reliable enough to eliminate human oversight, and as models improve, the human role will shrink toward pure specification. Another view: human understanding of code will always be necessary for complex systems, and vibe coding names the top of a spectrum where the tradeoffs (speed vs understanding) are real and context-dependent — the spectrum will shift toward AI but will not collapse. What is clear is that the practice has established itself as a legitimate and productive working style for appropriate contexts, and understanding it — including its limits — is increasingly important for any developer or development team in 2026.
Vibe coding is not a gimmick — it is a genuine shift in how software is produced, enabled by AI models capable enough to write substantial correct code from natural language descriptions. It is also not universally appropriate: the contexts where speed and volume matter more than deep understanding are real and significant, and the contexts where understanding matters more are equally real. The most effective developers in 2026 treat it as a tool in the kit — using it aggressively where it fits, and applying more careful review where it does not.