Mistral released coding agent Vibe 3.1.1, enabling automatic edits to or blocking of user messages before they reach the model. It also adds automation at conversation start and end, and refines reopening and branching conversations for developers switching between tasks.

1. Hooks that intervene before the model reads a message

The release centers on the pre_agent hook, which runs before the model reads a user message. A hook connects a separate task to a specific point in the workflow. According to the release notes, this hook can block or rewrite messages and add context for the model.

Tasks such as input checks or adding shared guidance can be integrated into the agent flow before the model responds. Instead of manually appending the same guidance to every message, it can be added automatically just before delivery to the model.

The session_start hook runs when a session starts, resumes, resets, or branches, and can add context for the next message. This delivers session-specific background information as part of the conversation startup flow.

The session_end hook runs in the background when a session ends. End reasons distinguish between program exit, conversation reset, and other cases.

The notification hook runs in the background when approval or input is needed, or when a model response turn finishes or fails. This separates end-of-conversation automation from notifications during a response.

2. Importing other agents' settings and tracking command execution

The built-in /vibe:import feature finds other coding agents' settings and imports instructions, skills, subagents, commands, hooks, MCP servers, and permissions into Vibe. MCP is a protocol for connecting external tools. This reduces manual migration work and lets users continue using existing settings in Vibe.

Commands run by Vibe receive VIBE_SESSION=1 in their environment. Scripts can check this value to determine whether a command is running inside Vibe.

In non-interactive mode, denied tool calls are logged to standard error, a separate channel for program diagnostics, and to warnings in exported output. An agent finishing without an answer is also reported to standard error.

3. Improved session resumption and branching

Session IDs shown by vibe --resume now use the last 8 characters, while older sessions still resume using the first 8 characters. Reopened sessions retain the last model and agent used rather than adopting the current defaults.

The /branch command can branch a conversation even while the agent is running. The new conversation uses the state from before the current response turn began, and the command to resume the copy appears in a separate panel rather than in the conversation. If a rewind or branch is denied, the reason is now shown, such as a running background process or subagent. Background processes are programs running as separate tasks, while subagents are helper agents assigned parts of the work.

The /clear command starts a fresh conversation without scheduled instructions. Schedules from the previous session remain there and run when that session is reopened.

Starting a new session with automatic approval uses the auto-approve agent, which is retained when the session resumes. During execution, Shift+Tab can switch to another agent to leave automatic approval mode.

4. Convenience features and operational trade-offs

Session pull requests, which ask for code changes to be reviewed and applied, and merge requests, which ask for code changes to be merged, are tracked by default with gh or glab. A bottom status link opens the list and refreshes statuses, making it easier to view task and request progress in one place. Tracking can be disabled in settings.

Checking request status in the conversation view and leaving cleanup to hooks adds convenience. However, when Vibe exits, it waits up to 5 seconds for notification and session_end hooks that are still running.

On macOS and Linux, processes launched with & inside a bash command or hook are also stopped when that command or hook ends. Long-running commands therefore need to use the separate background process feature.

Vibe 3.1.1 focuses on automating the start and end of conversations and refining continuity of the last model, agent, and conversation state when switching between tasks.