opencode-schema.json 7.9 KB

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