{ "$schema": "https://json-schema.org/draft/2020-12/schema", "ref": "Config", "type": "object", "properties": { "$schema": { "description": "JSON schema reference for configuration validation", "type": "string" }, "logLevel": { "description": "Log level", "ref": "LogLevel", "type": "string", "enum": [ "DEBUG", "INFO", "WARN", "ERROR" ] }, "server": { "description": "Server configuration for opencode serve and web commands", "ref": "ServerConfig", "type": "object", "properties": { "port": { "description": "Port to listen on", "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "hostname": { "description": "Hostname to listen on", "type": "string" }, "mdns": { "description": "Enable mDNS service discovery", "type": "boolean" }, "mdnsDomain": { "description": "Custom domain name for mDNS service (default: opencode.local)", "type": "string" }, "cors": { "description": "Additional domains to allow for CORS", "type": "array", "items": { "type": "string" } } }, "additionalProperties": false }, "command": { "description": "Command configuration, see https://opencode.ai/docs/commands", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "type": "object", "properties": { "template": { "type": "string" }, "description": { "type": "string" }, "agent": { "type": "string" }, "model": { "$ref": "https://models.dev/model-schema.json#/$defs/Model", "type": "string" }, "subtask": { "type": "boolean" } }, "required": [ "template" ], "additionalProperties": false } }, "skills": { "description": "Additional skill folder paths", "type": "object", "properties": { "paths": { "description": "Additional paths to skill folders", "type": "array", "items": { "type": "string" } }, "urls": { "description": "URLs to fetch skills from (e.g., https://example.com/.well-known/skills/)", "type": "array", "items": { "type": "string" } } }, "additionalProperties": false }, "watcher": { "type": "object", "properties": { "ignore": { "type": "array", "items": { "type": "string" } } }, "additionalProperties": false }, "plugin": { "type": "array", "items": { "type": "string" } }, "snapshot": { "type": "boolean" }, "share": { "description": "Control sharing behavior:'manual' allows manual sharing via commands, 'auto' enables automatic sharing, 'disabled' disables all sharing", "type": "string", "enum": [ "manual", "auto", "disabled" ] }, "autoshare": { "description": "@deprecated Use 'share' field instead. Share newly created sessions automatically", "type": "boolean" }, "autoupdate": { "description": "Automatically update to the latest version. Set to true to auto-update, false to disable, or 'notify' to show update notifications", "anyOf": [ { "type": "boolean" }, { "type": "string", "const": "notify" } ] }, "disabled_providers": { "description": "Disable providers that are loaded automatically", "type": "array", "items": { "type": "string" } }, "enabled_providers": { "description": "When set, ONLY these providers will be enabled. All other providers will be ignored", "type": "array", "items": { "type": "string" } }, "model": { "$ref": "https://models.dev/model-schema.json#/$defs/Model", "description": "Model to use in the format of provider/model, eg anthropic/claude-2", "type": "string" }, "small_model": { "$ref": "https://models.dev/model-schema.json#/$defs/Model", "description": "Small model to use for tasks like title generation in the format of provider/model", "type": "string" }, "default_agent": { "description": "Default agent to use when none is specified. Must be a primary agent. Falls back to 'build' if not set or if the specified agent is invalid.", "type": "string" }, "username": { "description": "Custom username to display in conversations instead of system username", "type": "string" }, "mode": { "description": "@deprecated Use `agent` field instead.", "type": "object", "properties": { "build": { "ref": "AgentConfig", "type": "object", "properties": { "model": { "$ref": "https://models.dev/model-schema.json#/$defs/Model", "type": "string" }, "variant": { "description": "Default model variant for this agent (applies only when using the agent's configured model).", "type": "string" }, "temperature": { "type": "number" }, "top_p": { "type": "number" }, "prompt": { "type": "string" }, "tools": { "description": "@deprecated Use 'permission' field instead", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "type": "boolean" } }, "disable": { "type": "boolean" }, "description": { "description": "Description of when to use the agent", "type": "string" }, "mode": { "type": "string", "enum": [ "subagent", "primary", "all" ] }, "hidden": { "description": "Hide this subagent from the @ autocomplete menu (default: false, only applies to mode: subagent)", "type": "boolean" }, "options": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} }, "color": { "description": "Hex color code (e.g., #FF5733) or theme color (e.g., primary)", "anyOf": [ { "type": "string", "pattern": "^#[0-9a-fA-F]{6}$" }, { "type": "string", "enum": [ "primary", "secondary", "accent", "success", "warning", "error", "info" ] } ] }, "steps": { "description": "Maximum number of agentic iterations before forcing text-only response", "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "maxSteps": { "description": "@deprecated Use 'steps' field instead.", "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "permission": { "ref": "PermissionConfig", "anyOf": [ { "type": "object", "properties": { "__originalKeys": { "type": "array", "items": { "type": "string" } }, "read": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "edit": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "glob": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "grep": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "list": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "bash": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "task": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "external_directory": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "todowrite": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "todoread": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "question": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "webfetch": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "websearch": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "codesearch": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "lsp": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "doom_loop": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "skill": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] } }, "additionalProperties": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] } }, { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } ] } }, "additionalProperties": {} }, "plan": { "ref": "AgentConfig", "type": "object", "properties": { "model": { "$ref": "https://models.dev/model-schema.json#/$defs/Model", "type": "string" }, "variant": { "description": "Default model variant for this agent (applies only when using the agent's configured model).", "type": "string" }, "temperature": { "type": "number" }, "top_p": { "type": "number" }, "prompt": { "type": "string" }, "tools": { "description": "@deprecated Use 'permission' field instead", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "type": "boolean" } }, "disable": { "type": "boolean" }, "description": { "description": "Description of when to use the agent", "type": "string" }, "mode": { "type": "string", "enum": [ "subagent", "primary", "all" ] }, "hidden": { "description": "Hide this subagent from the @ autocomplete menu (default: false, only applies to mode: subagent)", "type": "boolean" }, "options": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} }, "color": { "description": "Hex color code (e.g., #FF5733) or theme color (e.g., primary)", "anyOf": [ { "type": "string", "pattern": "^#[0-9a-fA-F]{6}$" }, { "type": "string", "enum": [ "primary", "secondary", "accent", "success", "warning", "error", "info" ] } ] }, "steps": { "description": "Maximum number of agentic iterations before forcing text-only response", "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "maxSteps": { "description": "@deprecated Use 'steps' field instead.", "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "permission": { "ref": "PermissionConfig", "anyOf": [ { "type": "object", "properties": { "__originalKeys": { "type": "array", "items": { "type": "string" } }, "read": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "edit": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "glob": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "grep": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "list": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "bash": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "task": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "external_directory": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "todowrite": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "todoread": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "question": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "webfetch": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "websearch": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "codesearch": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "lsp": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "doom_loop": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "skill": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] } }, "additionalProperties": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] } }, { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } ] } }, "additionalProperties": {} } }, "additionalProperties": { "ref": "AgentConfig", "type": "object", "properties": { "model": { "$ref": "https://models.dev/model-schema.json#/$defs/Model", "type": "string" }, "variant": { "description": "Default model variant for this agent (applies only when using the agent's configured model).", "type": "string" }, "temperature": { "type": "number" }, "top_p": { "type": "number" }, "prompt": { "type": "string" }, "tools": { "description": "@deprecated Use 'permission' field instead", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "type": "boolean" } }, "disable": { "type": "boolean" }, "description": { "description": "Description of when to use the agent", "type": "string" }, "mode": { "type": "string", "enum": [ "subagent", "primary", "all" ] }, "hidden": { "description": "Hide this subagent from the @ autocomplete menu (default: false, only applies to mode: subagent)", "type": "boolean" }, "options": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} }, "color": { "description": "Hex color code (e.g., #FF5733) or theme color (e.g., primary)", "anyOf": [ { "type": "string", "pattern": "^#[0-9a-fA-F]{6}$" }, { "type": "string", "enum": [ "primary", "secondary", "accent", "success", "warning", "error", "info" ] } ] }, "steps": { "description": "Maximum number of agentic iterations before forcing text-only response", "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "maxSteps": { "description": "@deprecated Use 'steps' field instead.", "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "permission": { "ref": "PermissionConfig", "anyOf": [ { "type": "object", "properties": { "__originalKeys": { "type": "array", "items": { "type": "string" } }, "read": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "edit": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "glob": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "grep": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "list": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "bash": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "task": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "external_directory": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "todowrite": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "todoread": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "question": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "webfetch": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "websearch": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "codesearch": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "lsp": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "doom_loop": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "skill": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] } }, "additionalProperties": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] } }, { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } ] } }, "additionalProperties": {} } }, "agent": { "description": "Agent configuration, see https://opencode.ai/docs/agents", "type": "object", "properties": { "plan": { "ref": "AgentConfig", "type": "object", "properties": { "model": { "$ref": "https://models.dev/model-schema.json#/$defs/Model", "type": "string" }, "variant": { "description": "Default model variant for this agent (applies only when using the agent's configured model).", "type": "string" }, "temperature": { "type": "number" }, "top_p": { "type": "number" }, "prompt": { "type": "string" }, "tools": { "description": "@deprecated Use 'permission' field instead", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "type": "boolean" } }, "disable": { "type": "boolean" }, "description": { "description": "Description of when to use the agent", "type": "string" }, "mode": { "type": "string", "enum": [ "subagent", "primary", "all" ] }, "hidden": { "description": "Hide this subagent from the @ autocomplete menu (default: false, only applies to mode: subagent)", "type": "boolean" }, "options": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} }, "color": { "description": "Hex color code (e.g., #FF5733) or theme color (e.g., primary)", "anyOf": [ { "type": "string", "pattern": "^#[0-9a-fA-F]{6}$" }, { "type": "string", "enum": [ "primary", "secondary", "accent", "success", "warning", "error", "info" ] } ] }, "steps": { "description": "Maximum number of agentic iterations before forcing text-only response", "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "maxSteps": { "description": "@deprecated Use 'steps' field instead.", "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "permission": { "ref": "PermissionConfig", "anyOf": [ { "type": "object", "properties": { "__originalKeys": { "type": "array", "items": { "type": "string" } }, "read": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "edit": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "glob": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "grep": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "list": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "bash": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "task": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "external_directory": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "todowrite": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "todoread": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "question": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "webfetch": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "websearch": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "codesearch": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "lsp": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "doom_loop": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "skill": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] } }, "additionalProperties": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] } }, { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } ] } }, "additionalProperties": {} }, "build": { "ref": "AgentConfig", "type": "object", "properties": { "model": { "$ref": "https://models.dev/model-schema.json#/$defs/Model", "type": "string" }, "variant": { "description": "Default model variant for this agent (applies only when using the agent's configured model).", "type": "string" }, "temperature": { "type": "number" }, "top_p": { "type": "number" }, "prompt": { "type": "string" }, "tools": { "description": "@deprecated Use 'permission' field instead", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "type": "boolean" } }, "disable": { "type": "boolean" }, "description": { "description": "Description of when to use the agent", "type": "string" }, "mode": { "type": "string", "enum": [ "subagent", "primary", "all" ] }, "hidden": { "description": "Hide this subagent from the @ autocomplete menu (default: false, only applies to mode: subagent)", "type": "boolean" }, "options": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} }, "color": { "description": "Hex color code (e.g., #FF5733) or theme color (e.g., primary)", "anyOf": [ { "type": "string", "pattern": "^#[0-9a-fA-F]{6}$" }, { "type": "string", "enum": [ "primary", "secondary", "accent", "success", "warning", "error", "info" ] } ] }, "steps": { "description": "Maximum number of agentic iterations before forcing text-only response", "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "maxSteps": { "description": "@deprecated Use 'steps' field instead.", "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "permission": { "ref": "PermissionConfig", "anyOf": [ { "type": "object", "properties": { "__originalKeys": { "type": "array", "items": { "type": "string" } }, "read": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "edit": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "glob": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "grep": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "list": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "bash": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "task": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "external_directory": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "todowrite": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "todoread": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "question": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "webfetch": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "websearch": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "codesearch": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "lsp": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "doom_loop": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "skill": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] } }, "additionalProperties": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] } }, { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } ] } }, "additionalProperties": {} }, "general": { "ref": "AgentConfig", "type": "object", "properties": { "model": { "$ref": "https://models.dev/model-schema.json#/$defs/Model", "type": "string" }, "variant": { "description": "Default model variant for this agent (applies only when using the agent's configured model).", "type": "string" }, "temperature": { "type": "number" }, "top_p": { "type": "number" }, "prompt": { "type": "string" }, "tools": { "description": "@deprecated Use 'permission' field instead", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "type": "boolean" } }, "disable": { "type": "boolean" }, "description": { "description": "Description of when to use the agent", "type": "string" }, "mode": { "type": "string", "enum": [ "subagent", "primary", "all" ] }, "hidden": { "description": "Hide this subagent from the @ autocomplete menu (default: false, only applies to mode: subagent)", "type": "boolean" }, "options": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} }, "color": { "description": "Hex color code (e.g., #FF5733) or theme color (e.g., primary)", "anyOf": [ { "type": "string", "pattern": "^#[0-9a-fA-F]{6}$" }, { "type": "string", "enum": [ "primary", "secondary", "accent", "success", "warning", "error", "info" ] } ] }, "steps": { "description": "Maximum number of agentic iterations before forcing text-only response", "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "maxSteps": { "description": "@deprecated Use 'steps' field instead.", "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "permission": { "ref": "PermissionConfig", "anyOf": [ { "type": "object", "properties": { "__originalKeys": { "type": "array", "items": { "type": "string" } }, "read": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "edit": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "glob": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "grep": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "list": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "bash": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "task": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "external_directory": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "todowrite": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "todoread": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "question": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "webfetch": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "websearch": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "codesearch": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "lsp": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "doom_loop": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "skill": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] } }, "additionalProperties": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] } }, { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } ] } }, "additionalProperties": {} }, "explore": { "ref": "AgentConfig", "type": "object", "properties": { "model": { "$ref": "https://models.dev/model-schema.json#/$defs/Model", "type": "string" }, "variant": { "description": "Default model variant for this agent (applies only when using the agent's configured model).", "type": "string" }, "temperature": { "type": "number" }, "top_p": { "type": "number" }, "prompt": { "type": "string" }, "tools": { "description": "@deprecated Use 'permission' field instead", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "type": "boolean" } }, "disable": { "type": "boolean" }, "description": { "description": "Description of when to use the agent", "type": "string" }, "mode": { "type": "string", "enum": [ "subagent", "primary", "all" ] }, "hidden": { "description": "Hide this subagent from the @ autocomplete menu (default: false, only applies to mode: subagent)", "type": "boolean" }, "options": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} }, "color": { "description": "Hex color code (e.g., #FF5733) or theme color (e.g., primary)", "anyOf": [ { "type": "string", "pattern": "^#[0-9a-fA-F]{6}$" }, { "type": "string", "enum": [ "primary", "secondary", "accent", "success", "warning", "error", "info" ] } ] }, "steps": { "description": "Maximum number of agentic iterations before forcing text-only response", "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "maxSteps": { "description": "@deprecated Use 'steps' field instead.", "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "permission": { "ref": "PermissionConfig", "anyOf": [ { "type": "object", "properties": { "__originalKeys": { "type": "array", "items": { "type": "string" } }, "read": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "edit": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "glob": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "grep": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "list": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "bash": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "task": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "external_directory": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "todowrite": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "todoread": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "question": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "webfetch": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "websearch": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "codesearch": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "lsp": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "doom_loop": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "skill": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] } }, "additionalProperties": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] } }, { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } ] } }, "additionalProperties": {} }, "title": { "ref": "AgentConfig", "type": "object", "properties": { "model": { "$ref": "https://models.dev/model-schema.json#/$defs/Model", "type": "string" }, "variant": { "description": "Default model variant for this agent (applies only when using the agent's configured model).", "type": "string" }, "temperature": { "type": "number" }, "top_p": { "type": "number" }, "prompt": { "type": "string" }, "tools": { "description": "@deprecated Use 'permission' field instead", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "type": "boolean" } }, "disable": { "type": "boolean" }, "description": { "description": "Description of when to use the agent", "type": "string" }, "mode": { "type": "string", "enum": [ "subagent", "primary", "all" ] }, "hidden": { "description": "Hide this subagent from the @ autocomplete menu (default: false, only applies to mode: subagent)", "type": "boolean" }, "options": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} }, "color": { "description": "Hex color code (e.g., #FF5733) or theme color (e.g., primary)", "anyOf": [ { "type": "string", "pattern": "^#[0-9a-fA-F]{6}$" }, { "type": "string", "enum": [ "primary", "secondary", "accent", "success", "warning", "error", "info" ] } ] }, "steps": { "description": "Maximum number of agentic iterations before forcing text-only response", "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "maxSteps": { "description": "@deprecated Use 'steps' field instead.", "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "permission": { "ref": "PermissionConfig", "anyOf": [ { "type": "object", "properties": { "__originalKeys": { "type": "array", "items": { "type": "string" } }, "read": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "edit": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "glob": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "grep": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "list": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "bash": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "task": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "external_directory": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "todowrite": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "todoread": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "question": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "webfetch": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "websearch": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "codesearch": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "lsp": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "doom_loop": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "skill": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] } }, "additionalProperties": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] } }, { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } ] } }, "additionalProperties": {} }, "summary": { "ref": "AgentConfig", "type": "object", "properties": { "model": { "$ref": "https://models.dev/model-schema.json#/$defs/Model", "type": "string" }, "variant": { "description": "Default model variant for this agent (applies only when using the agent's configured model).", "type": "string" }, "temperature": { "type": "number" }, "top_p": { "type": "number" }, "prompt": { "type": "string" }, "tools": { "description": "@deprecated Use 'permission' field instead", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "type": "boolean" } }, "disable": { "type": "boolean" }, "description": { "description": "Description of when to use the agent", "type": "string" }, "mode": { "type": "string", "enum": [ "subagent", "primary", "all" ] }, "hidden": { "description": "Hide this subagent from the @ autocomplete menu (default: false, only applies to mode: subagent)", "type": "boolean" }, "options": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} }, "color": { "description": "Hex color code (e.g., #FF5733) or theme color (e.g., primary)", "anyOf": [ { "type": "string", "pattern": "^#[0-9a-fA-F]{6}$" }, { "type": "string", "enum": [ "primary", "secondary", "accent", "success", "warning", "error", "info" ] } ] }, "steps": { "description": "Maximum number of agentic iterations before forcing text-only response", "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "maxSteps": { "description": "@deprecated Use 'steps' field instead.", "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "permission": { "ref": "PermissionConfig", "anyOf": [ { "type": "object", "properties": { "__originalKeys": { "type": "array", "items": { "type": "string" } }, "read": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "edit": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "glob": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "grep": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "list": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "bash": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "task": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "external_directory": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "todowrite": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "todoread": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "question": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "webfetch": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "websearch": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "codesearch": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "lsp": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "doom_loop": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "skill": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] } }, "additionalProperties": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] } }, { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } ] } }, "additionalProperties": {} }, "compaction": { "ref": "AgentConfig", "type": "object", "properties": { "model": { "$ref": "https://models.dev/model-schema.json#/$defs/Model", "type": "string" }, "variant": { "description": "Default model variant for this agent (applies only when using the agent's configured model).", "type": "string" }, "temperature": { "type": "number" }, "top_p": { "type": "number" }, "prompt": { "type": "string" }, "tools": { "description": "@deprecated Use 'permission' field instead", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "type": "boolean" } }, "disable": { "type": "boolean" }, "description": { "description": "Description of when to use the agent", "type": "string" }, "mode": { "type": "string", "enum": [ "subagent", "primary", "all" ] }, "hidden": { "description": "Hide this subagent from the @ autocomplete menu (default: false, only applies to mode: subagent)", "type": "boolean" }, "options": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} }, "color": { "description": "Hex color code (e.g., #FF5733) or theme color (e.g., primary)", "anyOf": [ { "type": "string", "pattern": "^#[0-9a-fA-F]{6}$" }, { "type": "string", "enum": [ "primary", "secondary", "accent", "success", "warning", "error", "info" ] } ] }, "steps": { "description": "Maximum number of agentic iterations before forcing text-only response", "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "maxSteps": { "description": "@deprecated Use 'steps' field instead.", "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "permission": { "ref": "PermissionConfig", "anyOf": [ { "type": "object", "properties": { "__originalKeys": { "type": "array", "items": { "type": "string" } }, "read": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "edit": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "glob": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "grep": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "list": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "bash": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "task": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "external_directory": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "todowrite": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "todoread": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "question": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "webfetch": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "websearch": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "codesearch": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "lsp": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "doom_loop": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "skill": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] } }, "additionalProperties": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] } }, { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } ] } }, "additionalProperties": {} } }, "additionalProperties": { "ref": "AgentConfig", "type": "object", "properties": { "model": { "$ref": "https://models.dev/model-schema.json#/$defs/Model", "type": "string" }, "variant": { "description": "Default model variant for this agent (applies only when using the agent's configured model).", "type": "string" }, "temperature": { "type": "number" }, "top_p": { "type": "number" }, "prompt": { "type": "string" }, "tools": { "description": "@deprecated Use 'permission' field instead", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "type": "boolean" } }, "disable": { "type": "boolean" }, "description": { "description": "Description of when to use the agent", "type": "string" }, "mode": { "type": "string", "enum": [ "subagent", "primary", "all" ] }, "hidden": { "description": "Hide this subagent from the @ autocomplete menu (default: false, only applies to mode: subagent)", "type": "boolean" }, "options": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} }, "color": { "description": "Hex color code (e.g., #FF5733) or theme color (e.g., primary)", "anyOf": [ { "type": "string", "pattern": "^#[0-9a-fA-F]{6}$" }, { "type": "string", "enum": [ "primary", "secondary", "accent", "success", "warning", "error", "info" ] } ] }, "steps": { "description": "Maximum number of agentic iterations before forcing text-only response", "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "maxSteps": { "description": "@deprecated Use 'steps' field instead.", "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "permission": { "ref": "PermissionConfig", "anyOf": [ { "type": "object", "properties": { "__originalKeys": { "type": "array", "items": { "type": "string" } }, "read": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "edit": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "glob": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "grep": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "list": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "bash": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "task": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "external_directory": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "todowrite": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "todoread": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "question": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "webfetch": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "websearch": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "codesearch": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "lsp": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "doom_loop": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "skill": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] } }, "additionalProperties": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] } }, { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } ] } }, "additionalProperties": {} } }, "provider": { "description": "Custom provider configurations and model overrides", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "ProviderConfig", "type": "object", "properties": { "api": { "type": "string" }, "name": { "type": "string" }, "env": { "type": "array", "items": { "type": "string" } }, "id": { "type": "string" }, "npm": { "type": "string" }, "models": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "family": { "type": "string" }, "release_date": { "type": "string" }, "attachment": { "type": "boolean" }, "reasoning": { "type": "boolean" }, "temperature": { "type": "boolean" }, "tool_call": { "type": "boolean" }, "interleaved": { "anyOf": [ { "type": "boolean", "const": true }, { "type": "object", "properties": { "field": { "type": "string", "enum": [ "reasoning_content", "reasoning_details" ] } }, "required": [ "field" ], "additionalProperties": false } ] }, "cost": { "type": "object", "properties": { "input": { "type": "number" }, "output": { "type": "number" }, "cache_read": { "type": "number" }, "cache_write": { "type": "number" }, "context_over_200k": { "type": "object", "properties": { "input": { "type": "number" }, "output": { "type": "number" }, "cache_read": { "type": "number" }, "cache_write": { "type": "number" } }, "required": [ "input", "output" ], "additionalProperties": false } }, "required": [ "input", "output" ], "additionalProperties": false }, "limit": { "type": "object", "properties": { "context": { "type": "number" }, "input": { "type": "number" }, "output": { "type": "number" } }, "required": [ "context", "output" ], "additionalProperties": false }, "modalities": { "type": "object", "properties": { "input": { "type": "array", "items": { "type": "string", "enum": [ "text", "audio", "image", "video", "pdf" ] } }, "output": { "type": "array", "items": { "type": "string", "enum": [ "text", "audio", "image", "video", "pdf" ] } } }, "required": [ "input", "output" ], "additionalProperties": false }, "experimental": { "type": "boolean" }, "status": { "type": "string", "enum": [ "alpha", "beta", "deprecated" ] }, "options": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} }, "headers": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "type": "string" } }, "provider": { "type": "object", "properties": { "npm": { "type": "string" }, "api": { "type": "string" } }, "additionalProperties": false }, "variants": { "description": "Variant-specific configuration", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "type": "object", "properties": { "disabled": { "description": "Disable this variant for the model", "type": "boolean" } }, "additionalProperties": {} } } }, "additionalProperties": false } }, "whitelist": { "type": "array", "items": { "type": "string" } }, "blacklist": { "type": "array", "items": { "type": "string" } }, "options": { "type": "object", "properties": { "apiKey": { "type": "string" }, "baseURL": { "type": "string" }, "enterpriseUrl": { "description": "GitHub Enterprise URL for copilot authentication", "type": "string" }, "setCacheKey": { "description": "Enable promptCacheKey for this provider (default false)", "type": "boolean" }, "timeout": { "description": "Timeout in milliseconds for requests to this provider. Default is 300000 (5 minutes). Set to false to disable timeout.", "anyOf": [ { "description": "Timeout in milliseconds for requests to this provider. Default is 300000 (5 minutes). Set to false to disable timeout.", "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, { "description": "Disable timeout for this provider entirely.", "type": "boolean", "const": false } ] }, "chunkTimeout": { "description": "Timeout in milliseconds between streamed SSE chunks for this provider. If no chunk arrives within this window, the request is aborted.", "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 } }, "additionalProperties": {} } }, "additionalProperties": false } }, "mcp": { "description": "MCP (Model Context Protocol) server configurations", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "anyOf": [ { "anyOf": [ { "ref": "McpLocalConfig", "type": "object", "properties": { "type": { "description": "Type of MCP server connection", "type": "string", "const": "local" }, "command": { "description": "Command and arguments to run the MCP server", "type": "array", "items": { "type": "string" } }, "environment": { "description": "Environment variables to set when running the MCP server", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "type": "string" } }, "enabled": { "description": "Enable or disable the MCP server on startup", "type": "boolean" }, "timeout": { "description": "Timeout in ms for MCP server requests. Defaults to 5000 (5 seconds) if not specified.", "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 } }, "required": [ "type", "command" ], "additionalProperties": false }, { "ref": "McpRemoteConfig", "type": "object", "properties": { "type": { "description": "Type of MCP server connection", "type": "string", "const": "remote" }, "url": { "description": "URL of the remote MCP server", "type": "string" }, "enabled": { "description": "Enable or disable the MCP server on startup", "type": "boolean" }, "headers": { "description": "Headers to send with the request", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "type": "string" } }, "oauth": { "description": "OAuth authentication configuration for the MCP server. Set to false to disable OAuth auto-detection.", "anyOf": [ { "ref": "McpOAuthConfig", "type": "object", "properties": { "clientId": { "description": "OAuth client ID. If not provided, dynamic client registration (RFC 7591) will be attempted.", "type": "string" }, "clientSecret": { "description": "OAuth client secret (if required by the authorization server)", "type": "string" }, "scope": { "description": "OAuth scopes to request during authorization", "type": "string" } }, "additionalProperties": false }, { "type": "boolean", "const": false } ] }, "timeout": { "description": "Timeout in ms for MCP server requests. Defaults to 5000 (5 seconds) if not specified.", "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 } }, "required": [ "type", "url" ], "additionalProperties": false } ] }, { "type": "object", "properties": { "enabled": { "type": "boolean" } }, "required": [ "enabled" ], "additionalProperties": false } ] } }, "formatter": { "anyOf": [ { "type": "boolean", "const": false }, { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "type": "object", "properties": { "disabled": { "type": "boolean" }, "command": { "type": "array", "items": { "type": "string" } }, "environment": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "type": "string" } }, "extensions": { "type": "array", "items": { "type": "string" } } }, "additionalProperties": false } } ] }, "lsp": { "anyOf": [ { "type": "boolean", "const": false }, { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "anyOf": [ { "type": "object", "properties": { "disabled": { "type": "boolean", "const": true } }, "required": [ "disabled" ], "additionalProperties": false }, { "type": "object", "properties": { "command": { "type": "array", "items": { "type": "string" } }, "extensions": { "type": "array", "items": { "type": "string" } }, "disabled": { "type": "boolean" }, "env": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "type": "string" } }, "initialization": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} } }, "required": [ "command" ], "additionalProperties": false } ] } } ] }, "instructions": { "description": "Additional instruction files or patterns to include", "type": "array", "items": { "type": "string" } }, "layout": { "description": "@deprecated Always uses stretch layout.", "ref": "LayoutConfig", "type": "string", "enum": [ "auto", "stretch" ] }, "permission": { "ref": "PermissionConfig", "anyOf": [ { "type": "object", "properties": { "__originalKeys": { "type": "array", "items": { "type": "string" } }, "read": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "edit": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "glob": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "grep": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "list": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "bash": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "task": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "external_directory": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "todowrite": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "todoread": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "question": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "webfetch": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "websearch": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "codesearch": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "lsp": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] }, "doom_loop": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, "skill": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] } }, "additionalProperties": { "ref": "PermissionRuleConfig", "anyOf": [ { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] }, { "ref": "PermissionObjectConfig", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } } ] } }, { "ref": "PermissionActionConfig", "type": "string", "enum": [ "ask", "allow", "deny" ] } ] }, "tools": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "type": "boolean" } }, "enterprise": { "type": "object", "properties": { "url": { "description": "Enterprise URL", "type": "string" } }, "additionalProperties": false }, "compaction": { "type": "object", "properties": { "auto": { "description": "Enable automatic compaction when context is full (default: true)", "type": "boolean" }, "prune": { "description": "Enable pruning of old tool outputs (default: true)", "type": "boolean" }, "reserved": { "description": "Token buffer for compaction. Leaves enough window to avoid overflow during compaction.", "type": "integer", "minimum": 0, "maximum": 9007199254740991 } }, "additionalProperties": false }, "experimental": { "type": "object", "properties": { "disable_paste_summary": { "type": "boolean" }, "batch_tool": { "description": "Enable the batch tool", "type": "boolean" }, "openTelemetry": { "description": "Enable OpenTelemetry spans for AI SDK calls (using the 'experimental_telemetry' flag)", "type": "boolean" }, "primary_tools": { "description": "Tools that should only be available to primary agents.", "type": "array", "items": { "type": "string" } }, "continue_loop_on_deny": { "description": "Continue the agent loop when a tool call is denied", "type": "boolean" }, "mcp_timeout": { "description": "Timeout in milliseconds for model context protocol (MCP) requests", "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 } }, "additionalProperties": false } }, "additionalProperties": false, "allowComments": true, "allowTrailingCommas": true }