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