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