What is Vibe coding?
Writing software by prompting an AI and accepting its output without reviewing the code — fast, fun, and safe only for work nobody has to maintain.
The term names a real workflow, and its limits matter: what is fine for a weekend prototype is a liability in a production codebase.
On this page
Vibe coding is writing software by describing what you want to an AI model and accepting its output without reviewing the code — Andrej Karpathy's February 2025 term for "giving in to the vibes" and forgetting the code even exists. Karpathy described a weekend project where he would "just say things, run things, and copy paste things, and it mostly works": the point of the term is that the code is never really read, by him or by anyone.
The term stuck because it names a real and growing workflow — and because the line it draws is professionally important. Simon Willison's March 2025 write-up, the reference piece on the distinction, argues the label should stay limited to not-reviewing-the-code: "vibe coding is not the same thing as writing code with the help of LLMs". A professional who prompts an AI, reads every line of the diff, and answers for the result is doing AI-assisted engineering, not vibe coding — whatever it feels like from the inside.
Why the distinction matters
Vibe coding is not a moral failing; it is a risk profile. The question that decides whether it is acceptable is simple: who is accountable for this code, and what happens if it is wrong?
For a throwaway prototype — a personal tool, a demo, a hackathon project — the answer "nobody, and nothing" is fine. Karpathy's original context was exactly that: a toy project where the cost of a defect is five minutes of regeneration. For anything with users, data, or a maintainer, the same workflow is how vulnerabilities ship: an unreviewed diff is an unreviewed diff whether the model wrote it cheerfully or sullenly.
The Stack Overflow Developer Survey 2025 quantifies the middle ground most developers actually inhabit: 84% are using or planning to use AI tools, 66% describe the output as "almost right, but not quite", and 46% do not trust its accuracy. Almost right is precisely the output that vibe coding waves through and engineering discipline catches.
Vibe coding vs agentic coding
The terms are often conflated; they describe different points on the accountability spectrum.
| Vibe coding | AI-assisted coding | Agentic coding | |
|---|---|---|---|
| Who writes | The model, in a chat loop | The model, in an editor, per suggestion | The model, given a whole task |
| Who reads the diff | Nobody | The human, line by line | An independent reviewing agent, a human, or both |
| Unit of work | A prompt | A file or block | A ticket with acceptance criteria |
| Failure handling | Regenerate and hope | Reject the suggestion | Review bounces the work back; the loop repeats |
| Verification | "It seems to work" | The human tests as they go | Tests against requirements, QA with evidence |
| Suitable for | Prototypes, personal tools | Everyday professional work | Managed production work at scale |
The columns are cumulative, not opposed: agentic coding done properly contains AI-assisted coding's habit of reading the diff — it just enforces it structurally, with review and evidence, instead of trusting whoever happens to be watching.
When vibe coding is acceptable
Three conditions make vibe coding a legitimate choice rather than a liability:
- The blast radius is you. Personal scripts, local tools, one-off analyses — work where a failure costs you minutes, not users.
- Nothing persists. Code that will be deleted before it meets a user, a credential, or a production system.
- Nothing secret is in reach. A chat loop pasted with code and context is still a data-handling decision; keep credentials and customer data out of it.
Break any of the three — real users, a repository that lives on, secrets in the environment — and the workflow has outgrown the term. The next step is not "vibe coding more carefully"; it is adding the disciplines this glossary describes: isolation, independent review, and evidence.
The failure mode worth knowing
Vibe coding fails quietly, which is what makes it dangerous. There is no moment where the workflow says "stop": the app runs, the feature seems to work, and the defect — a wrong assumption baked into both code and tests, a credential in a log, an endpoint without authorisation — ships with everything green. In review-discipline terms, vibe coding maximises false greens: checks that pass because nobody ever asked them to prove anything.
Vibe coding in YATFA
YATFA assumes the opposite operating model: no change reaches the codebase unreviewed, whatever wrote it. Every ticket's work passes review by an agent that did not write the change and QA with evidence attached — the structural replacement for "I read the diff myself, mostly". If you are moving personal AI-assisted work into a team setting, how to review AI-generated code covers the review loop that replaces vibes.
Frequently asked questions
Who coined the term vibe coding?
Andrej Karpathy, in a February 2025 post describing his weekend workflow of prompting, running, and copy-pasting without really reading the code — "giving in to the vibes". The term spread through early 2025 as AI coding exploded.
Is vibe coding the same as using Cursor or Copilot?
No. Using an AI editor while reviewing what it writes is AI-assisted coding. The vibe coding label is specifically about not reviewing the output. The same tool supports both workflows; the difference is whether a human stays accountable for the diff.
Is vibe coding bad?
It depends entirely on the stakes. For throwaway prototypes it is a legitimate, fast way to work. For production code, team repositories, or anything touching data and credentials, skipping review is how defects and vulnerabilities ship with full confidence — the discipline to add is review, not guilt.
Can AI agents do the reviewing instead of a human?
Yes, with a condition: the reviewing agent must be independent of the one that wrote the change, and it must check against requirements rather than against the author's own tests. That is the core of agentic engineering — see background coding agents for how unattended work gets reviewed.