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