opencode-schema.json

  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}