1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
# VTCode Configuration
# Minimal configuration with only actively used settings
[]
# Provider to use: one of "gemini", "openai", "anthropic", "openrouter"
# API key environment variable is automatically inferred from provider
= "openrouter"
# Default model for single-agent mode
# Please also check router.models below if change default_model
= "x-ai/grok-4-fast:free"
# Chat UI surface: auto | alternate | inline
= "auto"
[]
# Model routing tiers consumed by vtcode-core::router
= "x-ai/grok-4-fast:free"
= "x-ai/grok-4-fast:free"
= "x-ai/grok-4-fast:free"
= "x-ai/grok-4-fast:free"
= "x-ai/grok-4-fast:free"
# Max conversation turns per session (prevents infinite loops)
= 150
# Reasoning effort for models that support it: "low" | "medium" | "high"
= "medium"
= true
[]
# Runloop guardrails enforced inside session_setup
= true
= true
= false
[]
# Full-auto safeguards consumed by ToolRegistry::enable_full_auto_mode
= false
= true
= "automation/full_auto_profile.toml"
[]
= "prompt"
= 100
[]
# File system tools safeguard workspace access
= "allow"
= "allow"
= "allow"
= "allow"
= "prompt"
= "allow"
= "allow"
= "deny"
# Static analysis helpers available without prompts
# Code analysis tools
= "allow"
= "allow"
# Build and format commands needed for Rust workflow
# Build and format commands needed for Rust workflow
# Build and test tools
= "allow"
= "prompt"
= "allow"
= "allow"
# Git inspection is safe; history mutation asks first
= "allow"
# Git tools
= "allow"
= "allow"
= "allow"
# Powerful refactor/search requires confirmation
# Powerful refactor/search requires confirmation
= "prompt"
= "prompt"
# Code modification tools
[]
# Quick inspection commands the agent can run freely
= ["ls", "pwd", "git status", "git diff", "cargo check", "echo"]
# Hard-stop list for destructive or high-risk invocations
= [
"rm -rf /",
"rm -rf ~",
"shutdown",
"reboot",
"sudo *",
":(){ :|:& };:",
]
# Pattern-based permissions for common workflows
= ["git *", "cargo *", "python -m *"]
= ["rm *", "sudo *", "chmod *", "chown *", "kubectl *"]
[]
# PTY defaults used by vtcode-core::tools::registry::pty
= true
= 24
= 80
= 10
= 300
= 20
[]
# Controls inline tool output rendering in vtcode-core::ui
= "compact"
# Show timeline navigation panel in inline UI (default false hides it)
= false
[]
# Local MCP transports; fine-grained allowlists live in .vtcode/tool-policy.json
# Local MCP clients executed via stdio transports
= true
[[]]
# Official Model Context Protocol time server
= "time"
= true
= "uvx"
= ["mcp-server-time"]
= 3
[[]]
# Upstash Context7 knowledge base over MCP
= "context7"
= true
= "npx"
= ["-y", "@upstash/context7-mcp@latest"]
= 3
[[]]
# Anthropic sequential thinking planner via MCP
= "sequential-thinking"
= true
= "npx"
= ["-y", "@modelcontextprotocol/server-sequential-thinking"]
= 3
# Example HTTP provider configuration
# Note: HTTP transport is partially implemented - basic connectivity testing is supported
# but full streamable HTTP MCP server support requires additional implementation
# [[mcp.providers]]
# name = "example-http"
# enabled = false
# command = "curl" # Not used for HTTP transport
# args = [] # Not used for HTTP transport
# [mcp.providers.transport.http]
# endpoint = "http://localhost:3000/mcp"
# api_key_env = "HTTP_API_KEY"
# protocol_version = "2024-11-05"
# headers = { "Content-Type" = "application/json", "User-Agent" = "vtcode-mcp-client" }
# max_concurrent_requests = 2