What is vibe coding? Origin, meaning, tools and where it breaks
Vibe coding is building software by describing what you want to an AI model in plain language, running the result, and asking for changes, while accepting much of the generated code without reading it. AI researcher Andrej Karpathy coined the term in a February 2025 post. It suits prototypes and throwaway tools. It is risky for anything that handles money, private data or long-term maintenance.
What is vibe coding?
Vibe coding is a way of building software where you steer with words and results, not with code. You tell an AI tool what you want. It writes the code. You run the app, see what is wrong, and tell the tool in plain language. You repeat until it works. The defining habit is that you do not review most of the code the model produces.
That last part matters. Plenty of people now write code with an AI tool next to them, read every change and could explain it afterwards. By the original definition, that is not vibe coding. Vibe coding is the mode where you judge the running app, not the source.
| Question | Vibe coding answer |
|---|---|
| Who writes the code? | An AI model, from your plain-language instructions |
| Who reads the code? | Mostly nobody; you judge the running app |
| How do you fix a bug? | Describe it, or paste the error message, and let the tool try again |
| What do you need to know? | What you want, and how to tell whether it works |
| What is it best for? | Prototypes, personal tools, demos, throwaway projects |
| What is the main risk? | Problems you cannot see because you did not read the code |
Where did the term vibe coding come from?
Andrej Karpathy, a co-founder of OpenAI and former head of AI at Tesla, coined it in a post on X on February 2, 2025 (the original post). He described a way of working with Cursor's Composer feature and a speech-to-text tool:
Read the quote again for what he actually claimed. He called it amusing, and he limited it to throwaway weekend projects. The term spread much faster than that caveat. Within weeks it was in mainstream press, and in March 2025 Merriam-Webster listed it as a slang and trending term. Collins English Dictionary named it Word of the Year for 2025 (BBC News report). For the wider history and the coverage it drew, see the Wikipedia article on vibe coding.
Karpathy's earlier line, from 2023, explains why it caught on: “the hottest new programming language is English.” Vibe coding is that idea taken to its end point, where English is the only language you use.
What does vibe coding not mean?
Many articles use “vibe coding” for any code written with AI help. Simon Willison, a developer who writes widely on this, objects to that. His point is that the word loses its meaning if it covers everything. He says that if an LLM wrote the code and you then reviewed it, tested it thoroughly and could explain how it works, that is software development, and the LLM is a tool you used for it (Not all AI-assisted programming is vibe coding).
His working rule is a good test for any code you ship: do not commit anything you cannot explain to someone else. Vibe coding is the opposite stance, and it is a legitimate one when the stakes are low.
- Not no-code. No-code tools give you a visual editor with fixed building blocks. Vibe coding produces real source code that you can export and that can do things the blocks cannot.
- Not the same as using autocomplete. Tab completion suggests the next few lines while you stay in control of the file. Vibe coding hands over whole features.
- Not automatically bad. A tool for yourself, with no private data and nothing that hurts anyone if it breaks, is a fine place to skip the review.
- Not the same as agentic coding. An agent plans and carries out multi-step work, such as running tests and fixing its own failures. You can vibe code with an agent, or work with an agent carefully and read everything. See what agentic coding is and vibe coding vs agentic coding.
How is vibe coding different from AI-assisted coding?
The difference is how much of the output you check. Both use the same tools. The same Claude Code or Cursor session can be vibe coding at 9 a.m. and careful AI-assisted engineering at 3 p.m., depending on whether you read the diff.
| Vibe coding | AI-assisted coding | Agentic coding | |
|---|---|---|---|
| You review the code | Rarely or never | Every change | Usually, at checkpoints |
| You judge success by | Does the app behave? | Tests, review and behaviour | Tests the agent runs, plus your review |
| Typical user | Non-programmers, and developers on side projects | Working developers | Developers who delegate whole tasks |
| Typical output | Prototype or personal tool | Production code | Features, fixes and refactors across many files |
| Biggest risk | Hidden bugs and security holes | Over-trusting suggestions | A long chain of unreviewed steps |
For a deeper comparison with writing code by hand, read vibe coding vs traditional coding.
How does a vibe coding session work?
Every session follows the same loop, whatever the tool.
- Describe the app. Say who uses it, what the screen shows, and what happens when they click. Keep the first request small.
- Let the tool generate it. An app builder such as Lovable or Bolt shows you a live preview. A coding agent such as Claude Code or Cursor edits files on your machine.
- Run it and use it. Click through every path yourself. This is your only review step, so do it properly.
- Report what is wrong in plain words. “The total does not update when I remove an item.” If there is an error message, paste it whole.
- Repeat in small steps. One change per request. Save a working version before each larger change, with Git or the tool's own history.
The skill is not typing code. It is writing a clear first request, spotting when the result is subtly wrong, and knowing when to stop adding features. The guide to writing an app build prompt covers the first of those, and how to vibe code walks through a full session.
Build a small web app called [name]. User: [one specific person], who wants to [one task]. Screen: one page with [the 2-3 things shown]. When the user [does X], the app [does Y] and shows [Z]. Data: keep it in memory for now; no login, no database. Do not build: accounts, payments, settings, or anything not listed above. Done when: I can [describe the exact check you will run]. After you finish, tell me how to run it and list what you assumed.
What tools do people use for vibe coding?
Tools fall into three groups. App builders run in the browser and are the easiest start. AI code editors and terminal agents run on your machine and give you more control. Cloud agents work on a copy of your repository in the background.
| Type | Examples | Best for | Catch |
|---|---|---|---|
| Browser app builders | Lovable, Bolt, Replit, v0, Base44 | Going from a description to a live app with no setup | You depend on the platform for hosting and limits |
| AI code editors | Cursor, Cline | Building on your own machine with full file access | You need to run and host the app yourself |
| Terminal agents | Claude Code, OpenAI Codex CLI, Aider, OpenCode | Larger changes across a whole codebase | Less visual; you meet the command line |
| Cloud agents | GitHub Copilot cloud agent, Codex cloud | Handing off a well-defined task and reviewing the result | Needs a repository and a clear task |
The full list with what each tool does and who it suits is in best vibe coding tools. For a three-way comparison of the most used, see Claude Code vs Cursor vs Lovable.
When does vibe coding fail?
It fails in predictable places. Each one comes from the same cause: you did not read the code, so a problem stayed invisible until it was expensive.
| Failure | What it looks like | What to do about it |
|---|---|---|
| Secrets in the browser | An API key sits in front-end code that anyone can read in their browser's developer tools | Keep keys on a server route; ask the tool where each key lives |
| Open database rows | Anyone can read or change other users' data because access rules were never set | Turn on row-level security, then test with a second account |
| The fix loop | Each fix breaks something else and the code drifts further from what you asked for | Revert to the last working version; restate the goal in a fresh session |
| Code nobody understands | A bug appears and neither you nor the tool can find it | Keep the project small; ask for a plain-language tour of the code |
| Maintenance debt | Duplicated code and inconsistent structure make every later change slower | Ask for a refactor pass; read the result before building more |
| Agents acting on live systems | An agent changes or deletes data it should not have touched | Never give an agent credentials for production data |
These are not hypothetical. In July 2025 the founder of SaaStr documented a Replit agent deleting a database despite instructions not to make changes, and in May 2025 security vulnerabilities were reported in sites built with Lovable (both summarised in Wikipedia's criticism section). The same article cites a GitClear analysis of 211 million changed lines of code from 2020 to 2024 that found refactoring falling and duplicated code rising. Treat these as a reason for care, not as proof that every project fails.
A randomized trial by the research group METR in 2025 found that experienced developers working on familiar open-source projects took 19 percent longer with AI tools than without them, while believing they had been faster (METR's write-up). The tools it tested date from early 2025 and have changed since, so read it as a warning about trusting your own sense of speed, not a ruling on today's tools. For the security side in depth, see vibe coding security.
When is vibe coding a good idea, and when is it not?
Ask what happens if the result is slightly wrong. If the answer is “I notice, I fix it, nobody is harmed,” vibe code freely. If the answer is “someone loses money or private data and I find out late,” read the code or get someone who can.
| Situation | Vibe code it? |
|---|---|
| A calculator or tracker only you use | Yes |
| A landing page or small demo to test interest | Yes |
| A prototype to show a developer or investor what you mean | Yes, and label it a prototype |
| An app with sign-up where strangers store data | Only with a review of access rules by someone who knows them |
| Anything that takes payments | Not unattended; use a hosted checkout and read the money code |
| Health, legal or safety-related advice | No |
If you are new to this, vibe coding for beginners lays out a safe first week, and vibe coding best practices covers habits that cut the failure rate. Short on ideas? Browse the ideas on the board: every one has a ready build prompt you can paste into your tool of choice. If you have one you will never build yourself, you can post it for someone else.
Frequently asked questions
What does vibe coding mean?
Vibe coding means building software by describing what you want to an AI model in plain language and accepting the code it writes without reading all of it. You judge the result by running the app and asking for changes, not by inspecting the source. Andrej Karpathy coined the term in February 2025.
Who coined the term vibe coding?
Andrej Karpathy, a co-founder of OpenAI and former AI lead at Tesla, coined it in a post on X on February 2, 2025. He described always accepting the AI's changes and pasting error messages back in, and said the approach suited throwaway weekend projects.
Is vibe coding the same as using AI to write code?
No. Using AI to write code covers any workflow where a model helps, including careful ones where you review and test every change. Vibe coding is the specific mode where you do not read most of the code. Simon Willison argues that reviewed, tested, understood AI code is ordinary software development.
Can you vibe code with no coding experience?
Yes, for small projects. Browser app builders such as Lovable, Bolt and Replit let you describe an app and see it run with no setup. The limit is judgment, not typing: without coding knowledge you may not notice a security hole or a wrong calculation, so keep the stakes low.
Is vibe coding safe for a real product?
It is risky without review. Unread code can hide exposed keys, open database rows and wrong logic around money. Many teams use AI heavily but still review and test what ships. Vibe code the prototype, then have the parts that handle payments and personal data checked.
What are the best tools for vibe coding?
For a no-setup start, browser builders such as Lovable, Bolt, Replit and v0. For more control, Cursor or Cline in an editor, or terminal agents such as Claude Code, OpenAI Codex CLI and Aider. The right pick depends on whether you want a live preview or full control of the files.
Created with AI assistance and edited for this site. Examples are illustrative and do not represent customer research. About the publisher.