1{
2 "$schema": "http://json-schema.org/draft-07/schema#",
3 "definitions": {
4 "agent": {
5 "description": "Agent configuration",
6 "properties": {
7 "maxTokens": {
8 "description": "Maximum tokens for the agent",
9 "minimum": 1,
10 "type": "integer"
11 },
12 "model": {
13 "description": "Model ID for the agent",
14 "enum": [
15 "grok-3-fast-beta",
16 "claude-3-opus",
17 "gemini-2.5",
18 "openrouter.claude-3-haiku",
19 "grok-3-beta",
20 "gpt-4.1",
21 "azure.gpt-4o-mini",
22 "openrouter.gpt-4o",
23 "openrouter.o4-mini",
24 "openrouter.o1-pro",
25 "gpt-4.1-nano",
26 "azure.gpt-4.5-preview",
27 "openrouter.gpt-4o-mini",
28 "claude-3.5-sonnet",
29 "claude-3-haiku",
30 "qwen-qwq",
31 "openrouter.claude-3.7-sonnet",
32 "gemini-2.5-flash",
33 "azure.o4-mini",
34 "openrouter.gpt-4.1-mini",
35 "gpt-4o",
36 "openrouter.gemini-2.5",
37 "gpt-4.1-mini",
38 "azure.gpt-4.1",
39 "azure.o1-mini",
40 "o1-pro",
41 "claude-3.7-sonnet",
42 "o3",
43 "gpt-4.5-preview",
44 "azure.o3-mini",
45 "grok-3-mini-beta",
46 "openrouter.o1-mini",
47 "meta-llama/llama-4-scout-17b-16e-instruct",
48 "azure.o1",
49 "openrouter.gemini-2.5-flash",
50 "openrouter.claude-3-opus",
51 "o1-mini",
52 "gemini-2.0-flash",
53 "openrouter.gpt-4.1",
54 "openrouter.claude-3.5-haiku",
55 "deepseek-r1-distill-llama-70b",
56 "claude-3.5-haiku",
57 "o3-mini",
58 "llama-3.3-70b-versatile",
59 "azure.gpt-4.1-nano",
60 "openrouter.gpt-4.5-preview",
61 "gemini-2.0-flash-lite",
62 "azure.gpt-4o",
63 "openrouter.o3-mini",
64 "openrouter.o1",
65 "openrouter.gpt-4.1-nano",
66 "grok-3-mini-fast-beta",
67 "vertexai.gemini-2.5-flash",
68 "o4-mini",
69 "azure.o3",
70 "azure.gpt-4.1-mini",
71 "openrouter.o3",
72 "gpt-4o-mini",
73 "o1",
74 "vertexai.gemini-2.5",
75 "bedrock.claude-3.7-sonnet",
76 "meta-llama/llama-4-maverick-17b-128e-instruct",
77 "openrouter.claude-3.5-sonnet"
78 ],
79 "type": "string"
80 },
81 "reasoningEffort": {
82 "description": "Reasoning effort for models that support it (OpenAI, Anthropic)",
83 "enum": [
84 "low",
85 "medium",
86 "high"
87 ],
88 "type": "string"
89 }
90 },
91 "required": [
92 "model"
93 ],
94 "type": "object"
95 }
96 },
97 "description": "Configuration schema for the OpenCode application",
98 "properties": {
99 "agents": {
100 "additionalProperties": {
101 "description": "Agent configuration",
102 "properties": {
103 "maxTokens": {
104 "description": "Maximum tokens for the agent",
105 "minimum": 1,
106 "type": "integer"
107 },
108 "model": {
109 "description": "Model ID for the agent",
110 "enum": [
111 "grok-3-fast-beta",
112 "claude-3-opus",
113 "gemini-2.5",
114 "openrouter.claude-3-haiku",
115 "grok-3-beta",
116 "gpt-4.1",
117 "azure.gpt-4o-mini",
118 "openrouter.gpt-4o",
119 "openrouter.o4-mini",
120 "openrouter.o1-pro",
121 "gpt-4.1-nano",
122 "azure.gpt-4.5-preview",
123 "openrouter.gpt-4o-mini",
124 "claude-3.5-sonnet",
125 "claude-3-haiku",
126 "qwen-qwq",
127 "openrouter.claude-3.7-sonnet",
128 "gemini-2.5-flash",
129 "azure.o4-mini",
130 "openrouter.gpt-4.1-mini",
131 "gpt-4o",
132 "openrouter.gemini-2.5",
133 "gpt-4.1-mini",
134 "azure.gpt-4.1",
135 "azure.o1-mini",
136 "o1-pro",
137 "claude-3.7-sonnet",
138 "o3",
139 "gpt-4.5-preview",
140 "azure.o3-mini",
141 "grok-3-mini-beta",
142 "openrouter.o1-mini",
143 "meta-llama/llama-4-scout-17b-16e-instruct",
144 "azure.o1",
145 "openrouter.gemini-2.5-flash",
146 "openrouter.claude-3-opus",
147 "o1-mini",
148 "gemini-2.0-flash",
149 "openrouter.gpt-4.1",
150 "openrouter.claude-3.5-haiku",
151 "deepseek-r1-distill-llama-70b",
152 "claude-3.5-haiku",
153 "o3-mini",
154 "llama-3.3-70b-versatile",
155 "azure.gpt-4.1-nano",
156 "openrouter.gpt-4.5-preview",
157 "gemini-2.0-flash-lite",
158 "azure.gpt-4o",
159 "openrouter.o3-mini",
160 "openrouter.o1",
161 "openrouter.gpt-4.1-nano",
162 "grok-3-mini-fast-beta",
163 "vertexai.gemini-2.5-flash",
164 "o4-mini",
165 "azure.o3",
166 "azure.gpt-4.1-mini",
167 "openrouter.o3",
168 "gpt-4o-mini",
169 "o1",
170 "vertexai.gemini-2.5",
171 "bedrock.claude-3.7-sonnet",
172 "meta-llama/llama-4-maverick-17b-128e-instruct",
173 "openrouter.claude-3.5-sonnet"
174 ],
175 "type": "string"
176 },
177 "reasoningEffort": {
178 "description": "Reasoning effort for models that support it (OpenAI, Anthropic)",
179 "enum": [
180 "low",
181 "medium",
182 "high"
183 ],
184 "type": "string"
185 }
186 },
187 "required": [
188 "model"
189 ],
190 "type": "object"
191 },
192 "description": "Agent configurations",
193 "properties": {
194 "coder": {
195 "$ref": "#/definitions/agent"
196 },
197 "task": {
198 "$ref": "#/definitions/agent"
199 },
200 "title": {
201 "$ref": "#/definitions/agent"
202 }
203 },
204 "type": "object"
205 },
206 "contextPaths": {
207 "default": [
208 ".github/copilot-instructions.md",
209 ".cursorrules",
210 ".cursor/rules/",
211 "CLAUDE.md",
212 "CLAUDE.local.md",
213 "opencode.md",
214 "opencode.local.md",
215 "OpenCode.md",
216 "OpenCode.local.md",
217 "OPENCODE.md",
218 "OPENCODE.local.md"
219 ],
220 "description": "Context paths for the application",
221 "items": {
222 "type": "string"
223 },
224 "type": "array"
225 },
226 "data": {
227 "description": "Storage configuration",
228 "properties": {
229 "directory": {
230 "default": ".opencode",
231 "description": "Directory where application data is stored",
232 "type": "string"
233 }
234 },
235 "required": [
236 "directory"
237 ],
238 "type": "object"
239 },
240 "debug": {
241 "default": false,
242 "description": "Enable debug mode",
243 "type": "boolean"
244 },
245 "debugLSP": {
246 "default": false,
247 "description": "Enable LSP debug mode",
248 "type": "boolean"
249 },
250 "lsp": {
251 "additionalProperties": {
252 "description": "LSP configuration for a language",
253 "properties": {
254 "args": {
255 "description": "Command arguments for the LSP server",
256 "items": {
257 "type": "string"
258 },
259 "type": "array"
260 },
261 "command": {
262 "description": "Command to execute for the LSP server",
263 "type": "string"
264 },
265 "disabled": {
266 "default": false,
267 "description": "Whether the LSP is disabled",
268 "type": "boolean"
269 },
270 "options": {
271 "description": "Additional options for the LSP server",
272 "type": "object"
273 }
274 },
275 "required": [
276 "command"
277 ],
278 "type": "object"
279 },
280 "description": "Language Server Protocol configurations",
281 "type": "object"
282 },
283 "mcpServers": {
284 "additionalProperties": {
285 "description": "MCP server configuration",
286 "properties": {
287 "args": {
288 "description": "Command arguments for the MCP server",
289 "items": {
290 "type": "string"
291 },
292 "type": "array"
293 },
294 "command": {
295 "description": "Command to execute for the MCP server",
296 "type": "string"
297 },
298 "env": {
299 "description": "Environment variables for the MCP server",
300 "items": {
301 "type": "string"
302 },
303 "type": "array"
304 },
305 "headers": {
306 "additionalProperties": {
307 "type": "string"
308 },
309 "description": "HTTP headers for SSE type MCP servers",
310 "type": "object"
311 },
312 "type": {
313 "default": "stdio",
314 "description": "Type of MCP server",
315 "enum": [
316 "stdio",
317 "sse"
318 ],
319 "type": "string"
320 },
321 "url": {
322 "description": "URL for SSE type MCP servers",
323 "type": "string"
324 }
325 },
326 "required": [
327 "command"
328 ],
329 "type": "object"
330 },
331 "description": "Model Control Protocol server configurations",
332 "type": "object"
333 },
334 "providers": {
335 "additionalProperties": {
336 "description": "Provider configuration",
337 "properties": {
338 "apiKey": {
339 "description": "API key for the provider",
340 "type": "string"
341 },
342 "disabled": {
343 "default": false,
344 "description": "Whether the provider is disabled",
345 "type": "boolean"
346 },
347 "provider": {
348 "description": "Provider type",
349 "enum": [
350 "anthropic",
351 "openai",
352 "gemini",
353 "groq",
354 "openrouter",
355 "bedrock",
356 "azure",
357 "vertexai"
358 ],
359 "type": "string"
360 }
361 },
362 "type": "object"
363 },
364 "description": "LLM provider configurations",
365 "type": "object"
366 },
367 "tui": {
368 "description": "Terminal User Interface configuration",
369 "properties": {
370 "theme": {
371 "default": "opencode",
372 "description": "TUI theme name",
373 "enum": [
374 "opencode",
375 "catppuccin",
376 "dracula",
377 "flexoki",
378 "gruvbox",
379 "monokai",
380 "onedark",
381 "tokyonight",
382 "tron"
383 ],
384 "type": "string"
385 }
386 },
387 "type": "object"
388 },
389 "wd": {
390 "description": "Working directory for the application",
391 "type": "string"
392 }
393 },
394 "title": "OpenCode Configuration",
395 "type": "object"
396}