What is vibe coding?

"Vibe coding" is an approach to application development that involves heavily relying on a large language model (LLM) for generating code.

Learning Objectives

After reading this article you will be able to:

  • Describe what vibe coding means
  • Understand how LLMs can support application development
  • List the pros and cons of vibe coding

Copy article link

What is vibe coding?

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.

How does vibe coding work?

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).

What are some popular vibe coding tools?

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.

What are the pros and cons of vibe coding?

The benefits of vibe coding include:

  • Near-instant prototyping: Developer teams can use vibe coding to quickly spin up beta versions of new product or feature ideas and try them out.
  • Less unnecessary manual effort: Boilerplate and low-level code can be produced automatically by LLMs in vibe coding (copying boilerplate code has always been common in development).
  • Faster development and launches: Writing a new application or feature can be time consuming, but vibe coding can produce the necessary code in seconds or minutes — although further prompting may be needed to get the given application or feature working properly.

Some of the downsides can include:

  • Loss of understanding of codebases: Development teams that ship vibe-coded features with minimal review can become unfamiliar with their codebases. This can make it harder to fix bugs or vulnerabilities.
  • Compliance challenges: Sometimes the result of vibe coding is shipping untrusted code. Developers may lose track of how apps process personal data, for instance, which can cause compliance issues.

Are there any security concerns associated with vibe coding?

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.