Vibe coding is programming by conversation. You tell an AI what you want, it writes the code, you run it, and when something breaks you paste the error back and ask for a fix. The "vibe" is that you steer by how the result feels and behaves, not by reading every line.
Where the term comes from
AI researcher Andrej Karpathy popularized the phrase in an early 2025 post, describing a style where you "fully give in to the vibes" and mostly stop looking at the code itself. It stuck because it named something many people were already doing with AI coding tools.
How it works in practice
- You describe the goal: "a page that lets me upload a spreadsheet and shows a chart."
- An AI model, often inside a coding tool or an AI agent, writes the files and may run them itself.
- You try the result, report what is wrong, and repeat.
The loop is fast, and it lets people who cannot program build working tools. It also lets experienced developers prototype in minutes.
The trade-off
The same speed is the risk. If nobody reads the code, nobody knows what it does. Common problems are:
- Hidden bugs. The app works in your test and fails on the case you did not try.
- Security holes. Generated code can store secrets carelessly or trust user input it should not.
- Unmaintainable code. When the model's context runs out, so can its memory of why things were built the way they were. See context window.
- Confident mistakes. The model can state something false with total calm, a failure called hallucination.
Vibe coding versus AI-assisted coding
A professional using AI to write code, then reviewing, testing and owning the result, is doing AI-assisted engineering. Vibe coding is the end of the spectrum where review is skipped. Most real work sits between the two, and the right point depends on the stakes. A weekend toy can run on vibes. Software that handles money, health data or other people's accounts should not.
How to do it well
- Write down what "done" means as a test the AI cannot quietly change.
- Keep the project small enough to hold in the model's context window.
- Run it in an agent sandbox when an agent can execute code on your machine.
- Read the parts that touch passwords, payments and permissions, even if you skim the rest.