vtcode 0.55.1

A Rust-based terminal coding agent with modular architecture supporting multiple LLM providers
# VT Code Minimal Configuration File
# Essential configuration options only

[agent]
# Primary LLM provider to use (e.g., "openai", "gemini", "anthropic", "openrouter")
provider = "ollama"

# Environment variable containing the API key for the provider
api_key_env = "OLLAMA_API_KEY"

# Default model to use when no specific model is specified
default_model = "nemotron-3-nano:30b-cloud"

# Visual theme for the terminal interface
theme = "vitesse-dark"

# Temperature for main LLM responses (0.0-1.0)
# Lower values = more deterministic, higher values = more creative
temperature = 0.7

# UI surface to use ("auto", "alternate", "inline")
ui_surface = "auto"

# Maximum number of conversation turns before rotating context (affects memory usage)
max_conversation_turns = 80

# Reasoning effort level ("none", "minimal", "low", "medium", "high") - affects model usage and response speed
reasoning_effort = "medium"

# Tool security configuration
[tools]
# Default policy when no specific policy is defined ("allow", "prompt", "deny")
# "allow" - Execute without confirmation
# "prompt" - Ask for confirmation
# "deny" - Block the tool
default_policy = "prompt"

# Maximum number of tool loops allowed per turn (prevents infinite loops)
max_tool_loops = 50

# Security configuration
[security]
# Require human confirmation for potentially dangerous actions
human_in_the_loop = true

# UI configuration
[ui]
# Tool output display mode
tool_output_mode = "compact"

# Maximum number of lines to display in tool output (prevents transcript flooding)
tool_output_max_lines = 50

# Status line configuration
[ui.status_line]
mode = "Command"
command = "./.vtcode/statusline/statusline.sh"
refresh_interval_ms = 1000
command_timeout_ms = 200

# PTY (Pseudo Terminal) configuration
[pty]
enabled = true
default_rows = 24
default_cols = 120
max_sessions = 10
command_timeout_seconds = 3600

# Timeouts
[timeouts]
# Maximum duration for standard (non-PTY) tools in seconds
default_ceiling_seconds = 180
# Maximum duration for PTY-backed commands in seconds
pty_ceiling_seconds = 300
# Maximum duration for streaming API responses in seconds
streaming_ceiling_seconds = 600

# Lifecycle hooks - Execute shell commands in response to agent events
# For documentation and examples, see: docs/guides/lifecycle-hooks.md
[hooks.lifecycle]
# Pre-tool use hooks - Run before tools execute, can block or validate
# pre_tool_use = [
#   # Example: Block modifications to sensitive files
#   {
#     matcher = "Edit|Write",
#     hooks = [
#       {
#         command = "$VT_PROJECT_DIR/.vtcode/hooks/file_protection.py",
#         timeout_seconds = 10
#       }
#     ]
#   },
#   # Example: Log bash command execution
#   {
#     matcher = "Bash",
#     hooks = [
#       {
#         command = "$VT_PROJECT_DIR/.vtcode/hooks/log-bash-commands.sh",
#         timeout_seconds = 5
#       }
#     ]
#   }
# ]

# # Post-tool use hooks - Run after tools execute successfully
# post_tool_use = [
#   # Example: Run formatters after file modifications
#   {
#     matcher = "Write|Edit",
#     hooks = [
#       {
#         command = "$VT_PROJECT_DIR/.vtcode/hooks/code_formatter.sh"
#       }
#     ]
#   },
#   # Example: Format markdown files after editing
#   {
#     matcher = "Write|Edit",
#     hooks = [
#       {
#         command = "$VT_PROJECT_DIR/.vtcode/hooks/markdown_formatter.py"
#       }
#     ]
#   }
# ]

# # User prompt submit hooks - Run when user submits a prompt
# user_prompt_submit = [
#   # Example: Send notification when user submits a prompt
#   {
#     hooks = [
#       {
#         command = "$VT_PROJECT_DIR/.vtcode/hooks/notification.sh",
#         timeout_seconds = 5
#       }
#     ]
#   }
# ]

# # Session start hooks - Run when a session begins
# session_start = [
#   # Example: Send notification when session starts
#   {
#     hooks = [
#       {
#         command = "$VT_PROJECT_DIR/.vtcode/hooks/notification.sh"
#       }
#     ]
#   }
# ]

# # Session end hooks - Run when a session ends
# session_end = [
#   # Example: Send notification when session ends
#   {
#     hooks = [
#       {
#         command = "$VT_PROJECT_DIR/.vtcode/hooks/notification.sh"
#       }
#     ]
#   }
# ]