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"

MCP Servers also support:

  • Environment variables: Set environment variables for MCP servers (stdio transport)
  • Custom timeouts: Configure startup and tool execution timeouts
  • Enhanced security: Better API key handling

Example with environment variables and timeouts:

[[mcp_servers]]
name = "my_server"
transport = "http"
url = "http://localhost:8000"
env = { "DEBUG" = "1", "LOG_LEVEL" = "info" }
startup_timeout_sec = 15
tool_timeout_sec = 120
Session Management

Session Management

Session Continuation and Resumption

Vibe supports continuing from previous sessions:

  • --continue or -c: Continue from the most recent saved session
  • --resume SESSION_ID: Resume a specific session by ID (supports partial matching)
# Continue from last session
vibe --continue

# Resume specific session
vibe --resume abc123

Session logging is required for these features to work, it's enabled by default.

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 even regular expressions with a re: prefix.

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_.*$"]

# 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.

Working Directory Control

Working Directory Control

Define a Working Directory

Use the --workdir option to specify a working directory:

vibe --workdir /path/to/project

This is useful when you want to run Vibe from a different location than your current directory.

Trust Folder System

Trust Folder System

Manage which folders you trust

Vibe includes a trust folder system to ensure you only run the agent in directories you trust. When you first run Vibe in a new directory, it may ask you to confirm whether you trust the folder.

Trusted folders are remembered for future sessions. You can manage trusted folders through its configuration file ~/.vibe/trusted_folders.toml.

This safety feature helps prevent accidental execution in sensitive directories.

Update Settings

Update Settings

Auto-Update

Vibe includes an automatic update feature that keeps your installation current. This is enabled by default.

To disable auto-updates, add this to your config.toml:

enable_auto_update = false