Skip to content
MV

Mistral Vibe v2.26.1

Released · Mistral AI

BreakingChanges skills and plugins, background and headless runs

What the release notes say

Added

  • The app-server reports which process holds a stored session, and pushes a change when that process lets go of it, so a client can show a session open elsewhere as read-only

  • Rust CLI: Configure proxy and SSL certificate settings with /proxy-setup.

  • Rust CLI: The narrator reads each turn's summary aloud and shows a speaking status row that Esc or Ctrl+C stops.

  • Rust CLI: /plugins browses the session's plugins, and /reload-plugins re-pins them and reports what changed.

  • Rust CLI: Free-text answers to agent questions accept multiple lines, multi-line pastes, and click-to-place caret.

  • Rust CLI: In the /model and /thinking pickers, s applies the selection for the current session only, while Enter still saves it to your config.

  • Rust CLI: Picking a model immediately opens the thinking level picker for that model, and both are applied together (Esc cancels both); after a session-only model pick, the thinking level is session-only too.

  • nix run .#rustCli to launch the Rust terminal instead of the Python one

  • Rust CLI: /whoami shows the start of your API key, its scope, and its access scope.

  • Space toggles the focused checkbox in multi-select questions.

  • enable_background_processes = false stops the agent from starting background processes

  • enable_subagents = false takes subagents away from the agent on the default runtime.

  • Disable main input cursor blinking with cursor_blink = false or /config, keeping a steady caret in both Python and Rust terminals.

  • Document Library connector: search, list, open, and fetch documents from your Mistral document libraries directly in Vibe.

  • export.json records steps, the number of model calls the agent made

  • export.json lists the session's config issues, such as a skill it could not load, under warnings

  • vibe -p reads the prompt from --prompt-file or stdin, and --output-dir writes an export.json and the session journal on every exit.

  • vibe -p --time-limit SECONDS stops the run at a deadline; SIGTERM and Ctrl-C stop it the same way, and the session can be resumed.

  • Per-model top_p and max_output_tokens config settings.

  • Experimental experimental_enable_model_catalog config flag (default off) — groundwork for the upcoming model catalog, no visible effect yet.

  • New api_stream_idle_timeout setting (off by default) fails a model response that goes silent for that many seconds.

  • vibe -p --agent-socket sessions run background processes in their POSIX sandbox, as enable_background_processes says, instead of always turning them off

  • New title_prompt_id config setting to override the prompt used to generate session titles: built-in session_title or a custom .md file from ~/.vibe/prompts/ or .vibe/prompts/.

Changed

  • New sessions start their first turn faster, and long sessions open, load older messages and resume sooner.
  • /status shows token counts in a compact form (e.g. 1.23M) followed by the exact value, dimmed, with thousands separators.
  • The context usage indicator and subagent token counts round to three significant digits (e.g. 12.5k instead of 12k).
  • Rust CLI: Queue selection removes the highlighted prompt with Backspace or Ctrl+C instead of Backspace or Delete.
  • Rust CLI: Tool group headers count each kind of call (e.g. "Read 10 files, ran 3 commands"), a single visible entry is no longer folded into a group, and result borders line up under their toggle arrows, wrapped headers included.
  • The off thinking level now actually disables reasoning on models whose offered levels include it, instead of silently leaving the server's default in charge.
  • The default model's thinking levels are now off and high; a stored low pick resets to off and a stored medium pick resets to high.
  • The default model declares a 256k context window; auto-compaction now derives from it.
  • A stale pin to the removed local model now warns and falls back to the hosted default.
  • Rust CLI: In text inputs, Cmd+Left/Right, Home/End and Ctrl+A/E at a line edge move on to the previous line start or the next line end.
  • Rust CLI: Shortcut hints use the same wording everywhere, and j/k navigate every list.
  • Rust CLI: /config, /mcp, /plugins and the project picker search with /; Esc leaves the search, then clears it, then closes. /plugins now shows its search field under the title, like /mcp and /config.
  • Rust CLI: Every list marks the focused row with the same highlight bar, and a green › marks the current value.
  • Rust CLI: Lists wrap at both ends and scroll back to their very top, Esc always goes back one level, and numbered options take their digit.
  • Your Mistral identity and plan now show in /whoami and the banner even when the active model isn't a Mistral model.
  • Rust CLI: Typing /, ! or & over a fully selected input switches to that mode, and so does pasting a /command or !command into an empty input.
  • Rust CLI: the startup banner hint now reads "You are using the new Vibe TUI. To switch back to the classic TUI, set the VIBE_CLI environment variable to python."
  • Stopping a background process now also stops what it started in the background, and returns only once all of it has exited
  • A background process now keeps running until everything it started in the background has exited, not just its shell
  • The Document Library connector is now gated behind the experimental_enable_document_library_connector config flag (off by default) while its tools stabilize.
  • vibe -p exits 1 on usage or config errors, 2 on infrastructure failures and 3 when a limit or a model refusal stopped the agent
  • vibe -p --max-turns now exits 3, not 1, when the agent reaches the turn limit; so do --max-tokens and --max-price, including when the budget ran out as the agent finished
  • Model requests retry HTTP 520.