What Is Vibe Coding? Meaning and Plain Definition
Vibe coding means building software by telling an AI what you want and judging the result by using it, not by reading the code. If the game plays the way you hoped, you carry on, and if it does not, you say so in plain words.
Where does the term come from?
Computer scientist Andrej Karpathy coined it in a post on X in February 2025. He described a way of working where you "fully give in to the vibes, embrace exponentials, and forget that the code even exists", and he called it "not too bad for throwaway weekend projects". Collins Dictionary then made it its Word of the Year for 2025.
So the term began as half a joke about a fun way to make small things. Today people use it for almost any work with an AI that writes code, which is why they argue about what it means.
What counts as vibe coding?
The sharpest line comes from the programmer Simon Willison. For him, vibe coding is "building software with an LLM without reviewing the code it writes". An LLM is the kind of AI behind tools such as Claude and ChatGPT. If a programmer reads and understands every line the AI typed, he calls that AI-assisted programming, not vibe coding.
That gives you a one-question test: could you explain how this works without asking the AI?
| Situation | Vibe coding? |
|---|---|
| You ask for a game, play it, ask for changes and never open the code | Yes |
| The same, and then a programmer friend reads all of it | Not any more |
| You paste in AI code and understand each line | No |
| You write the code and the AI only suggests names | No |
What does it look like in practice?
Here is twenty minutes on an invented game. A moth crosses a garden at night, and every lamp pulls it off course.
- You write that in one sentence. The AI gives you a page you can open, and the moth flies.
- You play. The lamps pull so hard that nobody could get through.
- You say: "The pull is too strong. Halve it, and let me break free by tapping fast."
- Better, but when you lose, nothing happens. You say: "When the moth touches a lamp, start the garden again."
You never saw a line of code, and every decision you made was about how the game feels. You play and judge, and the AI types.
What is the catch?
The AI made a lot of small decisions you never asked for, and you do not know what they are. Nothing tells you about them until one of them causes trouble.
Willison's advice is to keep it low stakes: think about how much harm a mistake could do, and watch out for secret keys and private data. A moth game that crashes hurts nobody. An app that holds other people's accounts or payments is a different matter, and vibe coding alone is not enough for that.
Paste this to your AI
I want to try vibe coding. Make me a tiny browser game in a single file: a moth crosses a garden at night, and each lamp pulls it off course.
Before you build, show me a small Mermaid diagram of what the moth can be doing (flying, pulled in, caught, safe across) and what moves it from one to the next. Walk through it and tell me if any box has no way out. Then build from that diagram.
When it runs, list every decision you made that I did not ask for, such as speeds, sizes and what happens when the moth loses. For each one, tell me where I will see it on screen.
If you are not sure something works, write "I don't know yet" next to it and tell me what to try, instead of telling me it is fine.
Or skip this and connect the MCP: your AI then finds all of this by itself.Connect the MCP
How to check it worked
- Play for two minutes. Does it do what your one sentence said?
- Pick one item from the AI's list. Find it on screen. If you cannot, ask where it is.
- Change one thing in plain words. Say "the lamps should pull less", then feel the difference.
- Take the one-question test. If you could not explain how the pull works, you were vibe coding, and for a moth game that is fine.
Ready for more? Try how to vibe code a game, or see what a single small detail like coyote time does for how a game feels.