opencode-schema.json 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322
  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. }