# Mistral Vibe: a CLI coding agent with an approval ladder and subagents

> Mistral Vibe is an Apache-2.0 command-line coding assistant for Python 3.12 and up, built around four built-in agent profiles, a trust folder system and delegable subagents. Its install path is short; its approval model is the part worth reading before you point it at a repository.

**mistralai/mistral-vibe** — Minimal CLI coding agent by Mistral

- Repository: https://github.com/mistralai/mistral-vibe
- Stars: 5,026 · Forks: 719
- Language: Python
- License: Apache-2.0
- Published: 2026-09-23 · Updated: 2026-09-23 · Language: en
- Canonical page: https://hysenlabs.com/projects/mistralai-mistral-vibe

## The problem Mistral Vibe targets, and who it is for

Most coding agents ask you to accept one global permission setting: either the model can touch your files and shell, or it cannot. Mistral Vibe splits that decision into named agent profiles. The README lists four built-ins. ask requires approval for tool executions. plan is read-only and auto-approves safe tools such as grep and read. accept-edits is the default and auto-approves only write_file and edit. auto-approve approves everything, and the README attaches its own warning to that one.

That ladder is the actual product idea. The audience is a developer who wants the agent to refactor a module without also handing it an unprompted shell. It is not aimed at people who want a hosted web chat, and it is not aimed at teams that want a graphical diff review before every change. The README states plainly that Mistral Vibe works on Windows but that UNIX environments are the officially supported and targeted ones, so a Windows-first team is looking at a second-class path.

Python 3.12 or newer is required, per pyproject.toml. The project is licensed Apache-2.0 and classified as Production/Stable. The last push to the repository was on 2026-09-22, and v2.25.7 was released the same day, so the release cadence is frequent rather than dormant.

## How the agent loop, tools and subagents fit together

Vibe is a conversational loop over a fixed toolset. The README enumerates the tools: read, write_file and edit for files; shell execution with managed shell sessions, polling and stdin helpers; grep with ripgrep support; a todo list the agent uses to track its own work; ask_user_question to pull input from you mid-task; and task for delegation.

Context is assembled rather than guessed. The README says Vibe automatically supplies the project location, the Git branch and recent commit history. That is why the agent can answer questions about where you are in a branch without you pasting git log output. File mentions use @ and slash commands use /, both with autocompletion. Image attachments also go through @: .png, .jpg, .jpeg, .gif and .webp files are sent to vision-capable models such as Mistral Medium 3.5 as native multimodal content.

The delegation model is the part that differs from a single-threaded chat. Subagents run independently and without user interaction, which the README frames as a way to keep the main context from being overloaded. The task tool is how the agent reaches them, and the README shows the shape of a call in its example. A built-in subagent named explore is read-only and is used internally for codebase exploration and skill loading. Custom subagents are declared by setting agent_type = "subagent" in an agent configuration. One consequence worth stating: subagents that run without user interaction cannot ask you a question, so anything requiring a judgement call has to come back to the main loop.

## Installing Mistral Vibe and running a first read-only session

The README recommends a one-line installer for Linux and macOS. It pipes a script from mistral.ai into bash, which is the fastest path and also the one that asks you to trust a remote script.

```bash
curl -LsSf https://mistral.ai/vibe/install.sh | bash
```

If you would rather manage the binary yourself, the README gives two package-manager routes. uv is the tool Mistral uses for its own Windows instructions, where you first install uv and then run the uv command below.

```bash
uv tool install mistral-vibe
```

A plain pip install is also documented and is the option to take if you already pin your Python environment.

```bash
pip install mistral-vibe
```

Once installed, the first session should be read-only. The README documents the --agent flag for selecting a profile, so start with plan, which auto-approves only safe tools such as grep and read.

```bash
vibe --agent plan
```

If you want that to be the standing default rather than a per-invocation flag, the README gives the config.toml key. Valid values are ask, plan, accept-edits, auto-approve, lean (only when listed in installed_agents), or the name of a custom agent file in ~/.vibe/agents/ or the project's .vibe/agents/ directory. Subagents such as explore are not accepted here.

