What is vibe coding, should you be doing it, and does it matter?
The rise of large language models like ChatGPT that can churn out computer code has led to a new term – vibe coding – for people who create software by asking AI to do it for them
By Chris Stokel-Walker
27 March 2025
Getting an AI to write software for you? That’s vibe coding
ronstik/Alamy
Want to write software, but haven’t got the first clue where to start? Enter “vibe coding”, a term that has swept the internet to describe the use of AI tools, including large language models (LLMs) like ChatGPT, to generate computer code even if you can’t program.
What is vibe coding and where did it come from?
“Vibe coding basically refers to using generative AI not just to assist with coding, but to generate the entire code for an app,” says Noah Giansiracusa at Bentley University in Waltham, Massachusetts. Users ask, or prompt, LLM-based models such as ChatGPT, Claude or Copilot to produce the code for an app or service, and the AI system does all the work.
Read more
The AI expert who says artificial general intelligence is nonsense
Advertisement
The term was coined by Andrej Karpathy, a skilled software engineer who was head of AI at Tesla and a founding engineer at OpenAI – the maker of ChatGPT. In February, he posted on X about a “new kind of coding I call ‘vibe coding’”.
Karpathy described it as “where you fully give in to the vibes, embrace exponentials, and forget that the code even exists”. The term was born and the idea took hold. “That captured a moment that resonated with so many people, because there’s a whole bunch of people who are non-programmers who are starting to play with LLMs, writing code and getting amazing results out of them,” says Simon Willison, a software developer.
What is the point of vibe coding?
Software engineering can be a tricky thing to learn – and as a result, many people don’t bother. Vibe coding can help people with ideas for tools, apps and services to make them a reality without the challenge of learning the specifics of a programming language.