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.tomlAPI Key Configuration
Mistral API Key
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:
- 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/.envfor future sessions. - Environment Variables: Set your API key as an environment variable:
export MISTRAL_API_KEY="your_mistral_api_key" .envFile: Create a.envfile in~/.vibe/and add your API keys:Vibe automatically loads API keys fromMISTRAL_API_KEY=your_mistral_api_key~/.vibe/.envon startup. Environment variables take precedence over the.envfile if both are set.
The .env file is specifically for API keys and other provider credentials. General Vibe configuration should be done in config.toml.
Customize Behaviour
Custom System Prompts and Agent Configurations
You can customize Vibe's behavior by modifying prompts and agent configurations.
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
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_agentVibe 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"This implies that you have set up a redteam prompt named ~/.vibe/prompts/redteam.md.
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_modelin 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
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 transportstreamable-http: HTTP transport with streaming supportstdio: Standard input/output transport (for local processes) Key fields:name: A short alias for the server (used in tool names)transport: The transport typeurl: Base URL for HTTP transportsheaders: Additional HTTP headersapi_key_env: Environment variable containing the API keycommand: Command to run for stdio transportargs: 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
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"]- MCP tool names use underscores, e.g.,
serena_listnotserena.list. - Regex patterns are matched against the full tool name using fullmatch.
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 keysagents/- Custom agent configurationsprompts/- Custom system promptstools/- Custom toolslogs/- Session logs
To run code, enable code execution and file creation in Settings > Capabilities.