```toml
default_agent = "plan"
```

The README notes that default_agent applies in both interactive and programmatic sessions, and that --auto-approve or --yolo can be passed with any agent when a run should approve every tool call without prompting. Treat that flag as a deliberate override, not a default.

## Where the approval model and the platform support fall short

The agent profiles are coarse. accept-edits, the default, auto-approves write_file and edit. It does not distinguish between editing a comment in a README and rewriting a migration script. If your repository contains files where an unreviewed write is expensive, the default profile is the wrong starting point and plan is the safer one, at the cost of doing every edit yourself.

The README's Windows position is a real limitation rather than a footnote. It states that Vibe works on Windows but that UNIX environments are officially supported and targeted. The Windows instructions route through uv rather than the shell installer. If your team standardises on Windows workstations, you are on the unsupported branch of a project whose CI targets UNIX.

The README also does not document rollback. There is no described mechanism for reverting a session's file changes as a unit. Git is present in the toolset and the agent receives branch and commit context, but undoing an agent run is left to your own version control discipline. For a tool that auto-approves edits by default, that gap is worth knowing before the first session rather than after.

Finally, no pricing or quota information appears in the README or in pyproject.toml. The project is Apache-2.0, which covers the code, not the model calls. What those cost depends on the provider you configure, and the repository does not state it.

## Mistral Vibe versus Claude Code and other terminal agents

The comparison people search for is mistral vibe vs claude code, and the honest answer from what the project publishes is structural rather than benchmark-based. Vibe's distinguishing mechanism is the named agent profile plus the trust folder system, which together make the permission decision a per-profile, per-directory choice you configure in config.toml rather than a mode you toggle.

The second structural difference is the subagent model. Vibe ships a read-only explore subagent and lets you declare custom subagents with agent_type = "subagent", delegating through the task tool. That is an explicit design for keeping the main context small. An agent that does everything in one context will hit context pressure on large repositories; Vibe's answer is to push exploration into a separate, read-only worker.

A third difference is the ACP dependency. pyproject.toml pins agent-client-protocol==0.11.0, and the repository carries vibe-acp.spec alongside vibe.spec and vibe-app-server.spec. That points at editor and IDE integration through the Agent Client Protocol rather than a terminal-only tool. The README's Editors/IDEs section is where that is documented; the README does not spell out which editors are covered, so check that section before assuming your editor is supported.

The Makefile reveals a second implementation layer that the README does not foreground. It carries build and run helpers for vibe/cli-rust/, with a release binary at vibe/cli-rust/target/release/vibe-rs and a CARGO_BUILD_FLAGS variable whose comment notes you can pass --no-default-features to drop voice and its ALSA dependency. So the shipped CLI is not purely the Python package the README installs. That is a meaningful difference from a single-language agent: two runtimes, two build paths, and a feature flag that removes a native audio dependency.

## Skills, MCP servers and the configuration surface you inherit

Configuration lives in a config.toml with a documented location, and the README's table of contents lists the keys you can set: API key, custom system prompts, custom agent configurations, tool management, MCP server configuration, session management, update settings, and a custom Vibe home directory. The breadth is the point and also the cost. A tool with this many knobs takes a reading session before it takes a coding session.

Skills are the extension mechanism. The README documents creating skills, skill discovery, and managing skills, and it ties them to custom slash commands via skills. So a team can encode a repeated workflow as a skill rather than retyping a prompt. The built-in explore subagent is described as being used for skill loading as well as codebase exploration.

MCP server configuration is documented as a config.toml concern, which means Vibe can be extended with external tool servers rather than only its built-in toolset. OpenTelemetry tracing is also listed, which matters if you need to see what an agent run actually did after the fact rather than watching it scroll past.

