Release · Mistral Vibe · mistralai

Mistral Vibe v2.26.0

What's new in Mistral Vibe v2.26.0, released Oct 6, 2026 (). Newer: v3.0.1 (Oct 20, 2026)

Release notes

Mistral Vibe v2.26.0

Added
  • The app-server can discover built-in plugins from roots an embedding application ships, alongside the ones inside the package.
  • Vibe Code warns when the selected model cannot view attached images.
  • Vibe Code sessions list their background processes in a side panel with live status indicators and a Stop action for running ones.
  • The ~/.vibe/.env fallback for the API key when the OS keyring is unavailable is now created owner-only (0600), so a saved key is no longer readable by other accounts on the machine.
  • Rust CLI: first-run onboarding wizard with theme selection, API key entry stored in the OS keyring, and browser sign-in; it opens automatically when the API key is missing, and --setup runs it and exits.
  • Rust CLI: /teleport, &<prompt> and --teleport send the session to Vibe Code Web, with push approval and Esc to cancel.
  • Rust CLI: Configure voice mode and narration with /voice.
  • Rust CLI: Schedule recurring prompts in natural language with /loop and model-managed cron tools.
  • Rust CLI: Undo and redo composer edits with platform-aware keyboard shortcuts.
  • Rust CLI: vibe update and --check-upgrade ask the install's own package manager (uv, Homebrew, or PyPI) what it can deliver and prompt to upgrade the CLI.
  • Rust CLI: update checks honor enable_system_trust_store — bundled Mozilla roots by default, the OS trust store when enabled.
  • Rust CLI: Clicking the scrollbar track scrolls one page; holding it keeps scrolling until the thumb reaches the pointer.
  • Rust CLI: Client usage telemetry now reaches the analytics pipeline: startup timings, slash commands, @-mentions, copies, cancellations and voice transcription events, with the detected terminal reported at launch.
  • Models accept a thinking_levels field to offer only the thinking levels they support.
  • Rust CLI: /mcp shows connector display names, plugin owners, and a link to add connectors in Studio.
  • /mcp <name> also accepts the display name shown in the browser, and unknown names list those display names.
  • Per-model max_context_length setting, editable in /config.
  • Rust CLI: Mention skills anywhere in a prompt with /skill-name, with the same caret-based completion popup as @ file mentions.
  • Rust CLI: Accepted /skill and @file completions and pasted images are highlighted in the prompt and edited as a single unit.
  • Rust CLI: Long pastes show as a [Pasted n characters] placeholder, also once sent or rewound; paste the same text again right away to show it in full.
  • Rust CLI: Scrolling to the top of a resumed session or a /resume preview loads its older messages automatically.
  • Rust CLI: the startup banner hint now explains that unsetting VIBE_CLI (or setting it to python) switches to the legacy Python TUI.
  • Documented the VIBE_CLI selector, including the Windows session-variable forms, for running the legacy Python TUI.
  • Publish a source distribution on PyPI again, so Homebrew can build new releases.
  • Rust CLI: Typing a command followed by a space shows its arguments inline (e.g. /loop, /mcp, /rename) until the first argument is typed.
  • Fork an earlier completed response while a session continues generating.
  • A plugin can bundle its own MCP server executable and launch it with a ./ command in its mcp.json.
  • Project-links and teleport support in the VS Code extension: link a local workspace to a Vibe Code Web project and teleport the current conversation to continue it in the browser.
  • While the model provider is unavailable, Vibe shows which retry it is on and counts down to the next attempt.
  • /status shows the active model, provider, and API base.
  • You can now choose the model behind session titles and smart approve with [utility_models] in your config; active pins a feature to the model your session runs.
  • The worktree step of a new session shows what it is doing while it is created, including how many files have been checked out.
  • Xcode setup instructions for using Mistral Vibe as an ACP agent.
Changed
  • workspace/git/worktrees/remove gained additive inspect, force, and deleteBranch params plus branchCreated/holders response fields, so a client can probe a removal before committing to it.
  • A session that starts in a worktree now announces the prepared worktree over session/updated before the session moves, so clients that gate their UI on it can proceed as soon as it exists.
  • Unified backend: a tool set to permission = "never" now denies a sensitive path instead of prompting for it.
  • Packaged vibe, vibe-acp, and vibe-app-server executables now always ship the Unified Runtime; a build that cannot collect it fails instead of producing a legacy-only binary.
  • Vibe now always runs on the Unified Harness by default and exits with an actionable error when the runtime is missing or broken, instead of silently falling back to the legacy engine.
  • Rust CLI: Pasted images show as numbered [Image #N] placeholders instead of their file path.
  • Rust CLI: Several images attached to one message are listed as a tree.
  • Rust CLI: Web search queries and source titles are sanitized, and long source titles wrap aligned under their bullet.
  • hooks.toml hooks on the unified harness receive session_id, transcript_path and parent_session_id on stdin again, matching the legacy runtime.
  • Builtin tool_input reaches hooks with the CLI's author-facing argument names, and a pre_tool rewrite of those names takes effect.
  • A hook's system_message shows as the hook's result line, and a hook that fails to run reports the real reason instead of a generic message.
  • Rust CLI: The /resume picker takes at most 40% of the screen height.
  • Previewing a saved session in the resume picker is much faster.
  • Rust CLI: The command and skill completion menu closes as soon as anything is typed after the command.
  • Rust CLI: Tab-completing a command or skill adds a trailing space, ready for its arguments.
  • A compaction model on a different provider than the active model is now ignored with a warning instead of rejecting the configuration.
  • CLI session titles now describe the whole task, stop changing after a single confirmation pass, and survive resume unchanged
  • Session titles now draw on tool results (fetched PRs, changed files) so terse prompts still get a useful title
  • Session titles are now generated by default for CLI (opt out with session_logging.generate_titles = false) and run on the session's own model and provider.
  • Session titles and smart approve now check once whether your deployment serves a small fast model, instead of assuming it from the endpoint's address.
  • Custom and self-hosted Mistral deployments that serve a small model now get fast session titles and a fast smart-approve classifier, rather than falling back to your coding model.
  • Where your deployment serves no small model, session titles and smart approve run on your session's model, which costs more per call; name a cheaper one under [utility_models].
  • New session worktrees check their files out in parallel, roughly halving creation time in large repositories.
Fixed
  • Forked Unified Harness sessions now keep their original cache affinity to improve prompt cache reuse.
  • Forked Unified Harness sessions running in managed worktrees now use independent managed worktrees.
  • Forking a live Unified Harness session preserves its active configuration.
  • Isolated forks no longer inherit or revoke the caller's --trust grant.
  • Worktree sessions now use one configuration update for the displayed, executed, and model-visible working directory.
  • Managed-worktree forks warn when uncommitted source changes remain outside the fork.
  • Smart Approve no longer asks for approval on every command or edit that names a file in a managed worktree under ~/.vibe/worktrees.

…