====== Vibe Coding ====== **Vibe coding** is an AI-dependent programming approach in which a developer describes desired functionality in natural language and accepts AI-generated code largely without reading or deeply reviewing it. The term was coined by [[https://x.com/karpathy/status/1886192184808149383|Andrej Karpathy]] on February 2, 2025, and was named [[https://www.bbc.com/news/articles/cpd2y053nleo|Collins Dictionary Word of the Year 2025]]. ===== Origin ===== On February 2, 2025, AI researcher and former Tesla and OpenAI engineer Andrej Karpathy posted a tweet describing a new way he had been programming: fully leaning into large language models (LLMs), prompting them in natural language, accepting all suggested changes, and iterating by running the code and feeding errors back to the model.((Original tweet by Andrej Karpathy, Feb 2, 2025: [[https://x.com/karpathy/status/1886192184808149383|x.com/karpathy/status/1886192184808149383]])) The tweet accumulated over 4.5 million views and quickly resonated with a broad developer audience, triggering widespread discussion about the future of software development. Karpathy described the experience as //almost spooky// — he would forget what the code actually did and would simply ask the AI to fix problems as they arose. By February 2026, Karpathy revisited the concept, drawing a distinction between casual vibe coding and what he termed **agentic engineering** — a more deliberate, structured use of AI agents in development workflows requiring greater developer oversight and systems thinking. ===== Definition ===== Vibe coding is characterized by: * Describing desired behavior in plain English (or other natural language) * Accepting AI-generated code without closely reading or auditing it * Running the code and feeding errors or unexpected behavior back to the model * Iterating rapidly without building deep understanding of the generated implementation The //"vibe"// in the name refers to the intuitive, feel-based nature of the process — the developer works on vibes and intent rather than code comprehension. ==== Distinction from AI-Assisted Coding ==== Not all use of AI coding tools constitutes vibe coding. Developer and writer Simon Willison drew a widely-cited distinction:((Simon Willison, "Vibe Coding is Not All Coding with Vibes", March 19, 2025: [[https://simonwillison.net/2025/Mar/19/vibe-coding/|simonwillison.net/2025/Mar/19/vibe-coding/]])) ^ Approach ^ Description ^ Code Review ^ ^ Vibe Coding | Accept all AI output, iterate by feel | Minimal to none | ^ AI-Assisted Coding | Use AI as a tool, review and understand output | Thorough | ^ Agentic Engineering | AI agents handle sub-tasks under developer supervision | Structured | In Willison's framing, using AI tools like Copilot or Claude Code while still reading, understanding, and owning the generated code is **not** vibe coding — it is simply modern AI-assisted development. Vibe coding specifically implies the abdication of comprehension. ===== How It Works ===== A typical vibe coding session follows this loop: - **Describe**: Write a natural language prompt describing what you want (e.g., //"Add a login form that validates email and stores sessions in Redis"//) - **Generate**: The AI tool produces code — functions, files, configurations - **Accept**: Accept all changes without detailed review - **Run**: Execute the code and observe behavior or errors - **Iterate**: Paste errors or describe failures back into the AI chat and repeat This cycle can produce working prototypes very rapidly, sometimes in minutes for tasks that might take hours or days via traditional development. # Example vibe coding prompt sequence Prompt 1: "Create a Flask app with a SQLite database that stores blog posts" Prompt 2: "Add authentication with JWT tokens" Prompt 3: "It's throwing a 500 error on /login — here's the traceback: [paste]" Prompt 4: "Now add rate limiting to the login endpoint" ===== Key Tools ===== Vibe coding is enabled by a new generation of AI-powered development environments and assistants: ^ Tool ^ Type ^ Notable Feature ^ ^ [[cursor|Cursor]] | AI-first IDE (VS Code fork) | Composer mode for multi-file edits | ^ [[github_copilot|GitHub Copilot]] | IDE extension | Deep GitHub and VS Code integration | ^ [[claude_code|Claude Code]] | CLI agentic coding tool | Terminal-based, full repo context | ^ Windsurf | AI-first IDE | Cascade agentic flow | ^ Bolt.new | Browser-based | Full-stack app generation from prompt | ^ Lovable | Browser-based | Product-focused UI generation | ^ Replit | Cloud IDE | Built-in hosting and AI agent | ^ v0 | Browser-based | UI component generation (by Vercel) | ===== Criticisms and Risks ===== ==== Security Vulnerabilities ==== Security researchers have documented significant risks associated with vibe coding practices: * Studies found **40–62% of AI-generated code** contains security vulnerabilities when not properly reviewed((Checkmarx security research on AI-generated code risks: [[https://checkmarx.com/blog/security-in-vibe-coding/|checkmarx.com/blog/security-in-vibe-coding/]])) * AI models frequently generate code with SQL injection flaws, improper authentication, and insecure direct object references * In February 2026, a DeFi protocol suffered a **$1.78 million exploit** traced directly to unreviewed, AI-generated smart contract code — one of the first high-profile financial losses attributed to vibe coding in production ==== Technical Debt ==== Engineering teams adopting vibe coding without guardrails have reported: * Technical debt accumulating **3x faster** than with traditional development * Codebases that no developer fully understands * Difficulty onboarding new engineers to AI-generated code * Increased brittleness as AI adds layers on top of misunderstood foundations Red Hat's developer blog summarized the risk bluntly in a February 2026 article: vibe coding produces systems that //"work until they don't, and when they break, nobody knows why."//((Red Hat Developer Blog, "The Uncomfortable Truth About Vibe Coding", February 17, 2026: [[https://developers.redhat.com/articles/2026/02/17/uncomfortable-truth-about-vibe-coding|developers.redhat.com/articles/2026/02/17/uncomfortable-truth-about-vibe-coding]])) ==== Skill Erosion ==== Critics have raised concerns that widespread vibe coding — particularly among new developers — could: * Prevent the development of foundational programming skills * Create dependency on AI tools without understanding of underlying systems * Produce a generation of developers unable to debug or reason about their own codebases Stack Overflow's engineering blog described vibe coders as //"a new kind of worst-coder"// — not because of malice, but because of the mismatch between confidence and comprehension.((Stack Overflow Blog, "A New Worst Coder Has Entered the Chat: Vibe Coding Without Code Knowledge", January 2, 2026: [[https://stackoverflow.blog/2026/01/02/a-new-worst-coder-has-entered-the-chat-vibe-coding-without-code-knowledge/|stackoverflow.blog/2026/01/02/...]])) ===== Impact and Adoption ===== Despite criticisms, vibe coding has driven measurable shifts in the software industry: * **44% of developers** reported using AI coding tools daily as of early 2026 * The AI developer tools market reached an estimated **$4.7 billion** in 2025 * Collins Dictionary named //vibe coding// its **Word of the Year for 2025**, citing its cultural resonance and linguistic novelty((BBC News, Collins Dictionary Word of the Year 2025: [[https://www.bbc.com/news/articles/cpd2y053nleo|bbc.com/news/articles/cpd2y053nleo]])) * Hundreds of production startups were launched using predominantly vibe-coded stacks in 2025 Vibe coding has proven especially popular for: * Solo founders and non-technical entrepreneurs building MVPs * Designers prototyping interactive UI without deep JavaScript knowledge * Data scientists building web frontends for ML models * Hackathon participants moving rapidly from idea to demo ===== Evolution: Agentic Engineering ===== By early 2026, the conversation had begun shifting from vibe coding toward a more mature paradigm. Karpathy himself introduced the term **agentic engineering** to describe a disciplined approach where AI agents handle bounded sub-tasks — writing functions, running tests, searching documentation — while the developer maintains architectural ownership and reviews critical outputs. This framing positioned vibe coding as an early-adopter phase: useful for exploration and prototyping, but insufficient for production systems at scale. Agentic engineering, by contrast, treats AI as a powerful but supervised collaborator rather than an autonomous author. ===== See Also ===== * [[agentic_coding|Agentic Coding]] * [[claude_code|Claude Code]] * [[cursor|Cursor]] * [[github_copilot|GitHub Copilot]] * [[cline|Cline]]