Everybody talks about vibe coding, where you develop software by talking to an LLM tuned for coding. And keep asking it to create what you need until you get something that (apparently) works. And the “apparently” is key here. Even Andrej Karpathy, who coined the term, said it was great for throwaway weekend projects where people, even if they had no coding expertise, could quickly explore and build artefacts that mostly work.
Despite all the hype, vibe coding should never be used for more than this, as getting the result of a vibe coding session ready for production would require:
- coding expertise and
- as much time to test and fix the code as if you started the project from scratch with a “traditional” process.
But what if we could keep the magic of AI-assisted development without the unpredictability of LLM-generated code? That’s where vibe modeling comes in.
What is vibe modeling?
Vibe modeling is the process of building software through conversational interaction with an LLM trained for modeling, not coding. And then following a model-based / low-code approach to generate deterministic code from those “vibed models”. Think of vibe modeling as a model-driven vibe coding approach.
Indeed, in vibe modeling, the LLM does not aim to generate code but models. And the model-to-code step is performed with “classical” code-generation templates (or any other type of precise and semantically equivalent executable modeling techniques).
This has two major advantages over vibe coding:
- Understandable output. A user is able to validate the quality of the LLM modeling output even if he has no coding expertise. Models are more abstract and closer to the domain and, therefore, a user should be able to understand them with limited effort. True, some basic modeling knowledge may still be required but for sure it’s much easier to validate a model (e.g. a graphical class diagram) than a bunch of lines of code
- Reliable code-generation. The generation process is deterministic. If the model is good, we know the code is good and there is no need to check it.
And vibe modeling is just one of the possible low-modeling strategies and could be combined with them. For instance, you could upload to the LLM (as context for the prompt) any document already describing the domain you want to model (interviews, manuals, tutorials, ….) and then have a chat with the LLM to improve / adapt this first partial model.
You can read my ideas in more detail in this paper: Vibe Modeling: Challenges and Opportunities (to be also presented in the 3rd International Workshop Modeling in the Age of Large Language Models (LLM4Modeling) at ER’2025). Read on for the key ideas.
Vibe modeling architecture
The following figure illustrates the process in more detail. The user (the domain expert) starts by describing the system to the agent (internally relying on a LLM). Based on this conversation (and any other material provided by the user such as interviews, guidelines,…) the agent will propose a model. The model itself is uncertain, so the agent and the user can start a conversation to clarify and refine it. If a modeling expert is available and the complexity or criticality of the domain is high, the modeler can either discuss with the user to clarify ambiguities or incompleteness aspects of the description (that could then be used by the agent to improve the model) or directly refine the model. In both cases, the modeler’s role is to reduce the uncertainty on the quality of the model.
The iteration continues until the model is considered good enough. At that point, the deterministic part of the process triggers in and the code-generation templates produce the final software system, including the code itself, the database (if needed), the deployment scripts (if needed), etc.
Is there any vibe modeling tool?
YES!!!!
The latest release of BESSER integrates a vibe modeling chatbot. See below.

For now it’s a rather simple approach fully relying on a LLM. We do have studied more advanced strategies such as a tree-of-thoughts approach for domain modeling so we’ll keep improving our chatbot based on that soon.
FNR Pearl Chair. Head of the Software Engineering RDI Unit at LIST. Affiliate Professor at University of Luxembourg. More about me.

To me, the types of models that are the most amenable and valuable in a context of executable modeling are statechart models, for which numerous code generators exist. While they take out the accidental complexity w.r.t. implementing the same logic at a lower level (i.e. in a traditional programming language), it still requires quite some expertise, knowledge and skills to write, understand and test statechart models. Therefore, even for this scenario i
I do not think that vibe modeling will work for people without coding expertise, since statecharts as well require such expertise. I tend to see statecharts as a kind of visual high-level programming language that is agreeably simpler than textjal programming languages, but still require quite some modeling/programming skills to use them correctly, except for the most trivial cases where the complicated machinery of modeling + code generation would be overkill.
One pattern that works really well for my team: use LinkML tooling to create a GitHub repo, complete with tools installed for schema validation, visualization, etc. use Claude code or goose or your favorite ai enhanced IDE (linkml source is yaml, easy for humans and LLMs to read and write). Vibe model away (or more human in the loop if you prefer). For bonus points hook up to GitHub actions