Invite a friend, get 1 month of Pro freeHow it works

Mistral Vibe changelog

The last 25 stable releases of Mistral Vibe, newest first, with the lines that remove, rename or deprecate something pulled out on top. Taken from the GitHub releases every morning.

Latest: 3.0.4 · October 30, 2026 GitHub → About Mistral Vibe →

Breaking changes and deprecations

Latest releases

  1. 3.0.4

    • /release-notes (alias /whatsnew) browses the release notes of every Vibe version in a searchable, full-screen view.
    • Provider option preserve_api_base = true keeps a custom api_base that /whoami would otherwise overwrite (split-horizon / proxied deployments)
    • VIBE_TERMINAL_KEY names the terminal --continue uses; an empty value makes it ignore the terminal
    • Setup warns when an API key set in your shell overrides the key it saves.
    • /whoami shows which credential source (shell, .env, or keyring) is in use.
    • vibe -p --system-prompt-file PATH replaces Vibe's own instructions in the system prompt with the file's text.
    • agent_max_output_tokens and compaction_max_output_tokens cap the output of every agent and compaction request on any provider, held to what the model and its context window leave room for; at 0, the default, a cap is…
    • vibe -p --model ALIAS runs with that model without changing your default.
    • New /fork alias for the /branch command, which forks the current conversation into a new resumable session.
    • Experimental experimental_worktree_copy_on_write setting on macOS: new worktrees of a trusted repository are cloned from a template checkout, so they use less disk and are created faster
    49 more on GitHub →
  2. 3.0.3

    • Breaking [Breaking — config] auto_compact_threshold = 0 is now a config error; set a positive threshold or remove it to use the model's default
    • Breaking [Breaking — models] A reply without token usage fails the turn; third-party model servers must support stream_options.include_usage
    • Breaking [Breaking — config] A model's max_output_tokens no longer caps replies; it is only sent to providers that require an output limit
    • Breaking [Breaking — sessions] Images in sessions saved by Vibe 3.0.2 reach a model without image input as [Image], without their file link
    • Breaking [Breaking — shell timeouts] Shell timeout settings that are invalid, set one without the other, or clash with the lean profile are now refused as config errors. An agent file with such a setting, or any other invalid…
    • Skills added or edited on disk are picked up by running sessions without /reload
    • The footer shows the active model and its thinking level next to the token counter, and updates after /model, /thinking or a resume.
    • Clicking the model in the footer opens /model while no turn is running, keeping the prompt being typed.
    • The / menu starts each skill's description with its scope (project, user or vibe), setting skills apart from built-in commands.
    • post_agent hooks accept match to run only after a given agent, or after the main agent with match = "main".
    • The post_agent hook payload includes agent_name, the configuration name of the agent that finished its turn.
    • outside_workdir = "deny" (global or per tool) refuses file and shell access outside the working directory with a tool error instead of a prompt, so the agent keeps working.
    • Vibe now shows a warning when the model refuses a request as too long or a compaction has to shorten its inputs or summary
    • Vibe now warns at startup about settings in your config that it does not use, such as misspelt keys, and suggests the right name
    • Set strict_config = true (or VIBE_STRICT_CONFIG=1) to make Vibe refuse to start when your config has settings it does not use. A VIBE_STRICT_CONFIG value that is not on or off, such as 2, is refused too
    94 more on GitHub →
  3. 3.0.2

    • enable_mouse_capture setting (or VIBE_ENABLE_MOUSE_CAPTURE=false) to leave text selection and copy to your terminal; depending on the terminal, some other mouse interactions such as clicks are disabled too.
    • Added max_subagents and max_concurrent_subagents settings to control how many subagents can be alive and running at once
    • In VS Code, connectors that need no login, such as DeepWiki, show as Not connected and connect in one click, instead of asking an admin to set them up.
    • An image sent to a model that does not support image input no longer fails the turn. The model gets the text "[image]" in place of the image, and the session continues.
    • Shortened the copy hint so it fits in narrow terminals.
    • The model's reasoning now shows by default, as a collapsible "Thought" row.
    • The starting mode your organization sets now applies even when Vibe would otherwise have started you in smart-approve.
    • Using --agent to pick a mode your organization disabled now opens your default starting mode (your organization's, if it sets one) and shows a notice.
    • Raised the default subagent limits to 32 alive and 32 running concurrently (previously 8 and 4)
    • Copying on Linux now falls back to xclip or xsel when wl-copy fails, and suggests Shift+select or installing xclip when no clipboard tool works.
    26 more on GitHub →
  4. 3.0.1

    • New enable_auto_approve setting: when the admin-managed config sets it to false, the auto-approve (YOLO) mode is forbidden — the auto-approve agent (and any custom agent with safety = "yolo") is hidden and --auto-appr…
    • compaction_max_output_tokens (80000), compaction_thinking (unset), compaction_reasoning_limit_tokens (32000), output_limit_retries (6) and output_token_reserve (4096) settings tune compaction requests and recovery fro…
    • The app server has experimental session/subagents/wait, session/subagents/interrupt and session/subagents/read methods: a client can wait for the subagents a turn left running, interrupt them, and read each one's stat…
    • vibe -p waits for the subagents its turn left running before it exits; --time-limit and other stops interrupt them, and the --output-dir export lists each subagent with its status, model, usage, cost and steps, and co…
    • Each subagent's cost is priced at its own model's rates; when its model is unknown, the root's rates price it and the row says so (pricingModel, pricingFallback)
    • An --agent-socket server's tools/call names its caller, so the server can tell a subagent's call from the root's
    • A custom tool that fails to load now shows a warning naming the file and the error, instead of disappearing silently.
    • Experimental vibe run-server command: runs many vibe -p --agent-socket sessions from one process, on shared app-servers (--runs-per-app-server, default 16) that exit once idle, each run with its own config, credential…
    • Vibe Desktop sessions support scheduled loops: the assistant can schedule a recurring prompt, fired prompts show as loop cards in the conversation, and active loops are listed (and can be deleted) in the session info.
    • /model and the /config model list now group models by where they come from: your organization, experiments, the model catalog, then your own config.
    48 more on GitHub →
  5. 3.0.0

    • Breaking displayed_workdir, context_warnings and raise_on_compaction_failure are deprecated: they remain accepted in existing configs but have no effect on Unified execution.
    • Breaking Removed the retired legacy execution runtime while preserving Unified execution and read-only imports of Vibe 2.0+ session folders (meta.json and messages.jsonl). Vibe 1.x single-JSON sessions are no longer supported.
    • The app-server reports each model's compaction threshold, so a client can show how full a session's context is before it compacts.
    • Desktop can import projects and sessions from another coding agent during onboarding.
    • Rust CLI: /leanstall and /unleanstall install and uninstall the Lean agent.
    • With experimental_enable_model_catalog on, the model list includes Mistral's curated models, and your config can still override their settings.
    • Rust CLI: Tool approval options, /thinking levels, /resume sessions and /log-level rows and badges can be clicked.
    • Rust CLI: Option lists show a faint hover background under the mouse.
    • With a "shared only" API key, /mcp blocks connectors that need your login and tells you to run vibe --setup.
    • Rust CLI: /branch forks the current conversation into a new resumable session.
    • The agent can now wait for your next message or for background work to finish, instead of repeatedly checking.
    • Rust CLI: Debug console for live session logs, opened with /debug or Ctrl+\.
    85 more on GitHub →
  6. 2.26.1

    • 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.
    75 more on GitHub →
  7. 2.26.0

    • 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, & 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.
    137 more on GitHub →
  8. 2.25.8

    • Rust CLI: support for configuring Vibe Code remote projects
    • Clean up managed worktrees after archiving local sessions
    • Archive local sessions so they can be hidden from active session lists
    • Vibe Desktop now shows unseen indicators for local Code sessions that need attention or finish a turn
    • Rust CLI: the live todo plan pins above the input, and Cmd+\ opens the full plan in a right sidebar.
    • MCP servers declared by a plugin now start, so the tools they carry are callable in the session
    • Rust CLI: Support sessionless MCP server add and remove commands from the shell.
    • Rust CLI: File completions respect the caret, preserve surrounding text, and allow directory descent.
    • Rust CLI: Filter MCP servers and connectors with / in the MCP browser.
    • Text selection, copying, and scrolling in trusted-folder prompts.
    33 more on GitHub →
  9. 2.25.7

    • Allow /teleport with Vibe and workspace API keys, including free accounts, without an internal feature gate.
    • Explain which API keys to use when teleport rejects a Codestral key.
    • Warn when managed configuration contains removed Vibe Code settings.
    • On Windows, opening a session that is already open in another process reports 'Session is already open' instead of a raw permission error.
    • On Windows, idle-session cleanup no longer mistakes a session held by another process for an idle one.
    • Automatic project context no longer runs repository-configured Git clean or process filters.
    Release notes →
  10. 2.25.5

    • Subagent conversation history is readable through the owning parent session
    • Configurable live subagent status and read-only transcript switching from the interactive prompt
    • --experimental-harness sessions can track todos, shown as a pinned line under the input and in full on /todo, and keep a per-session scratchpad whose notes are re-stated to the agent after the conversation is summarised.
    • Turn an installed skill on or off from the /skills browser without removing it.
    • Skill authors can mark skills as explicit-only, keeping slash invocation available while preventing model-initiated loading.
    • vibe mcp add --allow-insecure-http and /mcp add --allow-insecure-http opt into plaintext http:// MCP servers on non-localhost hosts, such as a server on the LAN.
    • Tool telemetry events now carry approval_source (config/smart/user/bypass/never) to distinguish how a tool call was authorized.
    • Press r in the MCP servers & connectors panel to refresh the list on demand.
    • Connectors view now links to Studio to add more connectors, pre-scoped to your org and workspace.
    • Local app-server sessions now persist and expose their latest accepted user interaction timestamp for downstream session resources.
    73 more on GitHub →
  11. 2.25.4

    • Connector discovery excludes raw HTTP connectors that do not support MCP tools.
    • A single invalid connector no longer prevents the rest of your connectors from loading; an individual tool with an oversized schema is dropped on its own, and accounts over the connector cap keep a bounded catalog ins…
    • Automatic session titles use the active model on custom Mistral endpoints.
    • Smart-approve now appears in the Vibe Desktop mode picker when enabled via its rollout, and a background refresh no longer drops it.
    • ACP clients (Zed/JetBrains) always list the active mode, so a session can never get stuck on a mode missing from its own list.
    • Smart-approve now escalates to a confirmation prompt when a risky action is requested again, instead of only blocking it, and shows the reason it is asking.
    • Auto-approved calls no longer read as warnings: the reason smart-approve let a call run is shown as a note rather than a warning.
    • @ file mentions now resolve against every workspace root, including --add-dir ones.
    • A @ mention outside the workspace no longer rejects the whole message; it stays plain text and the read tool can still ask for it.
    • --add-dir no longer drops the working directory from the file tools' workspace roots.
    1 more on GitHub →
  12. 2.25.3

    • New /branch command forks the current conversation into a new resumable session, leaving the current session unchanged. Resume the copy in another terminal with vibe --resume .
    • Bump the local harness runtime to v0.4.5.
    • Make @ file mentions use Git-aware discovery and accept standalone pasted files and folders.
    • Retained chats remain readable and restore their worktrees when work resumes.
    • New session logs are no longer readable by other users on POSIX systems.
    • AGENTS.md instructions now load into the system prompt under the experimental unified harness.
    Release notes →
  13. 2.25.2

    • Breaking Renamed SessionBackendKind literals from "python"/"rust" to "legacy"/"unified" to match backend identity naming.
    • VS Code extension: debug submenu with log level picker, open log file, and a togglable session status panel showing agent statistics (steps, tokens, tokens/sec, context, cost)
    • Open the session picker faster by building the merged session listing once per cursor walk instead of on every page.
    • Renamed SessionBackendKind literals from "python"/"rust" to "legacy"/"unified" to match backend identity naming.
    • An "always" permission grant that fails to reach ~/.vibe now warns instead of passing silently: ConfigOrchestrator.set_field returns its errors rather than raising, so an ignored failure looked exactly like a successf…
    • Steered prompts now preserve their host-provided display content in app-server session history.
    • Preserve the selected permission mode when a session starts in a worktree.
    • Managed worktree creation, attachment, and retention cleanup are serialized across processes, and stale reservations are recovered safely.
    • Stop dropping a session from the picker when it is touched while paging through the list.
    Release notes →
  14. 2.25.1

    • Desktop keeps 15 recent managed Code worktrees by default, configurable in Local Coding settings; cleanup skips active, dirty, untracked, or unpushed worktrees.
    • Background process tools (process.start, process.stop, process.output, process.list, process.write) now show the command or process ID in the call header and a typed result widget instead of raw JSON.
    • Tool call groups now fold into a single compact summary line by default. Click to expand the full list. Ctrl+O toggles all groups and result bodies. The summary shows present-tense labels while running (e.g. "Running…
    • Show a loading spinner in the conversation while /reload is in progress
    • A risky call is returned to the model to self-correct rather than interrupting the human, escalating to an approval prompt only after a streak; no failure path auto-approves
    • Experimental experimental_enable_tab_status config option: shows >> (running) and ? (waiting) indicators in the terminal tab title.
    • New built-in worktree plugin with a skill for creating, reusing, and cleaning up git worktrees under $VIBE_HOME/worktrees.
    • The invalid API key error now names where the key came from (env var MISTRAL_API_KEY, the keyring), so a shell-exported key shadowing the one saved at setup is visible.
    • Optimized resource usage when running the full test suite.
    • The vibe and skill-creator skills now reach a session as skills of the shipped vibe plugin, so they are offered once, as /vibe:vibe and /vibe:skill-creator.
    36 more on GitHub →
  15. 2.25.0

    • Breaking Builtin vibe skill no longer recommends the removed /terminal-setup and now documents /copy, /paste-image, /remote-project
    • /skills browser for session skills, with search and filter; shared skills sync on session start. Experimental, off by default.
    • Browser SSO completes behind split-horizon reverse proxies; opt-in browser_auth_allow_origin_rewrite rewrites sign-in/poll URLs onto configured origins
    • Discovery of Mistral's built-in web-search connector
    • Plugin-declared MCP servers in /mcp, tagged with their plugin and authenticatable via /mcp login; a pending login is announced at session start
    • Connectors (Notion, Linear, Slack, GitHub, Gmail, Google Calendar, Drive) in ACP
    • ACP elicitation-form clients can answer ask_user_question and exit_plan_mode
    • Session-scoped model pinning for resumed conversations
    • vibe update to check for and install a newer release
    • Connector discovery skips unsupported protocols
    • agents/list no longer requires a session id
    40 more on GitHub →
  16. 2.24.5

    • Fuzzy search in the MCP servers and connectors browser
    • Faster startup through additional lazy imports and deferred schema builds
    • Trust prompt is skipped when --worktree or --trust already grants access
    • Links are normalized before opening to prevent broken clicks
    • Themes apply correctly at startup
    • Retried Mistral responses are released back into the connection pool
    Release notes →
  17. 2.24.4

    • LLM-generated session titles and terminal title
    • Queue selection and edit mode for queued messages
    • Git info is shown in the session header
    • Model connections are reused across tool turns for faster responses
    • /mcp login routes to the connector auth flow
    • Rate-limited calls retry with adaptive backoff and pacing
    • Model retry state stays authoritative across clients
    • Loading nix-managed skills through a symlinked SKILL.md no longer freezes
    • Chat-completion connections are closed to avoid pool timeouts
    Release notes →
  18. 2.24.3

    • Slash commands and setting pickers can be used while the agent or a command is running
    • The process is named "Vibe CLI" and the bottom bar shows its PID
    • Models are shown by display name instead of the raw config alias
    • Python dependencies updated to clear known security advisories
    • Connector bootstrap failures are surfaced instead of reporting no connectors
    Release notes →
  19. 2.24.2

    • Breaking Custom tools are flagged as deprecated
    • In-app session picker with live preview
    • /log-level command for runtime log-level control
    • /retry is exposed to ACP clients
    • Created worktrees are shown in the transcript
    • Worktrees are cleaned up when their local session is deleted
    • Faster startup: the TUI renders before session initialization and imports are deferred
    • Faster session resume
    • Edit and read tool headers show paths relative to the current directory
    • Admin config fetch retries with exponential backoff
    • Custom tools are flagged as deprecated
    9 more on GitHub →
  20. 2.24.1

    • Inline ghost-text completion for mid-prompt skills
    • /clear and /new accept an optional first prompt and show the resume id
    • Compacted conversation history is preserved
    • OpenTelemetry tracing configuration is now available
    • Default agent renamed to ask and defaults to accept-edits
    • Auto worktrees are named with a model
    • Faster resume by deferring sub-agent instantiation
    • Surface MCP server startup failures to the user
    • Text selection is now visible in the chat input
    • Provider reasoning is replayed verbatim
    13 more on GitHub →
  21. 2.24.0

    • Admin config layer for shared/enforced config that applies over user config
    • "Default" (unpinned) model option in /model and /config to track the recommended model without pinning a specific alias
    • Server-side default model routing via experiment, never overriding explicit pins
    • LLM retries surfaced in ACP/VS Code conversations via _session/retrying notification
    • Explore subagent can load skills
    • Local sessions start in the selected worktree
    • User and project config layers compose; trusted project config overlays user config instead of replacing it
    • Startup duration telemetry (vibe.startup)
    • Experiment variants routed through the config schema; TOML/env/overrides now take precedence over GrowthBook assignments
    • Autocopy: keyboard copy shortcuts give feedback, double/triple-click drag improved, and autocopy_to_clipboard documented
    6 more on GitHub →
  22. 2.23.3

    • /retry command to retry an interrupted response
    • /rewind now lets you choose between forking and rewinding in place
    • LLM retries surfaced in the UI and logs
    • Read the config catalogue without an attached session
    • /status shows provider prompt-cache usage and discounts cached tokens from the session cost
    • Native copy hint on the clipboard notice
    • Refused config change no longer wipes the picker
    • Git fsmonitor hook disabled in project context
    • Signed reasoning blocks preserved
    • Tab hint colored in config edit modal
    7 more on GitHub →
  23. 2.23.2

    • Skill-creator built-in skill: a guided flow to author, update, and delete your own skills
    • Browser sign-in can target a custom login domain for self-hosted or private-gateway deployments
    • Session stats now track provider cache-hit (cached) tokens
    • Redesigned /config as a searchable, full-screen settings browser with typed edit modals and per-layer origin display
    • App-server protocol extended and packaged as a standalone vibe-app-server binary for desktop integration
    • Cached-token counts now reported in session stats instead of always zero
    • Zed ACP packaging preserves symlinks by shipping .tar.gz archives
    • grep result chips open the correct file and no longer leak absolute host paths into context (ACP)
    • ACP /rewind truncates in place instead of forking
    • Extra fields in the whoami response no longer rejected
    3 more on GitHub →
  24. 2.23.1

    • Crash when @-mentioning a file, which aborted the turn
    Release notes →
  25. 2.23.0

    • [A/B testing] OS-native managed shell tools
    • vibe mcp add and vibe mcp remove commands to add and remove remote MCP servers without editing TOML
    • Auto theme that follows terminal/OS appearance
    • ACP project links surface for desktop integration
    • Dense, grouped tool-call rendering in the TUI
    • Trust dialog now defaults to "Trust folder" and is simplified
    • Tool descriptions compressed to reduce context bloat
    • Smoother, faster scrolling in long conversations
    • Fixed unnecessary textual relayout computation on constant-size animation frames, removing lag spikes
    • Major internal refactor introducing a JSON-RPC 2.0 app server as the single runtime owner between delivery surfaces (TUI, -p, ACP) and the core engine, replacing direct AgentLoop/callback coupling with a typed, projec…
    12 more on GitHub →

Other agents

Claude CodeCodex CLIGemini CLICopilot CLIopencodeHermes AgentQwen CodeKimi CLIGooseCrushAiderCline All agents →

Run Mistral Vibe next to the other agents and see when one needs you: AgentVera keeps them in one window on Mac, Windows and Linux, and on your phone.

Bring your agents to one desk.

Download, pick a project, open your first agent. Your installed CLIs are ready to go.