Vibe Coding Does Not Have One Definition, It Has One Per Developer
I published a short video that gave the real definition of vibe coding. The most liked comment said the exact opposite, and it was right. The word does not describe a practice: it describes a relation between a practice and the level of the person doing it.
The most liked comment under my last video is nine words long:
Vibe coding is fine for real developers.
Eight people agreed with it. I had just spent eighty seconds explaining the opposite.
Neither of us was wrong. That is the whole problem.
What I said in the video
The video runs for eighty seconds and has passed ten thousand views. My definition fits in three sentences, and I presented it as the correct one:
It is that vibe, that phase, where you ask the AI for something, a revolutionary project idea, a SaaS, a piece of software, and it spits out code. You copy, you paste, and you cross your fingers. That is the real definition of vibe coding.
Then I offered the way out: move to agentic engineering, give your AI a real environment, rules, tools, a way to test itself and correct itself. From “it works on my machine” to “I know why it works”.
I stand by the way out. What I take back is “the real”.
What the word meant to begin with
The term was not born in a comment thread. It comes from a tweet by Andrej Karpathy, on 2 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…
Two things are worth keeping, and they are rarely quoted together.
First, the voice is part of the original definition. Karpathy says he talks to his AI through a microphone. Vibe coding, as he wrote it, is a spoken exchange, sentences thrown out spontaneously, a flow. It is not “copy and paste”.
Second, he was describing this for throwaway weekend projects. A practice openly treated as disposable, by someone who knows exactly what he is giving up when he chooses it.
In a year and a half the word came to cover all AI assisted development, and then it became a way to dismiss people. Nobody redefined it. Everyone filled it with what they knew.

The comments, one per frame of reference
There were hostile comments too. I will not publish them: they say nothing about vibe coding, only about the person writing them. The four below taught me something.
I understood what I was looking at while I was answering them. These are not diverging opinions about one word. They are four positions, and each one is coherent from where it is written.
You can absolutely use vibe coding to prototype quickly, then switch to an agentic method when the product gets serious.
True. The whole thing is knowing when to make that call.
Here, vibe coding is a tool you pick, with an expiry date you set yourself. Nothing is happening to him.
Vibe coding is fine for real developers.
Exactly, because they understand what they are doing, even if it sometimes deserves a bit more structure, especially on new projects.
Same practice, judged good, because he is thinking of people who understand what they read.
there is vibe coding and there is vibe coding, you need to watch the video two or three times.
Yes, you got it: vibe coding depends on the frame of reference you are in. If you are a beginner and you vibe code, you are in the wrong posture, because you approve blindly whatever your AI says. If you are a developer and you vibe code, you let your AI drive and you normally know when to take the wheel back.
He had the thesis of this article before I did, in one line.
personally I do some, or at least I try to set up a local AI and improve it, and I think you would be surprised by what is already in place. Generalising puts everyone in the same basket.
Fair point, in 90 seconds I generalise by necessity. I am talking about a direction, not about people who already work properly, and you sound like one of them.
Kevin pushed back, he was right, and his is the comment that served me most. He runs a local AI. My single definition did not describe his practice, so he received it as an accusation. I answered that in ninety seconds I generalise by necessity. That was true, and it was not enough: the problem was not the format, it was that I had described one frame of reference as if there were only one.
The phrase itself, by the way, I did not write while preparing this article. I wrote it in French, référentiel, in a reply to Alex, without thinking about it.1 That is where the article started.
Two frames of reference, one practice
Here is what it looks like when you put them side by side.
For a developer, the vibe is the way of interacting. Talking to the AI, being in the flow, letting it drive. Control has not disappeared, it has changed shape: he reads the diffs, he spots the N+1 query, he knows when to take the wheel back.
For someone who learned to code with AI, the vibe is not reading what comes out. Not out of laziness, or not only. Out of missing landmarks, and out of ambition: the project is bigger than what he knows how to do. And sometimes because he was lured in by what training sellers are selling, as if development were the new dropshipping. So he lets the AI lead, and he approves.
We are describing the same practice. It does not have the same consequences, because one of them sees the problems go by and the other does not. This is not about talent or seriousness. It is about detection. You do not fix what you cannot see.