There is an operational detail in the Makefile worth flagging for anyone building from source. It exports VIBE_APP_SERVER_CWD and sets VIBE_APP_SERVER_CMD to run vibe-app-server with --experimental-harness, and it supports a HARNESS_SRC override that points the app-server at a local harness checkout instead of the version pinned in pyproject.toml. That is a development affordance, and the word experimental in the flag is a fair signal about how to treat it.

## Maintenance, licensing and the upgrade cost

The repository is not archived, and the last push was on 2026-09-22. Releases are frequent: v2.25.4 on 2026-09-12, v2.25.5 on 2026-09-18, and v2.25.7 on 2026-09-22. A version numbering scheme that moves through patch releases this quickly means you should expect to update, and the README documents update settings as a configuration category, so the project has an opinion about how updates arrive.

The upgrade cost is mostly configuration drift. config.toml carries agent definitions, tool permissions, MCP servers, session settings and a Vibe home directory. Custom agent files can live in ~/.vibe/agents/ or in a project's .vibe/agents/ directory, which means a change to the accepted default_agent values can affect both your personal setup and any repository that committed agent files. The README's own note that subagents such as explore are not accepted as default_agent values is exactly the kind of boundary that shifts between versions.

On licensing: the project is Apache-2.0, stated in pyproject.toml and in the repository LICENSE file. That covers the source. It says nothing about the terms of the model endpoints you point Vibe at, and the project does not describe those terms. If you are evaluating this for a commercial setting, the licence question and the provider question are separate, and only the first one is answered here. This is not legal advice; read the LICENSE file and your provider's terms.

One more thing to verify rather than assume: the README has a Data collection and usage section. Whatever it states governs what leaves your machine. Read it before the first session on a private repository.

## Conclusion

Adopt Mistral Vibe if you already work in a terminal, want an agent whose tool permissions you can tier per profile, and are willing to read config.toml before letting it write files. Do not adopt it if you need a Windows-first tool (the README states UNIX is the supported target) or if you want the agent to run unattended with no approval surface at all. Verify three things before committing: that your Vibe home directory is where you expect, that default_agent is set to the profile you actually want, and that a plan-agent session cannot write to your working tree.

## FAQ

### How do I install Mistral Vibe?

The README recommends a one-line installer for Linux and macOS that pipes https://mistral.ai/vibe/install.sh into bash. It also documents uv tool install mistral-vibe and pip install mistral-vibe. Python 3.12 or newer is required.

### How do I install the Mistral Vibe CLI?

The README gives three routes: the shell installer for Linux and macOS, uv tool install mistral-vibe, and pip install mistral-vibe. On Windows it says to install uv first and then use the uv command.

### How do I use the Mistral Vibe CLI?

Run the vibe command to start an interactive session, and use the --agent flag to pick a profile such as plan, which is read-only and auto-approves safe tools like grep and read. Slash commands use / and file mentions use @, both with autocompletion.

### Is Mistral Vibe open source?

Yes. The repository is licensed Apache-2.0, as stated in pyproject.toml and the LICENSE file, and the source is published under the mistralai organisation. The licence covers the code, not the model calls you make with it.

### Can I use Mistral Vibe for free?

The README and pyproject.toml do not state pricing or quota terms. The software itself is Apache-2.0, but the project does not describe the cost of the model endpoints you configure it to use.

### What is Mistral Vibe CLI?

It is Mistral's open-source command-line coding assistant, described in the README as a conversational interface to your codebase. It exposes file, shell, search and delegation tools, and requires Python 3.12 or newer.

## Sources

- [Issues](https://github.com/mistralai/mistral-vibe/issues)
- [License: Apache-2.0](https://github.com/mistralai/mistral-vibe/blob/main/LICENSE)
- [mistralai/mistral-vibe on GitHub](https://github.com/mistralai/mistral-vibe)
- [README](https://github.com/mistralai/mistral-vibe/blob/main/README.md)
- [Releases](https://github.com/mistralai/mistral-vibe/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/mistralai-mistral-vibe
