[Mistral Vibe]

Configuration

Vibe is configured via a config.toml file. It looks for this file first in ./.vibe/config.toml and then falls back to ~/.vibe/config.toml. For ~/.vibe/config.toml, you can open the configuration file with, for example:

open ~/.vibe/config.toml
API Key Configuration

API Key Configuration

Mistral API Key

tip

You can get your Mistral API key from here.
Devstral 2 is currently free to use; create an account with either the Experiment or Scale Up (recommended) plan, and you will be free to use it with Mistral Vibe.

Vibe supports multiple ways to configure your API keys:

  1. Interactive Setup (Recommended for first-time users): When you run Vibe for the first time or if your API key is missing, Vibe will prompt you to enter it. The key will be securely saved to ~/.vibe/.env for future sessions.
  2. Environment Variables: Set your API key as an environment variable:
    export MISTRAL_API_KEY="your_mistral_api_key"
  3. .env File: Create a .env file in ~/.vibe/ and add your API keys:
    MISTRAL_API_KEY=your_mistral_api_key
    Vibe automatically loads API keys from ~/.vibe/.env on startup. Environment variables take precedence over the .env file if both are set.
note

The .env file is specifically for API keys and other provider credentials. General Vibe configuration should be done in config.toml.

Customize Behaviour

Customize Behaviour

Custom System Prompts and Agent Configurations

You can customize Vibe's behavior by modifying prompts and agent configurations.

Custom System Prompts

Custom System Prompts

You can create custom system prompts to replace the default one (prompts/cli.md). Create a markdown file in the ~/.vibe/prompts/ directory with your custom prompt content.

To use a custom system prompt, set the system_prompt_id in your configuration to match the filename (without the .md extension):

# Use a custom system prompt
system_prompt_id = "my_custom_prompt"

This will load the prompt from ~/.vibe/prompts/my_custom_prompt.md.

Custom Agent Configurations

Custom Agent Configurations

You can create custom agent configurations for specific use cases (e.g., red-teaming, specialized tasks) by adding agent-specific TOML files in the ~/.vibe/agents/ directory. To use a custom agent, run Vibe with the --agent flag:

vibe --agent my_custom_agent

Vibe will look for a file named my_custom_agent.toml in the agents directory and apply its configuration.

Example custom agent configuration (~/.vibe/agents/redteam.toml):

# Custom agent configuration for red-teaming
active_model = "devstral-2"
system_prompt_id = "redteam"
# Disable some tools for this agent
disabled_tools = ["search_replace", "write_file"]
# Override tool permissions for this agent
[tools.bash]
permission = "always"
[tools.read_file]
permission = "always"
note

This implies that you have set up a redteam prompt named ~/.vibe/prompts/redteam.md.

Change Providers and Models

Change Providers and Models

We allow users to change providers and models behind Vibe, for this you need to edit the config.toml file as follows:

  • Create a new Provider preset in the config file:
    [[providers]]
    name = "openrouter" # the name of the provider for the Vibe config
    api_base = "https://openrouter.ai/api/v1" # base url of the api
    api_key_env_var = "OPENROUTER_API_KEY" # env var to get the api key
    api_style = "openai"
    backend = "generic"
  • Create a new Model preset:
    [[models]]
    name = "mistralai/devstral-2512:free" # id name of the model in the api 
    provider = "openrouter" # name of the provider
    alias = "devstral-openrouter" # the alias for Vibe to use the model
    temperature = 0.2
    input_price = 0.0
    output_price = 0.0
  • Set the active_model in the config file to the alias:
    active_model =  "devstral-openrouter" # alias of the model to be used

Models created are also accessible via Vibe directly with the /config command, allowing you to change the model on the fly.

MCP Server Configuration

MCP Server Configuration

Configuring MCP Servers

You can configure MCP (Model Context Protocol) servers to extend Vibe's capabilities. Add MCP server configurations under the mcp_servers section:

# Example MCP server configurations
[[mcp_servers]]
name = "my_http_server"
transport = "http"
url = "http://localhost:8000"
headers = { "Authorization" = "Bearer my_token" }
api_key_env = "MY_API_KEY_ENV_VAR"
api_key_header = "Authorization"
api_key_format = "Bearer {token}"
[[mcp_servers]]
name = "my_streamable_server"
transport = "streamable-http"
url = "http://localhost:8001"
headers = { "X-API-Key" = "my_api_key" }
[[mcp_servers]]
name = "fetch_server"
transport = "stdio"
command = "uvx"
args = ["mcp-server-fetch"]

Supported transports:

  • http: Standard HTTP transport
  • streamable-http: HTTP transport with streaming support
  • stdio: Standard input/output transport (for local processes) Key fields:
  • name: A short alias for the server (used in tool names)
  • transport: The transport type
  • url: Base URL for HTTP transports
  • headers: Additional HTTP headers
  • api_key_env: Environment variable containing the API key
  • command: Command to run for stdio transport
  • args: Additional arguments for stdio transport

MCP tools are named using the pattern {server_name}_{tool_name} and can be configured with permissions like built-in tools:

# Configure permissions for specific MCP tools
[tools.fetch_server_get]
permission = "always"
[tools.my_http_server_query]
permission = "ask"
Enable/Disable Tools with Patterns

Enable/Disable Tools with Patterns

Controlling Tool Availability

You can control which tools are active using enabled_tools and disabled_tools. These fields support exact names, glob patterns, and regular expressions.

Examples:

# Only enable tools that start with "serena_" (glob)
enabled_tools = ["serena_*"]
# Regex (prefix with re:) — matches full tool name (case-insensitive)
enabled_tools = ["re:^serena_.*$"]
# Heuristic regex support (patterns like `serena.*` are treated as regex)
enabled_tools = ["serena.*"]
# Disable a group with glob; everything else stays enabled
disabled_tools = ["mcp_*", "grep"]
note
  • MCP tool names use underscores, e.g., serena_list not serena.list.
  • Regex patterns are matched against the full tool name using fullmatch.
Custom Vibe Home Directory

Custom Vibe Home Directory

Customize Home Directory

By default, Vibe stores its configuration in ~/.vibe/. You can override this by setting the VIBE_HOME environment variable:

export VIBE_HOME="/path/to/custom/vibe/home"

This affects where Vibe looks for:

  • config.toml - Main configuration
  • .env - API keys
  • agents/ - Custom agent configurations
  • prompts/ - Custom system prompts
  • tools/ - Custom tools
  • logs/ - Session logs

To run code, enable code execution and file creation in Settings > Capabilities.