VMPilot Configuration Guide
Overview
VMPilot features a flexible configuration system that allows you to customize your environment, LLM providers, and model parameters. This guide explains all available configuration options and how to set them up.
VMPilot also supports project-specific configuration through the .vmpilot
directory structure. See the Project Plugin documentation for details on how to set up and customize project-specific settings.
Applying Configuration Changes
After modifying the config.ini
file, you must restart the VMPilot server for the changes to take effect.
Docker Install: Configuration File Location
For Docker installations, assuming you are using the default volume setup, the configuration file is located at /var/lib/docker/volumes/vmpilot_config/_data/config.ini
To apply changes, restart the VMPilot container:
Bash | |
---|---|
Manual Install: Configuration File Priority
VMPilot searches for configuration files in the following order:
- Custom path specified in
VMPILOT_CONFIG
environment variable ./config.ini
in the project directoryconfig.ini
in the current working directory~/.config/vmpilot/config.ini
The first configuration file found will be used.
To apply changes, restart the VMPilot server:
Bash | |
---|---|
Configuration Sections
The config.ini
file is organized into the following sections:
General Settings [general]
Setting | Description | Default |
---|---|---|
default_provider | Primary LLM provider (anthropic/openai) | anthropic |
default_project | Default project directory for git operations and file access | ~/vmpilot |
tool_output_lines | Number of lines shown in tool output | 15 |
pricing_display | Controls how pricing information is displayed (disabled, total_only, or detailed) | detailed |
Note: The
default_project
setting is used when no workspace-specific project is defined. For multi-branch development, you can override this by setting$PROJECT_ROOT=/path/to/project
in each workspace's system prompt. When a project directory is set, VMPilot will check for the.vmpilot/prompts/project.md
file and include it in the system prompt. See Multi-Branch Development and Project Plugin for details.
Pricing Settings [pricing]
Setting | Description | Default |
---|---|---|
claude_input_price | Claude 3.7 Sonnet input cost per million tokens (MTok) | 3.00 |
claude_output_price | Claude 3.7 Sonnet output cost per million tokens (MTok) | 15.00 |
claude_cache_creation_price | Claude 3.7 Sonnet cache creation cost per million tokens (MTok) | 3.75 |
claude_cache_read_price | Claude 3.7 Sonnet cache read cost per million tokens (MTok) | 0.30 |
Note: The pricing values should be updated if Claude's pricing model changes. These values reflect the pricing as of March 2025.
Model Settings [model]
Setting | Description | Default |
---|---|---|
recursion_limit | Maximum recursive steps allowed | 25 |
Inference Settings [inference]
Setting | Description | Default |
---|---|---|
temperature | Model creativity (0.0-1.0) | 0.7 |
max_tokens | Maximum response length | 2000 |
Provider Settings [anthropic] / [openai]
Setting | Description | Example |
---|---|---|
default_model | Default model name | claude-3.5 Sonnet |
api_key_path | Path to API key file | ~/.anthropic_key |
api_key_env | API key environment variable | ANTHROPIC_API_KEY |
beta_flags | Optional beta features (key:value pairs) | feature1:on,feature2:off |
Git Settings [git]
Setting | Description | Default |
---|---|---|
enabled | Enable or disable Git tracking | true |
dirty_repo_action | Action when repository has uncommitted changes (stop, stash) | stash |
auto_commit | Automatically commit changes after each exchange | true |
commit_message_style | Style of generated commit messages (short, detailed, bullet_points) | bullet_points |
model | Model used for commit message generation | claude-3-7-sonnet-latest |
provider | Provider for commit message generation (anthropic, openai) | anthropic |
temperature | Temperature for commit message generation (0.0-1.0) | 0.7 |
commit_prefix | Prefix added to all commit messages | [VMPilot] |
author | Author name and email for Git commits | VMPilot vmpilot@example.com |
Database Settings
Setting | Description | Default |
---|---|---|
enabled | Enable or disable database persistence for conversations | false |
path | Path to SQLite database file | /app/data/vmpilot.db |
Example Configuration
Database Settings [database]
Setting | Description | Default |
---|---|---|
enabled | Enable or disable database persistence for conversations | false |
path | Path to SQLite database file | /app/data/vmpilot.db |
Note: When database persistence is enabled, VMPilot stores all conversations in a SQLite database, allowing chat history to persist across server restarts. This is particularly useful for maintaining context in long-running development sessions and supporting the CLI's chat mode with the
-c
flag across multiple invocations. For Docker installations, the database is stored in thevmpilot_data
volume by default.
Environment Variables
- VMPILOT_CONFIG: Optional path to configuration file
- Provider-specific API key variables (as specified in config.ini)