Mistral Vibe 3.1.0
Mistral · CLI / agent · v3.1.0 · Released
View official release notes ↗ Copy link
Added
- New enable_file_autocomplete setting (and VIBE_ENABLE_FILE_AUTOCOMPLETE) turns off @ file completion and its background file index.
- A Jump to bottom button appears over a scrolled-up conversation and returns to the latest message.
- Ctrl+C closes the PR/MR list, and Home, End, PageUp and PageDown move its highlight.
- New
/contextcommand (also opened by clicking the footer's token counter) shows what fills the context window: system prompt, tool definitions, skills, conversation, free space and the auto-compaction buffer, with per-category token estimates. - A copy icon after the footer's working directory copies the whole path.
- The footer shows how much of your monthly Vibe Code usage is spent, turning yellow then red as it runs out, or marked PAYG when pay-as-you-go covers usage past it.
- The Nix flake exposes
packages.mistral-vibe, an overlay andnix flake checkchecks - The agent can open an image file with
read_fileand see it, on a model that reads images. Ctrl+Rsearches your prompt history and loads the selected prompt into the input.- Experimental: the Mistral MCP built-in connector, behind the
experimental_enable_mistral_mcp_connectorsetting - New
mistral-darkandmistral-lightthemes built from the Mistral brand palette.
Changed
- On macOS, new worktrees of a trusted repository are now cloned from a template checkout by default; set
worktree_copy_on_write = falseto turn this off experimental_worktree_copy_on_writeis renamed toworktree_copy_on_write, and existing configs are updated on startup- Connector tools meant only for their MCP App are no longer offered to the model
- Errors, warnings and startup config issues now appear as lines in the conversation instead of pop-ups
- Refused inputs show a notice above the input that stays until the next key
- Experimental browser sign-in now authenticates first-party CLI requests without an API key.
- Experimental browser sign-in reads account and tenant information from the account-context endpoint.
- The Rust CLI now honors file_watcher_for_autocomplete: turned off, the file index is built once without watching the filesystem.
- PR/MR rows lead with a dot colored by their state, and CI checks show a colored ✓, ✗ or ○ with failures first.
- Inside a tmux session with
mouse off(the default before tmux 3.8), Vibe leaves the mouse to the terminal, so its native selection and copy work without holding a modifier key. - The footer's PR/MR link now sits after the working directory, led by a dot colored by its state, and the context gauge reads
ctx 23k/600k. - On narrow terminals the footer first turns its gauges into one-cell levels and drops the PR status, then shortens the working directory.
- The footer's context window reads as a bar, and both gauges are the first to shrink to a one-cell level on narrow terminals.
- The input box borders stay neutral; only the mode label is colored.
- The plan name reads Free, Pro or Team.
- The model and its thinking level moved from the footer to the top border of the input box, where a click opens /model.
- A generic subagent now runs the instructions its parent writes for its task
- The Nix package no longer rebuilds when unrelated files such as tests or docs change
- A pull request's status counts only its required checks and their latest run; skipped and neutral checks pass
- A pull request whose optional checks failed no longer reads as blocked
- The pull requests of open sessions refresh every minute, at about one GitHub API point per minute
- Voice recording moved from
Ctrl+RtoCtrl+T. /whoaminow shows the last 4 characters of the API key instead of the first ones, matching Studio- Brand accents now use the Mistral palette, and the loading animation cycles through three softer oranges.
- Under the
ansi-darkandansi-lightthemes, the input box and popup borders are dimmed so they stand out less.
Fixed
- Interrupting a
!shell command now also stops the processes it started, instead of hanging until they exit - Saving a setting, an MCP server change, an agent install, or an "always allow" approval no longer erases config.toml changes made by hand or by another Vibe session.
- Saving settings no longer replaces a symlinked
config.tomlwith a regular file - Sessions no longer crash, or fail to start or resume, when a tool result or MCP tool schema contains an integer above 2^53.
- MCP servers whose sign-in is hosted elsewhere (Cloudflare Access, Keycloak, Consensus) now renew their login silently instead of asking you to sign in again each time it expires
- OIDC-authenticated model requests no longer forward tenant headers through redirects.
- OIDC refresh no longer restores cleared or replaced credentials, and rejected model tokens require renewed authentication.
- OIDC account and tenant switches no longer reuse another account’s cached settings or connector catalog.
/retrynow works after interrupting a response with Esc, and says so when there is nothing to retry instead of doing nothing.- A retried response replaces the unfinished one instead of being appended to it, which showed the same text twice.
- Smart approve no longer asks for approval on every tool call when its model cannot turn reasoning off, such as GLM 5.3 or Mistral Large 4.
- On Linux, starting Vibe in a folder with symlinked directories no longer pins a CPU core and grows memory without limit.
- The PR/MR list keeps its height and its highlight, and its CI checks stay readable at any length and width.
- After
/clear,/resume, a rewind or a compaction, the footer and the PR/MR list show the new session's PRs and MRs. - A
default_agentset in your config (for exampleauto-approve) is no longer replaced by smart approve when new sessions start. - Starting several worktree sessions in the same repository at once no longer fails one of them with "could not lock config file".
- On Windows, sessions no longer fail with "Access is denied" (WinError 5) when an antivirus or indexer briefly holds a session file open.
- Copying inside tmux now goes through tmux's own clipboard forwarding, so it reaches the terminal clipboard without enabling passthrough and also fills the tmux paste buffer.
- Subagents can be spawned from a session forked with
/branch. - A connector connected, disconnected or revoked now reaches every open session at its next turn, without a restart
- Listing or opening sessions with a Vibe config that breaks a rule now says which setting to fix, instead of an internal error
- Mistral Large 4 turns with no thinking level set no longer fail with a 400, and its thinking picker offers Low, High and Max when its config lists no levels.
nix developbuilds again and ships the Rust toolchain it needs- Pull request titles come from GitHub or GitLab instead of the creation command, so heredoc and variable titles show correctly
- A GitLab merge request with skipped or allowed-to-fail jobs no longer shows failing or pending checks
- Starting a queued message no longer stalls for up to a few hundred milliseconds when many MCP or connector tools are loaded.
read_filerefuses a binary file instead of returning it as unreadable text.- Resuming a session that was closed mid-turn opens right away, and the interrupted turn keeps running so you can follow it, approve its tools or interrupt it
- The welcome banner cat now uses the theme's text color instead of the terminal default.
Removed
- Floating notification popups in the bottom-right corner
- The
smart_approve_defaultsetting: setdefault_agent = "smart-approve"instead.
Source: Mistral's official Mistral Vibe release notes at github.com. Text reproduced from the source for reference; all rights belong to Mistral. Patchwire is not affiliated with Mistral.
Get new Mistral Vibe releases by email
Every AI dev-tool release, including Mistral Vibe, in one short email each morning. Free. The digest is launching soon; join the list to get it from day one.
By subscribing you agree to our Terms and Privacy Policy. Unsubscribe anytime.
Nearby Mistral Vibe releases
More from Mistral
Other Mistral changelogs: Mistral Python SDK · Mistral news. All Mistral releases →