Software factory

Vibe coding

contested definition
Machine-readable Download Markdown

Definition

A loose AI-assisted programming style that accepts generated behavior with little inspection or understanding of the underlying code. The operator describes a change, runs what the model produces, feeds errors back, and keeps adjusting until the software appears to work. Code comprehension and deliberate design are secondary to maintaining momentum.

Who coined it

Andrej Karpathy coined vibe coding in a February 2, 2025 post. His concrete details define the original sense: accept all changes, stop reading diffs, paste error messages back without much analysis, and work around stubborn bugs with more prompts. He framed it as amusing and "not too bad" for throwaway weekend projects, not as a production-engineering doctrine.

Why it is contested

The original post described a specific low-inspection posture, but the phrase quickly broadened into a label for almost any programming with AI. Those meanings classify different practices. Under the broad usage, a developer who reviews and understands every generated change may still be called a vibe coder. This glossary keeps Karpathy's narrower sense because the loss of code inspection and a dependable mental model is what distinguishes the term from AI-assisted coding in general.

Where it fits

Vibe coding can be reasonable for a disposable prototype when the blast radius is low and the artifact can be abandoned. Risk rises when the software handles money, private data, safety, shared infrastructure, or long-lived maintenance. Generated code can work while leaving its owner unable to explain, secure, or recover it.

Distinguish it from nearby terms

AI-assisted coding includes any use of AI in development. Agentic coding uses a multi-step agent loop. Vibe coding describes the operator's low-inspection posture. Agentic software engineering can delegate more implementation than vibe coding while retaining specifications, evaluation, authority boundaries, and ownership.

Check your understanding

Two developers both use the same coding agent. One accepts every patch until the demo runs. The other defines behavior, reads risk-critical changes, runs independent checks, and can explain the system. Which one is vibe coding? Classify the practice by inspection, understanding, evidence, and accountability, not by the tool logo.