Select Page

What is Vibe coding?

By Chris Linus

July 18, 2026

An image asking what is vibe coding?

A Precise Definition for 2026

In mid-2025, a GitHub README for a personal audio project uploaded by Linus Torvalds “the engineer who created the Linux kernel and Git, and who has probably reviewed more lines of code than any other person alive” contained a note that stopped developers mid-scroll. The Python visualizer component of the project, Torvalds wrote, “has been basically written by vibe-coding.”

The cultural Rubicon, as one analysis put it, had been crossed. If the most famous code reviewer in history was using vibe coding for his own tools, the word had escaped its original meaning and gone somewhere nobody quite expected.

Which raises the question most people don’t stop to answer precisely: what does vibe coding actually mean?

What Is Vibe Coding? The Precise Definition

Vibe coding is a software development practice in which a person describes what they want to build in natural language, lets an AI model generate the code, and accepts that output without reading, reviewing, or necessarily understanding what was written. You describe. The AI writes. You run it, test whether it works, paste any error messages back into the AI, rinse and repeat.

The defining element is not the AI but the absence of review. Simon Willison, the developer behind the Django web framework, drew the sharpest line in March 2025: “If an LLM wrote every line of your code, but you’ve reviewed, tested, and understood it all, that’s not vibe coding in my book — that’s using an LLM as a typing assistant.” By that standard, reading the diffs is what ends the vibe. A developer who uses AI to generate every line but reads, understands, and validates it all is practising careful AI-assisted development — a meaningfully different discipline, however similar the toolchain looks from the outside.

Collins Dictionary formalised a broader version in November 2025 — “the use of artificial intelligence prompted by natural language to assist with the writing of computer code” — when it named vibe coding its Word of the Year. That definition captures the general category. Willison’s captures the specific practice.

Where the Term Came From

On February 2, 2025, Andrej Karpathy posted on X: “There’s a new kind of coding I call ‘vibe coding‘, where you fully give in to the vibes, embrace exponentials, and forget that the code even exists. It’s possible because the LLMs (e.g. Cursor Composer w Sonnet) are getting too good. Also I just talk to Composer with SuperWhisper so I barely even touch the keyboard.”

Karpathy — co-founder of OpenAI, former head of AI at Tesla — later described it as “a shower of thoughts throwaway tweet.” The tweet collected 4.5 million views. Within nine months, Collins Dictionary had named it Word of the Year 2025. By early 2026, MIT Technology Review had listed it among its 10 Breakthrough Technologies of 2026. The AI-assisted development market it helped name had crossed $4.7 billion in annual value, with platforms built directly on the concept — Lovable, Bolt.new, Cursor, v0 by Vercel — collecting hundreds of millions in ARR.

It is a notable arc for something Karpathy was describing, in his own words, for throwaway weekend projects.

What made the tweet land so hard was not the novelty of the practice — developers had been using AI to generate code for years — but the name. As the CodeRabbit semantic analysis of the term’s history notes, Karpathy captured a visceral shift in the developer experience that everyone was feeling but nobody had named: the growing temptation to treat code as a steerable draft rather than something requiring line-by-line authorship. “Vibe coding” gave that temptation a face — and once it had a face, the arguments about whether it was good or bad could actually begin.

The Three Things “Vibe Coding” Now Means

Seventeen months after Karpathy’s tweet, the term’s definition has fractured into three distinct usages that coexist uneasily in the same conversations:

Karpathy’s original definition: AI-driven coding with no systematic review, used for prototypes, personal tools, and throwaway weekend projects. The developer surrenders authorship of the code in exchange for speed. Appropriate for low-stakes contexts where the only person affected by a bug is the person who built it.

The drift definition: Any AI-assisted development at all, even when the developer reads every line, writes tests, and understands the architecture. This is the version Andrew Ng publicly objected to in June 2025, arguing that the term misleads people into thinking serious engineers “just go with the vibes” when in reality they’re applying rigorous engineering judgment to AI-generated output which in turn makes it Agentic engineering. Addy Osmani called this the “suitcase term” problem where a single word stretched to cover practices so different they barely share a category.

The pejorative definition: AI-generated code shipped to production without adequate verification that is associated with security vulnerabilities, technical debt, and the kind of incidents that led Moltbook to expose 1.5 million API tokens within 72 hours of launch in January 2026. When used in this sense, “they vibe coded it” is a diagnosis, not a description.

For the purposes of this post, and of any serious discussion: vibe coding means Karpathy’s original definition, with Willison’s line as the test. If you are reading the diffs, you are not vibe coding. You are using AI as a tool.

The Expert Paradox

There is a detail in the origin story of vibe coding that most articles skip over, and it is arguably the most important one for understanding why the practice is controversial.

Karpathy could vibe code safely. His decades of experience in machine learning, systems programming, and AI research acted as an invisible safety net. Even without reading every line of AI-generated code, he retained the ability to notice when the output was wrong, through the behaviour of the running programme, through tests, through a pattern-recognition built over years of deep technical work. The vibe coding was possible because the expertise was already there, operating silently underneath it.

As the Vibe Coder Blog analysis of Karpathy’s approach notes: “Expert behaviour does not transfer cleanly. Karpathy could vibe code safely because his decades of experience acted as an invisible safety net… The practice that works for an AI pioneer may be dangerous for a beginner.”

This is the expert paradox at the centre of the vibe coding debate. The practice is described by someone at the extreme top of the engineering profession as a tool for throwaway projects. Adopted by developers without the same foundation, the invisible safety net simply is not there and the vibe coding that produces a harmless bug in Karpathy’s weekend project produces a production vulnerability in theirs.

Willison, who thought carefully about this distinction, put it plainly: AI tools amplify existing expertise. What they do not do is substitute for its absence, this is for those asking if AI will replace software engineers? He tried to name the disciplined version of the practice in his October 2025 “vibe engineering” post, which was partly a response to watching the vibe coding label applied to workflows that required significant engineering judgment to execute safely. A judgment that had become so embedded in the workflow it had turned invisible to observers.

Linus Torvalds using vibe coding for a Python visualiser component sits squarely in the expert category: a controlled, low-stakes use of a fast tool for a bounded task, by someone with fifty years of engineering experience as the backstop, or top engineering teams using AI agents to reduce bottlenecks. That is a very different thing from a junior developer vibe coding the authentication layer of a production application — even if the tool, the workflow, and the word used to describe it are identical.

The Bottom Line

Vibe coding began as a description of how one of the world’s most experienced AI researchers built his weekend projects. It became Collins Dictionary’s Word of the Year, a multi-billion dollar market category, and in its most honest usage, a useful shorthand for a specific and genuinely risky habit of shipping AI-generated code without reading what the AI wrote.

The word has drifted far enough from its origin that it now requires a qualifier almost every time it is used. But the underlying practice Karpathy described — describe, generate, accept, run, paste errors, repeat — remains the clearest, most honest definition of what vibe coding is. And Willison’s line remains the clearest test of whether what you are doing actually qualifies: are you reading the diffs?

If the question of where vibe coding ends and disciplined AI-assisted development begins matters to your team, our comparison of agentic engineering vs. vibe coding covers that boundary in detail.

You May Also Like…

What Is OpenCode AI?

What Is OpenCode AI?

The Open-Source Coding Agent Taking On Claude Code and Cursor In early 2026, Anthropic enforced its terms of service...