Mistral Vibe v3.0.1
Added 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-approve/--yolo plus…
Read full notes
Added
- New
enable_auto_approvesetting: when the admin-managed config sets it tofalse, the auto-approve (YOLO) mode is forbidden — theauto-approveagent (and any custom agent withsafety = "yolo") is hidden and--auto-approve/--yoloplusbypass_tool_permissionsare ignored. Per-tool permissions still apply. compaction_max_output_tokens(80000),compaction_thinking(unset),compaction_reasoning_limit_tokens(32000),output_limit_retries(6) andoutput_token_reserve(4096) settings tune compaction requests and recovery from answers cut off at the output limit.- The app server has experimental
session/subagents/wait,session/subagents/interruptandsession/subagents/readmethods: a client can wait for the subagents a turn left running, interrupt them, and read each one's status, store, model, usage, cost and steps vibe -pwaits for the subagents its turn left running before it exits;--time-limitand other stops interrupt them, and the--output-direxport lists each subagent with its status, model, usage, cost and steps, and copies its journal- 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-socketserver'stools/callnames 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-servercommand: runs manyvibe -p --agent-socketsessions from one process, on shared app-servers (--runs-per-app-server, default 16) that exit once idle, each run with its own config, credentials, limits and export - 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.
Changed
/modeland the/configmodel list now group models by where they come from: your organization, experiments, the model catalog, then your own config.- Resuming or continuing a session keeps the agent it last ran on, even if your default agent changes; switch agents in the session to change it.
- ACP usage updates now report the session's prompt-cache hits as cached read tokens.
- A tool output past about 16,000 characters is saved to a file, and the model sees its start and end instead of only its start.
- A bash command that times out returns what it printed, and the default timeout is now 120 seconds, up to 300 when asked.
tools.bash.default_timeoutandmax_timeout_secondsare unset unless set inconfig.toml; the native shell tools still default to 300 seconds, at most 600 or the default when that is longer.- A shell tool's
default_timeoutabove itsmax_timeout_secondsis now a config error naming both, instead of being lowered to the maximum. read_filereports the file's line count and where to read on, and an offset past the end is an error.read_fileon a directory lists its entries, up to 500 at a time, instead of failing.read_fileand file mentions return up to 64,000 bytes a call instead of 51,200, the same as the Agents SDK.- On Linux, a command that runs the machine out of memory is the first process the kernel stops, before Vibe itself.
- A shell's login profile runs before a session's first command and outside its timeout, and one that fails or takes over 10 seconds is skipped with a warning.
- Bash commands can call the functions and aliases the login profile defines, for bash and zsh, and a change to a profile file is picked up by the next command.
- Vibe now supports Python 3.12 and later instead of requiring Python 3.14.
- All Vibe skill descriptions now support up to 1,024 characters.
Fixed
- Background process results from the app server keep their process ID and exit code.
- A model response kept open by keepalives without sending any data now times out after
api_timeoutinstead of hanging the session. - An unparseable
VIBE_*environment variable such asVIBE_MODELSis now ignored and logged instead of stopping Vibe at startup. - Sessions now record the agent they run on, so a session started with
--agentreopens on that agent. - Code the agent runs with
run_typescriptnow sees an MCP or connector tool's own error text instead of a generic message. - A failed /clear keeps the conversation on screen, and failed /clear and rewind requests show the server's reason.
- Picking a model your administrator enforces explains why the model does not change.
- Resuming a session from the picker restores its queued prompts.
- A malformed background-process call now fails that tool call instead of ending the session.
- When you have not chosen a model, a new session's first message now waits up to 5 seconds for the model assigned to your account.
- Editors that sign in on every connection over ACP, such as CodeCompanion.nvim, no longer open a browser sign-in page when Vibe already has an API key for that console.
- With
enable_system_trust_store = trueinconfig.toml, prompts now also use the operating system's certificates, so they work behind corporate proxies that only the OS trusts. - Turns no longer fail when the model announces a tool call but sends none, or sends one without a name; Vibe retries once or ends the turn cleanly instead.
- The welcome banner text no longer shifts when you switch to or from a Mistral Large model.
- Connectors that need no login, such as DeepWiki, now show as
not connectedin/mcpinstead oferror - try refreshing, and pressing Enter connects them without visiting the dashboard. - The CLI no longer hangs when it talks to an app-server that has already exited, such as after cancelling setup during a slow startup
- Hovering a subagent row with the ansi-dark theme no longer turns its text black on black
- Clicking a hovered subagent row no longer flashes the highlight back to the previous row
- Installs and launches through uv now force a GIL-enabled build of Python, fixing failures on machines with a free-threaded (no-GIL) Python 3.14 installed.
- Compaction no longer fails when a provider's cache repeats a malformed summary, or spends its whole output budget reasoning; Vibe falls back to a simpler request instead.
- An answer cut off at the output-token limit no longer ends the turn at once: it is discarded and asked for again with feedback, up to 6 times a turn.
- A tool call cut off at the output-token limit, such as a large file write, is asked for again in smaller pieces instead of failing with a JSON error.
- Tool argument errors now name the field at fault, the allowed fields and the one the model most likely meant.
- A failed edit now shows the closest matching text in the file, or the lines where a repeated match occurs.
- Requests to a model with a declared
max_context_lengthno longer overflow its window: the output cap is clipped to the room the input leaves, less a 4096-token reserve. - Bash commands no longer lose
PATHentries that a login profile resets, and the profile runs once per session. - Bash commands still run after a command deleted
/dev/null. - The git context names the repository's default branch instead of always
main, and no longer hedges the instructions a session starts with. - In a sandbox, the git context is read in one round trip, and no longer times out on a slow sandbox.
- Cached input tokens now reach the session's token usage and runtime stats, so
vibe -preports and prices them - Plugins that set a
displayNamein theirai.mistral.vibeextension now load their knowledge, hooks, agents and tool namespace instead of reporting an extension error. vibe -pexits only once its app-server has, and on Linux a killedvibe -porvibe run-servertakes its app-servers down with itvibe -p
…