Mistral Vibe: Europe's coding agent for your terminal, and where your code goes
Mistral Vibe is an open-source AI coding agent from France's Mistral AI. European and open source does not mean your code stays local, though; you have to set that up yourself.

Mistral Vibe is an AI agent that reads your code, edits files and runs commands from your terminal. It belongs in the same category as Claude Code and OpenAI's Codex CLI, but it comes from the French company Mistral AI and it is open source. I installed it on Linux Mint in early 2026 and liked it quickly.
One thing needs saying up front, because I got it wrong myself the first time I wrote about it: Vibe being European and open source does not mean your code stays on your machine. How to make that happen is covered further down.
As of 25 September 2026. Vibe ships updates often (PyPI currently lists version 2.25.8, released 23 September), so prices and features may have changed since.
What is Mistral Vibe?
Mistral Vibe is a command-line coding assistant from Mistral AI. It launched on 9 December 2025, alongside the Devstral 2 coding model. You describe what you want in plain language, and the agent finds, reads and edits files and runs shell commands on its own. The source code is on GitHub under the Apache 2.0 licence.
In practice the agent works with a fixed toolkit: reading, writing and patching files, running shell commands, searching with grep (using ripgrep when it's installed), keeping a to-do list, asking you a question, and handing subtasks to subagents. At startup the model is also told which directory you are in, which Git branch you are on and what the recent commits were.
You point at a file with @, and ! runs a shell command yourself, bypassing the agent. Project instructions go in an AGENTS.md, and external tools connect over MCP.
Version 2.0 arrived on 27 January 2026. It added custom subagents, multiple-choice clarifying questions before the agent acts, skills you invoke as slash commands, and configurable agent modes.
Installing Mistral Vibe on Linux Mint
On Linux Mint the install went without problems for me. The official script for Linux and macOS:
curl -LsSf https://mistral.ai/vibe/install.sh | bash
If you'd rather not pipe a script from the internet straight into bash, install the Python package yourself. Vibe needs Python 3.12 or newer:
uv tool install mistral-vibe
pip install mistral-vibe works too. Vibe also runs on Windows, but Mistral officially targets Linux and macOS. On Windows, install uv first and then the package.
The first time you run vibe, it asks for an API key and stores it in ~/.vibe/.env. You can also run the whole setup in one go with vibe --setup. Settings live in ~/.vibe/config.toml, or per project in .vibe/config.toml.
What does Mistral Vibe cost?
Vibe itself is free. You pay for the model behind it. At launch, Devstral 2 was temporarily free through the API. Since Vibe 2.0 it costs $0.40 per million input tokens and $2 per million output tokens. The smaller Devstral Small 2 was priced at $0.10 and $0.30 at launch.
Vibe is also included in the Le Chat Pro plan ($14.99 a month, according to VentureBeat) and Le Chat Team ($24.99 per seat per month). For trying it out, there's the free Experiment plan on the API.
Where does your code go?
This is where my first version of this article went wrong. It said: "You don't share your code with Big Tech; everything happens locally." By default that isn't true. Vibe talks to Mistral's API, so everything the agent reads to answer your request goes to Mistral's servers. Mistral is a European company. If you have legal or strategic reasons to avoid an American vendor, that is a real argument. But your code still leaves your machine.
Two more things you probably don't expect:
- Telemetry is on. According to the README, Vibe may collect usage data. You turn it off with
enable_telemetry = falseinconfig.toml. - Training has two separate switches. Mistral may use inputs and outputs to train models unless you turn that off in the Privacy menu of the admin console. According to Mistral's help centre, the opt-outs for Vibe and for the API are separate: switching off one leaves the other on.
Running Mistral Vibe fully locally
If you want nothing to leave your machine, point Vibe at a model on your own hardware. Vibe works with any server that exposes an OpenAI-compatible API. Mistral lists vLLM (recommended), llama.cpp, LM Studio and Ollama. The recommended model is Devstral Small 2, a 24-billion-parameter model under Apache 2.0. The large Devstral 2 (123 billion parameters) needs at least four H100-class GPUs according to Mistral. For most developers that's not an option.
Mistral's docs say Devstral Small 2 at 4-bit with 32k context needs a card with 24 GB of VRAM, such as an RTX 4090. CPU offload works, but "significantly slower". The setup in ~/.vibe/config.toml looks like this:
enable_telemetry = false [[providers]] name = "local" api_base = "http://localhost:8080/v1" api_style = "openai" backend = "generic"
Then pick the local model with /config. If you run vLLM, start it with --tool-call-parser mistral and --enable-auto-tool-choice, or the model can't call tools. And the agent still has a shell, so check which tools or MCP servers reach out to the internet on their own.
What can the agent do without asking?
Here, too, the default is not what you might assume. Vibe has four built-in modes:
accept-editsis the default. File edits happen without confirmation. For other actions, such as shell commands, Vibe asks first.planis read-only: searching and reading are allowed, changes are not.askasks for approval on every tool action.auto-approveapproves everything. Mistral's own note: "Use with caution."
You pick a mode with vibe --agent plan or set default_agent in your config. Because the default mode edits files without asking, starting from a clean Git working tree isn't a luxury: git diff then shows exactly what the agent changed. When Vibe opens a directory with its own .vibe configuration, it first asks whether you trust that folder.
What I used it for
On Linux Mint I gave Vibe a handful of ordinary jobs. I had it convert old Promise-based code to async/await, and the result read like careful refactoring, not generated code. I had it set up rate-limiting middleware with Redis support for a Node.js API. I had it investigate a faulty database query. And I had it find out why a login form crashed on characters like è, ü and ñ. Vibe found that one by itself: the bug was in the regex that validated the input.
What struck me most with that login bug was the step after the fix: Vibe wanted to run the tests on its own to check that the fix worked. That's the behaviour you want from an agent, and it's the step you most easily skip yourself.
Two habits made the difference:
- Be specific. "Fix the login bug" works, but "the login form crashes when the username contains an é, probably because of the regex on line 42" works better. The agent searches less, and you read less to check its work.
- Point at files with
@. Then the agent works on the files you mean, not the ones it happens to find.
Mistral Vibe next to Claude Code and Codex CLI
Being open source no longer sets Vibe apart on its own: OpenAI's Codex CLI is on GitHub under Apache 2.0 as well. What does set Vibe apart is that Mistral ships both the agent and a usable open-weight coding model, and documents how to run the two together on your own hardware. That gives you a terminal agent where the entire path, from prompt to model, can be under your control. It just doesn't happen by default.
If you want to try Vibe on code that isn't allowed to leave the company, don't start with the install. Start with three questions. Does the model run locally or at Mistral? Is telemetry off? And which of the two training switches have you flipped?


