Vibe coding
Vibe coding, or vibing, is a [low-code programming] [methodology] that uses [artificial intelligence (AI)] tools to generate code based on natural language [requirements specifications].
The term was introduced by Andrej Karpathy – a co-founder of OpenAI and former AI leader at Tesla – in a post on social media platform X in February 2025:
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. I ask for the dumbest things like "decrease the padding on the sidebar by half" because I’m too lazy to find it. I "Accept All" always, I don’t read the diffs anymore. When I get error messages I just copy paste them in with no comment, usually that fixes it. The code grows beyond my usual comprehension, I’d have to really read through it for a while. Sometimes the LLMs can’t fix a bug so I just work around it or ask for random changes until it goes away. It’s not too bad for throwaway weekend projects, but still quite amusing. I’m building a project or webapp, but it’s not really coding - I just see stuff, say stuff, run stuff, and copy paste stuff, and it mostly works.
https://x.com/karpathy/status/1886192184808149383
The term quickly gained traction in the tech community, with many developers and AI enthusiasts sharing their own experiences and interpretations of vibe coding. A March 2025 article on Ars Technica described vibe coding as being "all about surrendering to the flow", as opposed to "being about control and precision".
The concept has been compared to [pair programming], where a human programmer collaborates with an AI assistant to create software. Certainly, vibe coding shifts the role of the computer programmer from writing code to defining and iteratively refining requirements, and then testing the output of the AI-generated code – the "driver" role in the pair programming methodology.
Tools that may be used for vibe coding include Cursor, Replit, GitHub Copilot, Anthropic Claude, Google Gemini, and Sonnet. These tools use large language models (LLMs) to generate code based on natural language prompts. For example, a user might ask the AI to "create a web app that allows users to track their fitness goals" and the AI would generate the necessary code to create that application.
Vibe coding is a form of [low-code/no-code programming] that makes software development more accessible to non-programmers, allowing them to create applications without deep knowledge of any particular programming language, application framework, or runtime environment.
Vibe coding is particularly well-suited to [rapid prototyping] and development of [proof-of-concept] software. Vibe coding lacks the precision and [correctness] of traditional programming methods, raising questions about the quality of the generated code. Therefore, vibe coding is unsuitable for the programming of business-critical production software.
See also [prompt engineering].