"Vibe coding" is an approach to application development that involves heavily relying on a large language model (LLM) for generating code.
After reading this article you will be able to:
Copy article link
Vibe coding is a method of software development that heavily incorporates the use of large language models (LLMs) for generating code. The term "vibe coding," meaning AI-assisted coding, was coined by Andrej Karpathy, co-founder of OpenAI, in a February 2025 post 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... 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.
Although Karpathy defined this term, many developers had already begun experimenting with a similar AI-assisted approach with the public release of LLMs like ChatGPT and Copilot.
The goal of vibe coding is to more quickly spin up working applications and new features. Traditionally, coding is a very precise activity; vibe coding instead enables developers to provide general, high-level directions to an LLM, which then produces the precise instructions contained within working code.
Similar to other use cases for LLMs, vibe coding involves providing prompts to a model, which produces content (in this case, code) in response. LLMs are generative AI models: Having been trained on vast quantities of examples, they can recognize, interpret, and generate language. LLMs are able to do this with both everyday human language and programming languages. This ability enables an LLM to generate working code, often within seconds.
The vibe-coding developer has to provide the LLM with the right prompts for the LLM to create the right kind of feature or application. In general, these prompts do not have to be particularly precise, although it may take several attempts for the LLM to produce code that works in the way the developer has in mind.
Testing and debugging comes after the LLM has produced code. This involves identifying bugs and security issues. The LLM can then be prompted to solve those bugs, or, as Karpathy described, "work around it or ask for random changes until it goes away" (an approach that may or may not work, depending on the bug).
A number of widely used LLMs are available to allow developers to experiment with vibe coding. Copilot, Cursor, Codeium, Qodo, CodeWhisperer, and Replit are all popular tools for LLM-assisted software development.
The benefits of vibe coding include:
Some of the downsides can include:
Vulnerabilities: Any application can contain vulnerabilities or security risks. Because vibe coding can make writing and shipping new features much faster, the danger is that more security issues slip through and reach the production stage. Then, these security issues can also be harder to fix if development teams are unfamiliar with the problem code.
Data loss: Any LLM use in a business context introduces the risk that the input may contain intellectual property that will be shared in external contexts. To protect internal data, developers need to be aware of how an LLM segments its data on the backend.
Learn more about how an LLM works.