| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250 |
- {
- "$schema": "https://json-schema.org/draft/2020-12/schema",
- "type": "object",
- "properties": {
- "preset": {
- "type": "string"
- },
- "setDefaultAgent": {
- "type": "boolean"
- },
- "compactSidebar": {
- "description": "Use the compact TUI sidebar layout. Defaults to true; set false to use the expanded layout.",
- "type": "boolean"
- },
- "stripOrchestratorModel": {
- "description": "When true, omit orchestrator.model and orchestrator.variant from the SDK config so OpenCode uses the session model selected with /model after subagent dispatch. An explicitly selected preset that sets orchestrator.model is preserved. Defaults to false.",
- "type": "boolean"
- },
- "autoUpdate": {
- "description": "Disable automatic installation of plugin updates when false. Defaults to true.",
- "type": "boolean"
- },
- "presets": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "object",
- "properties": {
- "model": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "minItems": 1,
- "type": "array",
- "items": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "variant": {
- "type": "string"
- }
- },
- "required": [
- "id"
- ]
- }
- ]
- }
- }
- ]
- },
- "temperature": {
- "type": "number",
- "minimum": 0,
- "maximum": 2
- },
- "variant": {
- "type": "string"
- },
- "skills": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "mcps": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "prompt": {
- "type": "string",
- "minLength": 1
- },
- "orchestratorPrompt": {
- "type": "string",
- "minLength": 1
- },
- "options": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {}
- },
- "displayName": {
- "type": "string",
- "minLength": 1
- },
- "permission": {
- "anyOf": [
- {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- },
- {
- "type": "object",
- "properties": {
- "read": {
- "anyOf": [
- {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- },
- {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- }
- }
- ]
- },
- "edit": {
- "anyOf": [
- {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- },
- {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- }
- }
- ]
- },
- "glob": {
- "anyOf": [
- {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- },
- {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- }
- }
- ]
- },
- "grep": {
- "anyOf": [
- {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- },
- {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- }
- }
- ]
- },
- "list": {
- "anyOf": [
- {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- },
- {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- }
- }
- ]
- },
- "bash": {
- "anyOf": [
- {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- },
- {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- }
- }
- ]
- },
- "task": {
- "anyOf": [
- {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- },
- {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- }
- }
- ]
- },
- "external_directory": {
- "anyOf": [
- {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- },
- {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- }
- }
- ]
- },
- "lsp": {
- "anyOf": [
- {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- },
- {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- }
- }
- ]
- },
- "skill": {
- "anyOf": [
- {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- },
- {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- }
- }
- ]
- },
- "todowrite": {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- },
- "question": {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- },
- "webfetch": {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- },
- "websearch": {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- },
- "codesearch": {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- },
- "doom_loop": {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- }
- },
- "additionalProperties": {
- "anyOf": [
- {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- },
- {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- }
- }
- ]
- }
- }
- ]
- }
- },
- "additionalProperties": false
- }
- }
- },
- "agents": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "object",
- "properties": {
- "model": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "minItems": 1,
- "type": "array",
- "items": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "object",
- "properties": {
- "id": {
- "type": "string"
- },
- "variant": {
- "type": "string"
- }
- },
- "required": [
- "id"
- ]
- }
- ]
- }
- }
- ]
- },
- "temperature": {
- "type": "number",
- "minimum": 0,
- "maximum": 2
- },
- "variant": {
- "type": "string"
- },
- "skills": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "mcps": {
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "prompt": {
- "type": "string",
- "minLength": 1
- },
- "orchestratorPrompt": {
- "type": "string",
- "minLength": 1
- },
- "options": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {}
- },
- "displayName": {
- "type": "string",
- "minLength": 1
- },
- "permission": {
- "anyOf": [
- {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- },
- {
- "type": "object",
- "properties": {
- "read": {
- "anyOf": [
- {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- },
- {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- }
- }
- ]
- },
- "edit": {
- "anyOf": [
- {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- },
- {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- }
- }
- ]
- },
- "glob": {
- "anyOf": [
- {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- },
- {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- }
- }
- ]
- },
- "grep": {
- "anyOf": [
- {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- },
- {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- }
- }
- ]
- },
- "list": {
- "anyOf": [
- {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- },
- {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- }
- }
- ]
- },
- "bash": {
- "anyOf": [
- {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- },
- {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- }
- }
- ]
- },
- "task": {
- "anyOf": [
- {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- },
- {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- }
- }
- ]
- },
- "external_directory": {
- "anyOf": [
- {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- },
- {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- }
- }
- ]
- },
- "lsp": {
- "anyOf": [
- {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- },
- {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- }
- }
- ]
- },
- "skill": {
- "anyOf": [
- {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- },
- {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- }
- }
- ]
- },
- "todowrite": {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- },
- "question": {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- },
- "webfetch": {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- },
- "websearch": {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- },
- "codesearch": {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- },
- "doom_loop": {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- }
- },
- "additionalProperties": {
- "anyOf": [
- {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- },
- {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "deny"
- ]
- }
- }
- ]
- }
- }
- ]
- }
- },
- "additionalProperties": false
- }
- },
- "disabled_agents": {
- "description": "Agent names to disable completely. Disabled agents are not instantiated and cannot be delegated to. Orchestrator and council internal agents (councillor) cannot be disabled. By default, 'observer' is disabled. Remove it from this list and configure a vision-capable model to enable.",
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "image_routing": {
- "description": "How image attachments are handled. When omitted, preserves legacy conditional behavior: intercept attachments only when observer is enabled. \"auto\": requires observer to be enabled and saves attachments to disk before nudging delegation to @observer. \"direct\": always passes attachments to the orchestrator untouched.",
- "type": "string",
- "enum": [
- "auto",
- "direct"
- ]
- },
- "disabled_mcps": {
- "description": "MCP server names to disable completely. Disabled servers are not started and cannot be used by agents.",
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "disabled_tools": {
- "description": "Tool names to disable completely. Disabled tools are not registered with OpenCode and cannot be used by agents.",
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "disabled_skills": {
- "description": "Skill names to disable completely. Disabled skills are not granted to agents, even when referenced by presets or agent overrides.",
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "multiplexer": {
- "type": "object",
- "properties": {
- "type": {
- "default": "none",
- "type": "string",
- "enum": [
- "auto",
- "tmux",
- "zellij",
- "herdr",
- "kitty",
- "cmux",
- "none"
- ]
- },
- "layout": {
- "default": "main-vertical",
- "type": "string",
- "enum": [
- "main-horizontal",
- "main-vertical",
- "tiled",
- "even-horizontal",
- "even-vertical"
- ]
- },
- "main_pane_size": {
- "default": 60,
- "type": "number",
- "minimum": 20,
- "maximum": 80
- },
- "zellij_pane_mode": {
- "default": "agent-tab",
- "type": "string",
- "enum": [
- "agent-tab",
- "current-tab"
- ]
- }
- }
- },
- "websearch": {
- "type": "object",
- "properties": {
- "provider": {
- "default": "exa",
- "type": "string",
- "enum": [
- "exa",
- "tavily"
- ]
- }
- }
- },
- "interview": {
- "type": "object",
- "properties": {
- "maxQuestions": {
- "default": 2,
- "type": "integer",
- "minimum": 1,
- "maximum": 10
- },
- "outputFolder": {
- "default": "interview",
- "type": "string",
- "minLength": 1
- },
- "autoOpenBrowser": {
- "default": true,
- "description": "Automatically open the interview UI in your default browser during interactive runs. Disabled automatically in tests and CI.",
- "type": "boolean"
- },
- "port": {
- "default": 0,
- "type": "integer",
- "minimum": 0,
- "maximum": 65535
- },
- "dashboard": {
- "default": false,
- "type": "boolean"
- }
- }
- },
- "backgroundJobs": {
- "type": "object",
- "properties": {
- "strategy": {
- "default": "latest",
- "description": "Board injection strategy. \"latest\" replaces prior board messages; \"checkpoint-compatible\" preserves them and appends only changed board snapshots.",
- "type": "string",
- "enum": [
- "latest",
- "checkpoint-compatible"
- ]
- },
- "maxSessionsPerAgent": {
- "default": 2,
- "type": "integer",
- "minimum": 1,
- "maximum": 10
- },
- "readContextMinLines": {
- "default": 10,
- "type": "integer",
- "minimum": 0,
- "maximum": 1000
- },
- "readContextMaxFiles": {
- "default": 8,
- "type": "integer",
- "minimum": 0,
- "maximum": 50
- }
- }
- },
- "fallback": {
- "type": "object",
- "properties": {
- "enabled": {
- "default": true,
- "type": "boolean"
- },
- "timeoutMs": {
- "default": 15000,
- "type": "number",
- "minimum": 0
- },
- "retryDelayMs": {
- "default": 500,
- "type": "number",
- "minimum": 0
- },
- "maxRetries": {
- "default": 3,
- "description": "Number of consecutive 429/rate-limit responses tolerated on the same model before aborting (or swapping to the next fallback model when a chain is configured).",
- "type": "integer",
- "minimum": 0,
- "maximum": 9007199254740991
- },
- "retry_on_empty": {
- "default": true,
- "description": "When true (default), empty provider responses are treated as failures, triggering fallback/retry. Set to false to treat them as successes.",
- "type": "boolean"
- },
- "runtimeOverride": {
- "description": "DEPRECATED: no longer used. Previously controlled whether out-of-chain runtime model picks triggered fallback. Fallback is now always disabled when a user explicitly selects a model via /model.",
- "type": "boolean"
- }
- },
- "additionalProperties": false
- },
- "council": {
- "type": "object",
- "properties": {
- "presets": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {}
- }
- }
- },
- "default_preset": {
- "default": "default",
- "type": "string"
- }
- },
- "required": [
- "presets"
- ],
- "additionalProperties": {}
- },
- "companion": {
- "type": "object",
- "properties": {
- "enabled": {
- "type": "boolean"
- },
- "binaryPath": {
- "description": "Path to a custom companion binary to launch.",
- "type": "string",
- "minLength": 1
- },
- "position": {
- "type": "string",
- "enum": [
- "bottom-right",
- "bottom-left",
- "top-right",
- "top-left"
- ]
- },
- "size": {
- "type": "string",
- "enum": [
- "small",
- "medium",
- "large"
- ]
- },
- "gifPack": {
- "description": "Bundled companion animation pack to use.",
- "type": "string",
- "enum": [
- "default"
- ]
- },
- "loopStyle": {
- "description": "Companion animation playback style: classic loops or smooth ping-pong playback.",
- "type": "string",
- "enum": [
- "classic",
- "smooth"
- ]
- },
- "speed": {
- "description": "Companion animation playback speed multiplier. Defaults to 1.",
- "type": "number",
- "minimum": 0.25,
- "maximum": 4
- },
- "debug": {
- "description": "Enable verbose native companion debug logs.",
- "type": "boolean"
- }
- }
- },
- "acpAgents": {
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "object",
- "properties": {
- "command": {
- "type": "string",
- "minLength": 1
- },
- "args": {
- "default": [],
- "type": "array",
- "items": {
- "type": "string"
- }
- },
- "env": {
- "default": {},
- "type": "object",
- "propertyNames": {
- "type": "string"
- },
- "additionalProperties": {
- "type": "string"
- }
- },
- "cwd": {
- "type": "string",
- "minLength": 1
- },
- "description": {
- "type": "string",
- "minLength": 1
- },
- "prompt": {
- "type": "string",
- "minLength": 1
- },
- "orchestratorPrompt": {
- "type": "string",
- "minLength": 1
- },
- "wrapperModel": {
- "type": "string",
- "pattern": "^[^/\\s]+\\/[^\\s]+$"
- },
- "timeoutMs": {
- "default": 0,
- "description": "Timeout for a single ACP run in milliseconds. Set to 0 to disable the timeout.",
- "type": "integer",
- "minimum": 0,
- "maximum": 2147483647
- },
- "permissionMode": {
- "default": "ask",
- "type": "string",
- "enum": [
- "ask",
- "allow",
- "reject"
- ]
- }
- },
- "required": [
- "command"
- ],
- "additionalProperties": false
- }
- }
- },
- "title": "oh-my-opencode-slim",
- "description": "Configuration schema for oh-my-opencode-slim plugin for OpenCode"
- }
|