In plain terms
You say what you want, the model writes the program, you run it. If something is off you describe the problem or paste the error and let the model try again. You never open the code. It feels less like programming and more like directing.
Why it matters
It lets people who cannot program build working tools in an afternoon, and lets programmers prototype at a speed that was not possible before. It also produces software nobody understands. For a throwaway prototype that is fine; for anything that holds customer data or money it is a liability.
Example
A sales manager describes a tool that reads a spreadsheet of leads and drafts follow-up emails. Twenty minutes and four rounds of “that's not quite right” later it runs on her laptop. She has not seen a line of the code.
Most often confused with
Vibe Coding vs. AI-assisted engineering
Both use a model to write code. In vibe coding the human judges only the outcome. In AI-assisted engineering the human still reads the changes, runs the tests and takes responsibility for what ships. The same tool can be used either way; the difference is who understands the result.
Origin: Coined by Andrej Karpathy in February 2025.
Under the hood
Enabled by coding agents that edit files, run commands and read error output in a loop. Typical failure modes: security holes (exposed keys, missing access checks, injectable queries), code that works on the demo input only, and structure that degrades until neither the model nor a person can change it safely. Practices that move a vibe-coded prototype toward production: version control from the first prompt, automated tests the agent must keep passing, a written spec, review of anything touching authentication, payments or personal data, and isolating the app from real credentials until then.