I know what I am talking about, I was on the wrong side
My first SaaS, Getzatjob, which later became Applyzi, turned into a pile of AI written features I never wanted to read. I kept telling myself “never mind”. That was real vibe coding, in the frame of reference where it hurts, and I had been a developer for years.
What caught up with me was not my experience. It was the first wave of bugs, which made me understand that the thing had to be refactored from the first line, and a product that did not look like the quality I wanted to ship. I got the same lesson as the beginner, only with the means to read it.
So when I write this, I am not writing from the good side of the frame. I went through it.
The objection I did not see coming
Alex added this, and it is the best criticism the video received:
For agentic dev = becoming a senior dev; at least 10 skills to master and constantly testing “stuff”.
In other words: my emergency exit is out of reach for the person I am addressing. I tell a beginner to move to agentic engineering, and agentic engineering asks for roughly everything he does not have yet.
I do not have a clean answer. I have a nuance: nobody moves from one to the other in a single step. What separates the two frames of reference is not ten skills, it is one habit: reading what comes out before accepting it. It costs nothing to install, and it is the one that makes the other nine learnable, because it turns every generation into a chance to understand something. The rest comes after, or it does not come.
One year later, the author comes back to it
There is a sequel to this story, and I almost got it wrong.
Three press articles I had at hand all said the same thing: Karpathy had declared vibe coding dead and replaced it with agentic engineering. That is what I was about to write. Then I went and read his post, published on 4 February 2026, one year to the day after the first one.
That is not what it says.
He starts by confirming what I claimed earlier: his 2025 tweet was “a shower of thoughts throwaway tweet”, fired off without thinking, and at the time models were weak enough that vibe coding was mostly for “fun throwaway projects, demos and explorations”. Then comes the part that matters.
Today (1 year later), programming via LLM agents is increasingly becoming a default workflow for professionals, except with more oversight and scrutiny. […] Many people have tried to come up with a better name for this to differentiate it from vibe coding, personally my current favorite “agentic engineering”: “agentic” because the new default is that you are not writing the code directly 99% of the time, you are orchestrating agents who do and acting as oversight. “engineering” to emphasize that there is an art & science and expertise to it.
This is not a burial, it is a distinction. Karpathy is not taking his word back: he is observing that what professionals do today deserves a different name from that one. Vibe coding remains what it always was, a practice openly treated as disposable. Agentic engineering is something else, and it needed a term of its own.
And here I have to admit something. My video is called “Vibe coding is over”. I did exactly what I am blaming those three articles for: turning a distinction into a burial, because a burial travels better than a nuance. The frame of reference I read Karpathy from that day was the frame of someone looking for a title.
A term that needs you to ask “yes, but who are you?” before you know whether it is a compliment or an insult is no longer a technical term.
What I take away
Just as AI is anthropocentric2, the definition of vibe coding is centred on the profile of the person practising it.
“Is vibe coding good or bad?” has no answer until you have said who. Séŋʑõ was right from his frame of reference, I was right from mine, and Kevin was right to refuse the common basket.
Even the author of the word needed a second one to name what the first did not say. Vibe coding did not grow. It stayed its own size. We are the ones who made it carry everything else.
What I do stand by, for everyone: the part of the original definition that says forget that the code even exists. Forgetting that the code exists works for a weekend project. On everything else, someone will eventually have to read it. Better that it is you, and not in six months.
Glossary
1. Frame of reference. The frame you observe and judge from. In physics a measurement means nothing until you have said which frame you took it from: the same speed is zero for the passenger on the train and eighty miles per hour for the person watching the train go past. Applied here: the level of the person coding, their habits, and above all what they are able to notice in what the AI produces. Two people can describe exactly the same practice and reach opposite conclusions without either of them being wrong. I wrote this article in French first, where the word is référentiel.
2. Anthropocentric. Designed and judged by taking the human as the measure of all things. The word comes from anthropocentrism, the philosophical position that puts humans at the centre. A language model is anthropocentric all the way through: it is trained on human output, evaluated on human tasks, and built to converse the way a human would. It is also why we so readily credit it with intentions, laziness or bad faith that it does not have.
Sources
- Andrej Karpathy, the tweet that coined the term, X, 2 February 2025.
- Andrej Karpathy, his one year retrospective, X, 4 February 2026. This is the post where “agentic engineering” appears.
- The three write ups that misled me at first, by presenting that distinction as an abandonment: The New Stack, IBM and Forbes.
- My video: vibe coding is over, Instagram. It is in French.
- The quoted comments come from the Instagram and YouTube threads under that video. They were written in French and are translated here; the originals appear in the French version of this article. No screenshots, so that the accounts of the people who wrote them are not put on display.
- Both illustrations are generated with AI, as stated under each of them.