Configuration

The Vibe Code CLI is configured through a config.toml file. This page explains where the file lives, how to open it, and the most common settings you'll touch.

Configuration file locations

Configuration file locations

The CLI looks for config.toml in this order:

  1. ./.vibe/config.toml in the current working directory (project-level).
  2. ~/.vibe/config.toml in your home directory (user-level).

Project-level configuration takes precedence over user-level configuration. Project configuration is loaded only when the working directory is trusted.

Open your configuration file

Open your configuration file

Open ~/.vibe/config.toml with your default editor:

# macOS
open ~/.vibe/config.toml

# Linux
xdg-open ~/.vibe/config.toml

# Windows (PowerShell)
Invoke-Item ~\.vibe\config.toml

You can also open the configuration menu from inside a session with the /config slash command.

Vibe home directory

Vibe home directory

By default, the CLI stores its configuration and state in ~/.vibe/. Override the location with the VIBE_HOME environment variable:

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

VIBE_HOME affects the location of:

  • config.toml: main configuration.
  • .env: API keys and provider credentials.
  • agents/: custom agent profiles.
  • prompts/: custom system prompts.
  • skills/: custom skills.
  • tools/: custom tools.
  • logs/: session and application logs.
Working directory

Working directory

Use --workdir to point the CLI at a project that is not your current directory:

vibe --workdir /path/to/project

Use --add-dir to give the CLI read access to an extra directory for a single session.

Common configuration sections

Common configuration sections

config.toml accepts many top-level keys and table sections. The most common ones are listed here, each one linking to a dedicated page.

Default agent

Default agent

Set the default interactive agent:

default_agent = "plan"

This applies to interactive sessions only. Programmatic mode falls back to auto-approve when --agent is not provided. See Agents.

Providers and models

Providers and models

Define provider presets, model presets, and the active model:

active_model = "devstral-openrouter"

[[providers]]
name = "openrouter"
api_base = "https://openrouter.ai/api/v1"
api_key_env_var = "OPENROUTER_API_KEY"
api_style = "openai"
backend = "generic"

[[models]]
name = "mistralai/devstral-2512:free"
provider = "openrouter"
alias = "devstral-openrouter"

See API keys and profiles.

MCP servers

MCP servers

Add Model Context Protocol servers under mcp_servers. See MCP servers.

Skills

Skills

Enable, disable, or add skill paths:

skill_paths = ["/path/to/custom/skills"]
enabled_skills = ["code-review", "test-*"]
disabled_skills = ["experimental-*"]

enabled_skills and disabled_skills interact as follows:

  • If enabled_skills is set and non-empty, only skills whose name matches a pattern in that list are available.
  • Otherwise, every discovered skill is available, minus any skill whose name matches a pattern in disabled_skills.

See Skills.

Tool permissions and filters

Tool permissions and filters

Restrict which tools the agent can use:

enabled_tools = ["serena_*"]
disabled_tools = ["mcp_*", "grep"]

Tool filters support exact names, glob patterns, and regex with the re: prefix. Per-tool permissions can also be set in [tools.<tool_name>] blocks. See Safety, approvals, and permissions.

Update and telemetry settings

Update and telemetry settings

Control auto-updates, notifications, and telemetry:

enable_auto_update = true
enable_notifications = true
enable_telemetry = true
SettingDefaultDetails
enable_auto_updatetrueVibe checks for new releases and updates itself in the background. We strongly recommend keeping this enabled so you always run the latest fixes. You can also rerun the install script at any time to update manually.
enable_notificationstrueOS-level notifications when Vibe finishes a long-running task or needs your input (for example, when an approval prompt is waiting).
enable_telemetrytrueSends anonymous usage and error telemetry to Mistral. Used to improve the product (crash diagnostics, feature usage, performance). No prompts, file contents, or model outputs are sent. Disable if you require an offline-only setup.
Configuration precedence

Configuration precedence

When the same setting is defined in multiple places, the CLI applies them in this order, from highest to lowest priority:

  1. Command-line flags (for example, --agent, --workdir).
  2. Environment variables (for example, MISTRAL_API_KEY, VIBE_HOME).
  3. Project ./.vibe/config.toml.
  4. User ~/.vibe/config.toml.