Files
opencode/packages/sdk/openapi.json
opencode-agent[bot] e62a15d421 chore: generate
2026-02-01 20:13:33 +00:00

10918 lines
302 KiB
JSON

{
"openapi": "3.1.1",
"info": {
"title": "opencode",
"description": "opencode api",
"version": "1.0.0"
},
"paths": {
"/global/health": {
"get": {
"operationId": "global.health",
"summary": "Get health",
"description": "Get health information about the OpenCode server.",
"responses": {
"200": {
"description": "Health information",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"healthy": {
"type": "boolean",
"const": true
},
"version": {
"type": "string"
}
},
"required": ["healthy", "version"]
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.global.health({\n ...\n})"
}
]
}
},
"/global/event": {
"get": {
"operationId": "global.event",
"summary": "Get global events",
"description": "Subscribe to global events from the OpenCode system using server-sent events.",
"responses": {
"200": {
"description": "Event stream",
"content": {
"text/event-stream": {
"schema": {
"$ref": "#/components/schemas/GlobalEvent"
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.global.event({\n ...\n})"
}
]
}
},
"/global/config": {
"get": {
"operationId": "global.config.get",
"summary": "Get global configuration",
"description": "Retrieve the current global OpenCode configuration settings and preferences.",
"responses": {
"200": {
"description": "Get global config info",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Config"
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.global.config.get({\n ...\n})"
}
]
},
"patch": {
"operationId": "global.config.update",
"summary": "Update global configuration",
"description": "Update global OpenCode configuration settings and preferences.",
"responses": {
"200": {
"description": "Successfully updated global config",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Config"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Config"
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.global.config.update({\n ...\n})"
}
]
}
},
"/global/dispose": {
"post": {
"operationId": "global.dispose",
"summary": "Dispose instance",
"description": "Clean up and dispose all OpenCode instances, releasing all resources.",
"responses": {
"200": {
"description": "Global disposed",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.global.dispose({\n ...\n})"
}
]
}
},
"/auth/{providerID}": {
"put": {
"operationId": "auth.set",
"summary": "Set auth credentials",
"description": "Set authentication credentials",
"responses": {
"200": {
"description": "Successfully set authentication credentials",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
}
},
"parameters": [
{
"in": "path",
"name": "providerID",
"schema": {
"type": "string"
},
"required": true
}
],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Auth"
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.auth.set({\n ...\n})"
}
]
},
"delete": {
"operationId": "auth.remove",
"summary": "Remove auth credentials",
"description": "Remove authentication credentials",
"responses": {
"200": {
"description": "Successfully removed authentication credentials",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
}
},
"parameters": [
{
"in": "path",
"name": "providerID",
"schema": {
"type": "string"
},
"required": true
}
],
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.auth.remove({\n ...\n})"
}
]
}
},
"/project": {
"get": {
"operationId": "project.list",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"summary": "List all projects",
"description": "Get a list of projects that have been opened with OpenCode.",
"responses": {
"200": {
"description": "List of projects",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Project"
}
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.project.list({\n ...\n})"
}
]
}
},
"/project/current": {
"get": {
"operationId": "project.current",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"summary": "Get current project",
"description": "Retrieve the currently active project that OpenCode is working with.",
"responses": {
"200": {
"description": "Current project information",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Project"
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.project.current({\n ...\n})"
}
]
}
},
"/project/{projectID}": {
"patch": {
"operationId": "project.update",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "projectID",
"schema": {
"type": "string"
},
"required": true
}
],
"summary": "Update project",
"description": "Update project properties such as name, icon, and commands.",
"responses": {
"200": {
"description": "Updated project information",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Project"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"icon": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"override": {
"type": "string"
},
"color": {
"type": "string"
}
}
},
"commands": {
"type": "object",
"properties": {
"start": {
"description": "Startup script to run when creating a new workspace (worktree)",
"type": "string"
}
}
}
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.project.update({\n ...\n})"
}
]
}
},
"/pty": {
"get": {
"operationId": "pty.list",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"summary": "List PTY sessions",
"description": "Get a list of all active pseudo-terminal (PTY) sessions managed by OpenCode.",
"responses": {
"200": {
"description": "List of sessions",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Pty"
}
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.pty.list({\n ...\n})"
}
]
},
"post": {
"operationId": "pty.create",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"summary": "Create PTY session",
"description": "Create a new pseudo-terminal (PTY) session for running shell commands and processes.",
"responses": {
"200": {
"description": "Created session",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Pty"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"command": {
"type": "string"
},
"args": {
"type": "array",
"items": {
"type": "string"
}
},
"cwd": {
"type": "string"
},
"title": {
"type": "string"
},
"env": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
}
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.pty.create({\n ...\n})"
}
]
}
},
"/pty/{ptyID}": {
"get": {
"operationId": "pty.get",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "ptyID",
"schema": {
"type": "string"
},
"required": true
}
],
"summary": "Get PTY session",
"description": "Retrieve detailed information about a specific pseudo-terminal (PTY) session.",
"responses": {
"200": {
"description": "Session info",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Pty"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.pty.get({\n ...\n})"
}
]
},
"put": {
"operationId": "pty.update",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "ptyID",
"schema": {
"type": "string"
},
"required": true
}
],
"summary": "Update PTY session",
"description": "Update properties of an existing pseudo-terminal (PTY) session.",
"responses": {
"200": {
"description": "Updated session",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Pty"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"size": {
"type": "object",
"properties": {
"rows": {
"type": "number"
},
"cols": {
"type": "number"
}
},
"required": ["rows", "cols"]
}
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.pty.update({\n ...\n})"
}
]
},
"delete": {
"operationId": "pty.remove",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "ptyID",
"schema": {
"type": "string"
},
"required": true
}
],
"summary": "Remove PTY session",
"description": "Remove and terminate a specific pseudo-terminal (PTY) session.",
"responses": {
"200": {
"description": "Session removed",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.pty.remove({\n ...\n})"
}
]
}
},
"/pty/{ptyID}/connect": {
"get": {
"operationId": "pty.connect",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "ptyID",
"schema": {
"type": "string"
},
"required": true
}
],
"summary": "Connect to PTY session",
"description": "Establish a WebSocket connection to interact with a pseudo-terminal (PTY) session in real-time.",
"responses": {
"200": {
"description": "Connected session",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.pty.connect({\n ...\n})"
}
]
}
},
"/config": {
"get": {
"operationId": "config.get",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"summary": "Get configuration",
"description": "Retrieve the current OpenCode configuration settings and preferences.",
"responses": {
"200": {
"description": "Get config info",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Config"
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.config.get({\n ...\n})"
}
]
},
"patch": {
"operationId": "config.update",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"summary": "Update configuration",
"description": "Update OpenCode configuration settings and preferences.",
"responses": {
"200": {
"description": "Successfully updated config",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Config"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Config"
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.config.update({\n ...\n})"
}
]
}
},
"/config/providers": {
"get": {
"operationId": "config.providers",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"summary": "List config providers",
"description": "Get a list of all configured AI providers and their default models.",
"responses": {
"200": {
"description": "List of providers",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"providers": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Provider"
}
},
"default": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
}
},
"required": ["providers", "default"]
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.config.providers({\n ...\n})"
}
]
}
},
"/experimental/tool/ids": {
"get": {
"operationId": "tool.ids",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"summary": "List tool IDs",
"description": "Get a list of all available tool IDs, including both built-in tools and dynamically registered tools.",
"responses": {
"200": {
"description": "Tool IDs",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ToolIDs"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tool.ids({\n ...\n})"
}
]
}
},
"/experimental/tool": {
"get": {
"operationId": "tool.list",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "provider",
"schema": {
"type": "string"
},
"required": true
},
{
"in": "query",
"name": "model",
"schema": {
"type": "string"
},
"required": true
}
],
"summary": "List tools",
"description": "Get a list of available tools with their JSON schema parameters for a specific provider and model combination.",
"responses": {
"200": {
"description": "Tools",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ToolList"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tool.list({\n ...\n})"
}
]
}
},
"/experimental/worktree": {
"post": {
"operationId": "worktree.create",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"summary": "Create worktree",
"description": "Create a new git worktree for the current project and run any configured startup scripts.",
"responses": {
"200": {
"description": "Worktree created",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Worktree"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WorktreeCreateInput"
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.worktree.create({\n ...\n})"
}
]
},
"get": {
"operationId": "worktree.list",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"summary": "List worktrees",
"description": "List all sandbox worktrees for the current project.",
"responses": {
"200": {
"description": "List of worktree directories",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.worktree.list({\n ...\n})"
}
]
},
"delete": {
"operationId": "worktree.remove",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"summary": "Remove worktree",
"description": "Remove a git worktree and delete its branch.",
"responses": {
"200": {
"description": "Worktree removed",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WorktreeRemoveInput"
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.worktree.remove({\n ...\n})"
}
]
}
},
"/experimental/worktree/reset": {
"post": {
"operationId": "worktree.reset",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"summary": "Reset worktree",
"description": "Reset a worktree branch to the primary default branch.",
"responses": {
"200": {
"description": "Worktree reset",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/WorktreeResetInput"
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.worktree.reset({\n ...\n})"
}
]
}
},
"/experimental/resource": {
"get": {
"operationId": "experimental.resource.list",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"summary": "Get MCP resources",
"description": "Get all available MCP resources from connected servers. Optionally filter by name.",
"responses": {
"200": {
"description": "MCP resources",
"content": {
"application/json": {
"schema": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/components/schemas/McpResource"
}
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.experimental.resource.list({\n ...\n})"
}
]
}
},
"/session": {
"get": {
"operationId": "session.list",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
},
"description": "Filter sessions by project directory"
},
{
"in": "query",
"name": "roots",
"schema": {
"type": "boolean"
},
"description": "Only return root sessions (no parentID)"
},
{
"in": "query",
"name": "start",
"schema": {
"type": "number"
},
"description": "Filter sessions updated on or after this timestamp (milliseconds since epoch)"
},
{
"in": "query",
"name": "search",
"schema": {
"type": "string"
},
"description": "Filter sessions by title (case-insensitive)"
},
{
"in": "query",
"name": "limit",
"schema": {
"type": "number"
},
"description": "Maximum number of sessions to return"
}
],
"summary": "List sessions",
"description": "Get a list of all OpenCode sessions, sorted by most recently updated.",
"responses": {
"200": {
"description": "List of sessions",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Session"
}
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.list({\n ...\n})"
}
]
},
"post": {
"operationId": "session.create",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"summary": "Create session",
"description": "Create a new OpenCode session for interacting with AI assistants and managing conversations.",
"responses": {
"200": {
"description": "Successfully created session",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Session"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"parentID": {
"type": "string",
"pattern": "^ses.*"
},
"title": {
"type": "string"
},
"permission": {
"$ref": "#/components/schemas/PermissionRuleset"
}
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.create({\n ...\n})"
}
]
}
},
"/session/status": {
"get": {
"operationId": "session.status",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"summary": "Get session status",
"description": "Retrieve the current status of all sessions, including active, idle, and completed states.",
"responses": {
"200": {
"description": "Get session status",
"content": {
"application/json": {
"schema": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/components/schemas/SessionStatus"
}
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.status({\n ...\n})"
}
]
}
},
"/session/{sessionID}": {
"get": {
"operationId": "session.get",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "sessionID",
"schema": {
"type": "string",
"pattern": "^ses.*"
},
"required": true
}
],
"summary": "Get session",
"description": "Retrieve detailed information about a specific OpenCode session.",
"tags": ["Session"],
"responses": {
"200": {
"description": "Get session",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Session"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.get({\n ...\n})"
}
]
},
"delete": {
"operationId": "session.delete",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "sessionID",
"schema": {
"type": "string",
"pattern": "^ses.*"
},
"required": true
}
],
"summary": "Delete session",
"description": "Delete a session and permanently remove all associated data, including messages and history.",
"responses": {
"200": {
"description": "Successfully deleted session",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.delete({\n ...\n})"
}
]
},
"patch": {
"operationId": "session.update",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "sessionID",
"schema": {
"type": "string"
},
"required": true
}
],
"summary": "Update session",
"description": "Update properties of an existing session, such as title or other metadata.",
"responses": {
"200": {
"description": "Successfully updated session",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Session"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"time": {
"type": "object",
"properties": {
"archived": {
"type": "number"
}
}
}
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.update({\n ...\n})"
}
]
}
},
"/session/{sessionID}/children": {
"get": {
"operationId": "session.children",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "sessionID",
"schema": {
"type": "string",
"pattern": "^ses.*"
},
"required": true
}
],
"summary": "Get session children",
"tags": ["Session"],
"description": "Retrieve all child sessions that were forked from the specified parent session.",
"responses": {
"200": {
"description": "List of children",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Session"
}
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.children({\n ...\n})"
}
]
}
},
"/session/{sessionID}/todo": {
"get": {
"operationId": "session.todo",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "sessionID",
"schema": {
"type": "string"
},
"required": true,
"description": "Session ID"
}
],
"summary": "Get session todos",
"description": "Retrieve the todo list associated with a specific session, showing tasks and action items.",
"responses": {
"200": {
"description": "Todo list",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Todo"
}
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.todo({\n ...\n})"
}
]
}
},
"/session/{sessionID}/init": {
"post": {
"operationId": "session.init",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "sessionID",
"schema": {
"type": "string"
},
"required": true,
"description": "Session ID"
}
],
"summary": "Initialize session",
"description": "Analyze the current application and create an AGENTS.md file with project-specific agent configurations.",
"responses": {
"200": {
"description": "200",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"modelID": {
"type": "string"
},
"providerID": {
"type": "string"
},
"messageID": {
"type": "string",
"pattern": "^msg.*"
}
},
"required": ["modelID", "providerID", "messageID"]
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.init({\n ...\n})"
}
]
}
},
"/session/{sessionID}/fork": {
"post": {
"operationId": "session.fork",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "sessionID",
"schema": {
"type": "string",
"pattern": "^ses.*"
},
"required": true
}
],
"summary": "Fork session",
"description": "Create a new session by forking an existing session at a specific message point.",
"responses": {
"200": {
"description": "200",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Session"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"messageID": {
"type": "string",
"pattern": "^msg.*"
}
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.fork({\n ...\n})"
}
]
}
},
"/session/{sessionID}/abort": {
"post": {
"operationId": "session.abort",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "sessionID",
"schema": {
"type": "string"
},
"required": true
}
],
"summary": "Abort session",
"description": "Abort an active session and stop any ongoing AI processing or command execution.",
"responses": {
"200": {
"description": "Aborted session",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.abort({\n ...\n})"
}
]
}
},
"/session/{sessionID}/share": {
"post": {
"operationId": "session.share",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "sessionID",
"schema": {
"type": "string"
},
"required": true
}
],
"summary": "Share session",
"description": "Create a shareable link for a session, allowing others to view the conversation.",
"responses": {
"200": {
"description": "Successfully shared session",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Session"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.share({\n ...\n})"
}
]
},
"delete": {
"operationId": "session.unshare",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "sessionID",
"schema": {
"type": "string",
"pattern": "^ses.*"
},
"required": true
}
],
"summary": "Unshare session",
"description": "Remove the shareable link for a session, making it private again.",
"responses": {
"200": {
"description": "Successfully unshared session",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Session"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.unshare({\n ...\n})"
}
]
}
},
"/session/{sessionID}/diff": {
"get": {
"operationId": "session.diff",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "sessionID",
"schema": {
"type": "string",
"pattern": "^ses.*"
},
"required": true
},
{
"in": "query",
"name": "messageID",
"schema": {
"type": "string",
"pattern": "^msg.*"
}
}
],
"summary": "Get message diff",
"description": "Get the file changes (diff) that resulted from a specific user message in the session.",
"responses": {
"200": {
"description": "Successfully retrieved diff",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/FileDiff"
}
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.diff({\n ...\n})"
}
]
}
},
"/session/{sessionID}/summarize": {
"post": {
"operationId": "session.summarize",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "sessionID",
"schema": {
"type": "string"
},
"required": true,
"description": "Session ID"
}
],
"summary": "Summarize session",
"description": "Generate a concise summary of the session using AI compaction to preserve key information.",
"responses": {
"200": {
"description": "Summarized session",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"providerID": {
"type": "string"
},
"modelID": {
"type": "string"
},
"auto": {
"default": false,
"type": "boolean"
}
},
"required": ["providerID", "modelID"]
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.summarize({\n ...\n})"
}
]
}
},
"/session/{sessionID}/message": {
"get": {
"operationId": "session.messages",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "sessionID",
"schema": {
"type": "string"
},
"required": true,
"description": "Session ID"
},
{
"in": "query",
"name": "limit",
"schema": {
"type": "number"
}
}
],
"summary": "Get session messages",
"description": "Retrieve all messages in a session, including user prompts and AI responses.",
"responses": {
"200": {
"description": "List of messages",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"info": {
"$ref": "#/components/schemas/Message"
},
"parts": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Part"
}
}
},
"required": ["info", "parts"]
}
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.messages({\n ...\n})"
}
]
},
"post": {
"operationId": "session.prompt",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "sessionID",
"schema": {
"type": "string"
},
"required": true,
"description": "Session ID"
}
],
"summary": "Send message",
"description": "Create and send a new message to a session, streaming the AI response.",
"responses": {
"200": {
"description": "Created message",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"info": {
"$ref": "#/components/schemas/AssistantMessage"
},
"parts": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Part"
}
}
},
"required": ["info", "parts"]
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"messageID": {
"type": "string",
"pattern": "^msg.*"
},
"model": {
"type": "object",
"properties": {
"providerID": {
"type": "string"
},
"modelID": {
"type": "string"
}
},
"required": ["providerID", "modelID"]
},
"agent": {
"type": "string"
},
"noReply": {
"type": "boolean"
},
"tools": {
"description": "@deprecated tools and permissions have been merged, you can set permissions on the session itself now",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "boolean"
}
},
"system": {
"type": "string"
},
"variant": {
"type": "string"
},
"parts": {
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/components/schemas/TextPartInput"
},
{
"$ref": "#/components/schemas/FilePartInput"
},
{
"$ref": "#/components/schemas/AgentPartInput"
},
{
"$ref": "#/components/schemas/SubtaskPartInput"
}
]
}
}
},
"required": ["parts"]
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.prompt({\n ...\n})"
}
]
}
},
"/session/{sessionID}/message/{messageID}": {
"get": {
"operationId": "session.message",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "sessionID",
"schema": {
"type": "string"
},
"required": true,
"description": "Session ID"
},
{
"in": "path",
"name": "messageID",
"schema": {
"type": "string"
},
"required": true,
"description": "Message ID"
}
],
"summary": "Get message",
"description": "Retrieve a specific message from a session by its message ID.",
"responses": {
"200": {
"description": "Message",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"info": {
"$ref": "#/components/schemas/Message"
},
"parts": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Part"
}
}
},
"required": ["info", "parts"]
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.message({\n ...\n})"
}
]
}
},
"/session/{sessionID}/message/{messageID}/part/{partID}": {
"delete": {
"operationId": "part.delete",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "sessionID",
"schema": {
"type": "string"
},
"required": true,
"description": "Session ID"
},
{
"in": "path",
"name": "messageID",
"schema": {
"type": "string"
},
"required": true,
"description": "Message ID"
},
{
"in": "path",
"name": "partID",
"schema": {
"type": "string"
},
"required": true,
"description": "Part ID"
}
],
"description": "Delete a part from a message",
"responses": {
"200": {
"description": "Successfully deleted part",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.part.delete({\n ...\n})"
}
]
},
"patch": {
"operationId": "part.update",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "sessionID",
"schema": {
"type": "string"
},
"required": true,
"description": "Session ID"
},
{
"in": "path",
"name": "messageID",
"schema": {
"type": "string"
},
"required": true,
"description": "Message ID"
},
{
"in": "path",
"name": "partID",
"schema": {
"type": "string"
},
"required": true,
"description": "Part ID"
}
],
"description": "Update a part in a message",
"responses": {
"200": {
"description": "Successfully updated part",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Part"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Part"
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.part.update({\n ...\n})"
}
]
}
},
"/session/{sessionID}/prompt_async": {
"post": {
"operationId": "session.prompt_async",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "sessionID",
"schema": {
"type": "string"
},
"required": true,
"description": "Session ID"
}
],
"summary": "Send async message",
"description": "Create and send a new message to a session asynchronously, starting the session if needed and returning immediately.",
"responses": {
"204": {
"description": "Prompt accepted"
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"messageID": {
"type": "string",
"pattern": "^msg.*"
},
"model": {
"type": "object",
"properties": {
"providerID": {
"type": "string"
},
"modelID": {
"type": "string"
}
},
"required": ["providerID", "modelID"]
},
"agent": {
"type": "string"
},
"noReply": {
"type": "boolean"
},
"tools": {
"description": "@deprecated tools and permissions have been merged, you can set permissions on the session itself now",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "boolean"
}
},
"system": {
"type": "string"
},
"variant": {
"type": "string"
},
"parts": {
"type": "array",
"items": {
"anyOf": [
{
"$ref": "#/components/schemas/TextPartInput"
},
{
"$ref": "#/components/schemas/FilePartInput"
},
{
"$ref": "#/components/schemas/AgentPartInput"
},
{
"$ref": "#/components/schemas/SubtaskPartInput"
}
]
}
}
},
"required": ["parts"]
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.prompt_async({\n ...\n})"
}
]
}
},
"/session/{sessionID}/command": {
"post": {
"operationId": "session.command",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "sessionID",
"schema": {
"type": "string"
},
"required": true,
"description": "Session ID"
}
],
"summary": "Send command",
"description": "Send a new command to a session for execution by the AI assistant.",
"responses": {
"200": {
"description": "Created message",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"info": {
"$ref": "#/components/schemas/AssistantMessage"
},
"parts": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Part"
}
}
},
"required": ["info", "parts"]
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"messageID": {
"type": "string",
"pattern": "^msg.*"
},
"agent": {
"type": "string"
},
"model": {
"type": "string"
},
"arguments": {
"type": "string"
},
"command": {
"type": "string"
},
"variant": {
"type": "string"
},
"parts": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string",
"const": "file"
},
"mime": {
"type": "string"
},
"filename": {
"type": "string"
},
"url": {
"type": "string"
},
"source": {
"$ref": "#/components/schemas/FilePartSource"
}
},
"required": ["type", "mime", "url"]
}
]
}
}
},
"required": ["arguments", "command"]
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.command({\n ...\n})"
}
]
}
},
"/session/{sessionID}/shell": {
"post": {
"operationId": "session.shell",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "sessionID",
"schema": {
"type": "string"
},
"required": true,
"description": "Session ID"
}
],
"summary": "Run shell command",
"description": "Execute a shell command within the session context and return the AI's response.",
"responses": {
"200": {
"description": "Created message",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AssistantMessage"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"agent": {
"type": "string"
},
"model": {
"type": "object",
"properties": {
"providerID": {
"type": "string"
},
"modelID": {
"type": "string"
}
},
"required": ["providerID", "modelID"]
},
"command": {
"type": "string"
}
},
"required": ["agent", "command"]
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.shell({\n ...\n})"
}
]
}
},
"/session/{sessionID}/revert": {
"post": {
"operationId": "session.revert",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "sessionID",
"schema": {
"type": "string"
},
"required": true
}
],
"summary": "Revert message",
"description": "Revert a specific message in a session, undoing its effects and restoring the previous state.",
"responses": {
"200": {
"description": "Updated session",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Session"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"messageID": {
"type": "string",
"pattern": "^msg.*"
},
"partID": {
"type": "string",
"pattern": "^prt.*"
}
},
"required": ["messageID"]
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.revert({\n ...\n})"
}
]
}
},
"/session/{sessionID}/unrevert": {
"post": {
"operationId": "session.unrevert",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "sessionID",
"schema": {
"type": "string"
},
"required": true
}
],
"summary": "Restore reverted messages",
"description": "Restore all previously reverted messages in a session.",
"responses": {
"200": {
"description": "Updated session",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Session"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.session.unrevert({\n ...\n})"
}
]
}
},
"/session/{sessionID}/permissions/{permissionID}": {
"post": {
"operationId": "permission.respond",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "sessionID",
"schema": {
"type": "string"
},
"required": true
},
{
"in": "path",
"name": "permissionID",
"schema": {
"type": "string"
},
"required": true
}
],
"summary": "Respond to permission",
"deprecated": true,
"description": "Approve or deny a permission request from the AI assistant.",
"responses": {
"200": {
"description": "Permission processed successfully",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"response": {
"type": "string",
"enum": ["once", "always", "reject"]
}
},
"required": ["response"]
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.permission.respond({\n ...\n})"
}
]
}
},
"/permission/{requestID}/reply": {
"post": {
"operationId": "permission.reply",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "requestID",
"schema": {
"type": "string"
},
"required": true
}
],
"summary": "Respond to permission request",
"description": "Approve or deny a permission request from the AI assistant.",
"responses": {
"200": {
"description": "Permission processed successfully",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"reply": {
"type": "string",
"enum": ["once", "always", "reject"]
},
"message": {
"type": "string"
}
},
"required": ["reply"]
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.permission.reply({\n ...\n})"
}
]
}
},
"/permission": {
"get": {
"operationId": "permission.list",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"summary": "List pending permissions",
"description": "Get all pending permission requests across all sessions.",
"responses": {
"200": {
"description": "List of pending permissions",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PermissionRequest"
}
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.permission.list({\n ...\n})"
}
]
}
},
"/question": {
"get": {
"operationId": "question.list",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"summary": "List pending questions",
"description": "Get all pending question requests across all sessions.",
"responses": {
"200": {
"description": "List of pending questions",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/QuestionRequest"
}
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.question.list({\n ...\n})"
}
]
}
},
"/question/{requestID}/reply": {
"post": {
"operationId": "question.reply",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "requestID",
"schema": {
"type": "string"
},
"required": true
}
],
"summary": "Reply to question request",
"description": "Provide answers to a question request from the AI assistant.",
"responses": {
"200": {
"description": "Question answered successfully",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"answers": {
"description": "User answers in order of questions (each answer is an array of selected labels)",
"type": "array",
"items": {
"$ref": "#/components/schemas/QuestionAnswer"
}
}
},
"required": ["answers"]
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.question.reply({\n ...\n})"
}
]
}
},
"/question/{requestID}/reject": {
"post": {
"operationId": "question.reject",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "requestID",
"schema": {
"type": "string"
},
"required": true
}
],
"summary": "Reject question request",
"description": "Reject a question request from the AI assistant.",
"responses": {
"200": {
"description": "Question rejected successfully",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.question.reject({\n ...\n})"
}
]
}
},
"/provider": {
"get": {
"operationId": "provider.list",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"summary": "List providers",
"description": "Get a list of all available AI providers, including both available and connected ones.",
"responses": {
"200": {
"description": "List of providers",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"all": {
"type": "array",
"items": {
"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"]
}
},
"required": ["input", "output"]
},
"limit": {
"type": "object",
"properties": {
"context": {
"type": "number"
},
"input": {
"type": "number"
},
"output": {
"type": "number"
}
},
"required": ["context", "output"]
},
"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"]
},
"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"
}
},
"required": ["npm"]
},
"variants": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
}
},
"required": [
"id",
"name",
"release_date",
"attachment",
"reasoning",
"temperature",
"tool_call",
"limit",
"options"
]
}
}
},
"required": ["name", "env", "id", "models"]
}
},
"default": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
},
"connected": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": ["all", "default", "connected"]
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.provider.list({\n ...\n})"
}
]
}
},
"/provider/auth": {
"get": {
"operationId": "provider.auth",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"summary": "Get provider auth methods",
"description": "Retrieve available authentication methods for all AI providers.",
"responses": {
"200": {
"description": "Provider auth methods",
"content": {
"application/json": {
"schema": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ProviderAuthMethod"
}
}
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.provider.auth({\n ...\n})"
}
]
}
},
"/provider/{providerID}/oauth/authorize": {
"post": {
"operationId": "provider.oauth.authorize",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "providerID",
"schema": {
"type": "string"
},
"required": true,
"description": "Provider ID"
}
],
"summary": "OAuth authorize",
"description": "Initiate OAuth authorization for a specific AI provider to get an authorization URL.",
"responses": {
"200": {
"description": "Authorization URL and method",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProviderAuthAuthorization"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"method": {
"description": "Auth method index",
"type": "number"
}
},
"required": ["method"]
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.provider.oauth.authorize({\n ...\n})"
}
]
}
},
"/provider/{providerID}/oauth/callback": {
"post": {
"operationId": "provider.oauth.callback",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "providerID",
"schema": {
"type": "string"
},
"required": true,
"description": "Provider ID"
}
],
"summary": "OAuth callback",
"description": "Handle the OAuth callback from a provider after user authorization.",
"responses": {
"200": {
"description": "OAuth callback processed successfully",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"method": {
"description": "Auth method index",
"type": "number"
},
"code": {
"description": "OAuth authorization code",
"type": "string"
}
},
"required": ["method"]
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.provider.oauth.callback({\n ...\n})"
}
]
}
},
"/find": {
"get": {
"operationId": "find.text",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "pattern",
"schema": {
"type": "string"
},
"required": true
}
],
"summary": "Find text",
"description": "Search for text patterns across files in the project using ripgrep.",
"responses": {
"200": {
"description": "Matches",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"path": {
"type": "object",
"properties": {
"text": {
"type": "string"
}
},
"required": ["text"]
},
"lines": {
"type": "object",
"properties": {
"text": {
"type": "string"
}
},
"required": ["text"]
},
"line_number": {
"type": "number"
},
"absolute_offset": {
"type": "number"
},
"submatches": {
"type": "array",
"items": {
"type": "object",
"properties": {
"match": {
"type": "object",
"properties": {
"text": {
"type": "string"
}
},
"required": ["text"]
},
"start": {
"type": "number"
},
"end": {
"type": "number"
}
},
"required": ["match", "start", "end"]
}
}
},
"required": ["path", "lines", "line_number", "absolute_offset", "submatches"]
}
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.find.text({\n ...\n})"
}
]
}
},
"/find/file": {
"get": {
"operationId": "find.files",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "query",
"schema": {
"type": "string"
},
"required": true
},
{
"in": "query",
"name": "dirs",
"schema": {
"type": "string",
"enum": ["true", "false"]
}
},
{
"in": "query",
"name": "type",
"schema": {
"type": "string",
"enum": ["file", "directory"]
}
},
{
"in": "query",
"name": "limit",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 200
}
}
],
"summary": "Find files",
"description": "Search for files or directories by name or pattern in the project directory.",
"responses": {
"200": {
"description": "File paths",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.find.files({\n ...\n})"
}
]
}
},
"/find/symbol": {
"get": {
"operationId": "find.symbols",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "query",
"schema": {
"type": "string"
},
"required": true
}
],
"summary": "Find symbols",
"description": "Search for workspace symbols like functions, classes, and variables using LSP.",
"responses": {
"200": {
"description": "Symbols",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Symbol"
}
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.find.symbols({\n ...\n})"
}
]
}
},
"/file": {
"get": {
"operationId": "file.list",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "path",
"schema": {
"type": "string"
},
"required": true
}
],
"summary": "List files",
"description": "List files and directories in a specified path.",
"responses": {
"200": {
"description": "Files and directories",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/FileNode"
}
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.file.list({\n ...\n})"
}
]
}
},
"/file/content": {
"get": {
"operationId": "file.read",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "query",
"name": "path",
"schema": {
"type": "string"
},
"required": true
}
],
"summary": "Read file",
"description": "Read the content of a specified file.",
"responses": {
"200": {
"description": "File content",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FileContent"
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.file.read({\n ...\n})"
}
]
}
},
"/file/status": {
"get": {
"operationId": "file.status",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"summary": "Get file status",
"description": "Get the git status of all files in the project.",
"responses": {
"200": {
"description": "File status",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/File"
}
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.file.status({\n ...\n})"
}
]
}
},
"/mcp": {
"get": {
"operationId": "mcp.status",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"summary": "Get MCP status",
"description": "Get the status of all Model Context Protocol (MCP) servers.",
"responses": {
"200": {
"description": "MCP server status",
"content": {
"application/json": {
"schema": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/components/schemas/MCPStatus"
}
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.mcp.status({\n ...\n})"
}
]
},
"post": {
"operationId": "mcp.add",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"summary": "Add MCP server",
"description": "Dynamically add a new Model Context Protocol (MCP) server to the system.",
"responses": {
"200": {
"description": "MCP server added successfully",
"content": {
"application/json": {
"schema": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/components/schemas/MCPStatus"
}
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"config": {
"anyOf": [
{
"$ref": "#/components/schemas/McpLocalConfig"
},
{
"$ref": "#/components/schemas/McpRemoteConfig"
}
]
}
},
"required": ["name", "config"]
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.mcp.add({\n ...\n})"
}
]
}
},
"/mcp/{name}/auth": {
"post": {
"operationId": "mcp.auth.start",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"schema": {
"type": "string"
},
"in": "path",
"name": "name",
"required": true
}
],
"summary": "Start MCP OAuth",
"description": "Start OAuth authentication flow for a Model Context Protocol (MCP) server.",
"responses": {
"200": {
"description": "OAuth flow started",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"authorizationUrl": {
"description": "URL to open in browser for authorization",
"type": "string"
}
},
"required": ["authorizationUrl"]
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.mcp.auth.start({\n ...\n})"
}
]
},
"delete": {
"operationId": "mcp.auth.remove",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"schema": {
"type": "string"
},
"in": "path",
"name": "name",
"required": true
}
],
"summary": "Remove MCP OAuth",
"description": "Remove OAuth credentials for an MCP server",
"responses": {
"200": {
"description": "OAuth credentials removed",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"success": {
"type": "boolean",
"const": true
}
},
"required": ["success"]
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.mcp.auth.remove({\n ...\n})"
}
]
}
},
"/mcp/{name}/auth/callback": {
"post": {
"operationId": "mcp.auth.callback",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"schema": {
"type": "string"
},
"in": "path",
"name": "name",
"required": true
}
],
"summary": "Complete MCP OAuth",
"description": "Complete OAuth authentication for a Model Context Protocol (MCP) server using the authorization code.",
"responses": {
"200": {
"description": "OAuth authentication completed",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MCPStatus"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"code": {
"description": "Authorization code from OAuth callback",
"type": "string"
}
},
"required": ["code"]
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.mcp.auth.callback({\n ...\n})"
}
]
}
},
"/mcp/{name}/auth/authenticate": {
"post": {
"operationId": "mcp.auth.authenticate",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"schema": {
"type": "string"
},
"in": "path",
"name": "name",
"required": true
}
],
"summary": "Authenticate MCP OAuth",
"description": "Start OAuth flow and wait for callback (opens browser)",
"responses": {
"200": {
"description": "OAuth authentication completed",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MCPStatus"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.mcp.auth.authenticate({\n ...\n})"
}
]
}
},
"/mcp/{name}/connect": {
"post": {
"operationId": "mcp.connect",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "name",
"schema": {
"type": "string"
},
"required": true
}
],
"description": "Connect an MCP server",
"responses": {
"200": {
"description": "MCP server connected successfully",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.mcp.connect({\n ...\n})"
}
]
}
},
"/mcp/{name}/disconnect": {
"post": {
"operationId": "mcp.disconnect",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
},
{
"in": "path",
"name": "name",
"schema": {
"type": "string"
},
"required": true
}
],
"description": "Disconnect an MCP server",
"responses": {
"200": {
"description": "MCP server disconnected successfully",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.mcp.disconnect({\n ...\n})"
}
]
}
},
"/tui/append-prompt": {
"post": {
"operationId": "tui.appendPrompt",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"summary": "Append TUI prompt",
"description": "Append prompt to the TUI",
"responses": {
"200": {
"description": "Prompt processed successfully",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"text": {
"type": "string"
}
},
"required": ["text"]
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tui.appendPrompt({\n ...\n})"
}
]
}
},
"/tui/open-help": {
"post": {
"operationId": "tui.openHelp",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"summary": "Open help dialog",
"description": "Open the help dialog in the TUI to display user assistance information.",
"responses": {
"200": {
"description": "Help dialog opened successfully",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tui.openHelp({\n ...\n})"
}
]
}
},
"/tui/open-sessions": {
"post": {
"operationId": "tui.openSessions",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"summary": "Open sessions dialog",
"description": "Open the session dialog",
"responses": {
"200": {
"description": "Session dialog opened successfully",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tui.openSessions({\n ...\n})"
}
]
}
},
"/tui/open-themes": {
"post": {
"operationId": "tui.openThemes",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"summary": "Open themes dialog",
"description": "Open the theme dialog",
"responses": {
"200": {
"description": "Theme dialog opened successfully",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tui.openThemes({\n ...\n})"
}
]
}
},
"/tui/open-models": {
"post": {
"operationId": "tui.openModels",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"summary": "Open models dialog",
"description": "Open the model dialog",
"responses": {
"200": {
"description": "Model dialog opened successfully",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tui.openModels({\n ...\n})"
}
]
}
},
"/tui/submit-prompt": {
"post": {
"operationId": "tui.submitPrompt",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"summary": "Submit TUI prompt",
"description": "Submit the prompt",
"responses": {
"200": {
"description": "Prompt submitted successfully",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tui.submitPrompt({\n ...\n})"
}
]
}
},
"/tui/clear-prompt": {
"post": {
"operationId": "tui.clearPrompt",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"summary": "Clear TUI prompt",
"description": "Clear the prompt",
"responses": {
"200": {
"description": "Prompt cleared successfully",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tui.clearPrompt({\n ...\n})"
}
]
}
},
"/tui/execute-command": {
"post": {
"operationId": "tui.executeCommand",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"summary": "Execute TUI command",
"description": "Execute a TUI command (e.g. agent_cycle)",
"responses": {
"200": {
"description": "Command executed successfully",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"command": {
"type": "string"
}
},
"required": ["command"]
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tui.executeCommand({\n ...\n})"
}
]
}
},
"/tui/show-toast": {
"post": {
"operationId": "tui.showToast",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"summary": "Show TUI toast",
"description": "Show a toast notification in the TUI",
"responses": {
"200": {
"description": "Toast notification shown successfully",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"message": {
"type": "string"
},
"variant": {
"type": "string",
"enum": ["info", "success", "warning", "error"]
},
"duration": {
"description": "Duration in milliseconds",
"default": 5000,
"type": "number"
}
},
"required": ["message", "variant"]
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tui.showToast({\n ...\n})"
}
]
}
},
"/tui/publish": {
"post": {
"operationId": "tui.publish",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"summary": "Publish TUI event",
"description": "Publish a TUI event",
"responses": {
"200": {
"description": "Event published successfully",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"anyOf": [
{
"$ref": "#/components/schemas/Event.tui.prompt.append"
},
{
"$ref": "#/components/schemas/Event.tui.command.execute"
},
{
"$ref": "#/components/schemas/Event.tui.toast.show"
},
{
"$ref": "#/components/schemas/Event.tui.session.select"
}
]
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tui.publish({\n ...\n})"
}
]
}
},
"/tui/select-session": {
"post": {
"operationId": "tui.selectSession",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"summary": "Select session",
"description": "Navigate the TUI to display the specified session.",
"responses": {
"200": {
"description": "Session selected successfully",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotFoundError"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"sessionID": {
"description": "Session ID to navigate to",
"type": "string",
"pattern": "^ses"
}
},
"required": ["sessionID"]
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tui.selectSession({\n ...\n})"
}
]
}
},
"/tui/control/next": {
"get": {
"operationId": "tui.control.next",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"summary": "Get next TUI request",
"description": "Retrieve the next TUI (Terminal User Interface) request from the queue for processing.",
"responses": {
"200": {
"description": "Next TUI request",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"path": {
"type": "string"
},
"body": {}
},
"required": ["path", "body"]
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tui.control.next({\n ...\n})"
}
]
}
},
"/tui/control/response": {
"post": {
"operationId": "tui.control.response",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"summary": "Submit TUI response",
"description": "Submit a response to the TUI request queue to complete a pending request.",
"responses": {
"200": {
"description": "Response submitted successfully",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.tui.control.response({\n ...\n})"
}
]
}
},
"/instance/dispose": {
"post": {
"operationId": "instance.dispose",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"summary": "Dispose instance",
"description": "Clean up and dispose the current OpenCode instance, releasing all resources.",
"responses": {
"200": {
"description": "Instance disposed",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.instance.dispose({\n ...\n})"
}
]
}
},
"/path": {
"get": {
"operationId": "path.get",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"summary": "Get paths",
"description": "Retrieve the current working directory and related path information for the OpenCode instance.",
"responses": {
"200": {
"description": "Path",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Path"
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.path.get({\n ...\n})"
}
]
}
},
"/vcs": {
"get": {
"operationId": "vcs.get",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"summary": "Get VCS info",
"description": "Retrieve version control system (VCS) information for the current project, such as git branch.",
"responses": {
"200": {
"description": "VCS info",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VcsInfo"
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.vcs.get({\n ...\n})"
}
]
}
},
"/command": {
"get": {
"operationId": "command.list",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"summary": "List commands",
"description": "Get a list of all available commands in the OpenCode system.",
"responses": {
"200": {
"description": "List of commands",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Command"
}
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.command.list({\n ...\n})"
}
]
}
},
"/log": {
"post": {
"operationId": "app.log",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"summary": "Write log",
"description": "Write a log entry to the server logs with specified level and metadata.",
"responses": {
"200": {
"description": "Log entry written successfully",
"content": {
"application/json": {
"schema": {
"type": "boolean"
}
}
}
},
"400": {
"description": "Bad request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BadRequestError"
}
}
}
}
},
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"service": {
"description": "Service name for the log entry",
"type": "string"
},
"level": {
"description": "Log level",
"type": "string",
"enum": ["debug", "info", "error", "warn"]
},
"message": {
"description": "Log message",
"type": "string"
},
"extra": {
"description": "Additional metadata for the log entry",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": ["service", "level", "message"]
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.app.log({\n ...\n})"
}
]
}
},
"/agent": {
"get": {
"operationId": "app.agents",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"summary": "List agents",
"description": "Get a list of all available AI agents in the OpenCode system.",
"responses": {
"200": {
"description": "List of agents",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Agent"
}
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.app.agents({\n ...\n})"
}
]
}
},
"/skill": {
"get": {
"operationId": "app.skills",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"summary": "List skills",
"description": "Get a list of all available skills in the OpenCode system.",
"responses": {
"200": {
"description": "List of skills",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"location": {
"type": "string"
},
"content": {
"type": "string"
}
},
"required": ["name", "description", "location", "content"]
}
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.app.skills({\n ...\n})"
}
]
}
},
"/lsp": {
"get": {
"operationId": "lsp.status",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"summary": "Get LSP status",
"description": "Get LSP server status",
"responses": {
"200": {
"description": "LSP server status",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/LSPStatus"
}
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.lsp.status({\n ...\n})"
}
]
}
},
"/formatter": {
"get": {
"operationId": "formatter.status",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"summary": "Get formatter status",
"description": "Get formatter status",
"responses": {
"200": {
"description": "Formatter status",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/FormatterStatus"
}
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.formatter.status({\n ...\n})"
}
]
}
},
"/event": {
"get": {
"operationId": "event.subscribe",
"parameters": [
{
"in": "query",
"name": "directory",
"schema": {
"type": "string"
}
}
],
"summary": "Subscribe to events",
"description": "Get events",
"responses": {
"200": {
"description": "Event stream",
"content": {
"text/event-stream": {
"schema": {
"$ref": "#/components/schemas/Event"
}
}
}
}
},
"x-codeSamples": [
{
"lang": "js",
"source": "import { createOpencodeClient } from \"@opencode-ai/sdk\n\nconst client = createOpencodeClient()\nawait client.event.subscribe({\n ...\n})"
}
]
}
}
},
"components": {
"schemas": {
"Event.installation.updated": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "installation.updated"
},
"properties": {
"type": "object",
"properties": {
"version": {
"type": "string"
}
},
"required": ["version"]
}
},
"required": ["type", "properties"]
},
"Event.installation.update-available": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "installation.update-available"
},
"properties": {
"type": "object",
"properties": {
"version": {
"type": "string"
}
},
"required": ["version"]
}
},
"required": ["type", "properties"]
},
"Project": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"worktree": {
"type": "string"
},
"vcs": {
"type": "string",
"const": "git"
},
"name": {
"type": "string"
},
"icon": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"override": {
"type": "string"
},
"color": {
"type": "string"
}
}
},
"commands": {
"type": "object",
"properties": {
"start": {
"description": "Startup script to run when creating a new workspace (worktree)",
"type": "string"
}
}
},
"time": {
"type": "object",
"properties": {
"created": {
"type": "number"
},
"updated": {
"type": "number"
},
"initialized": {
"type": "number"
}
},
"required": ["created", "updated"]
},
"sandboxes": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": ["id", "worktree", "time", "sandboxes"]
},
"Event.project.updated": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "project.updated"
},
"properties": {
"$ref": "#/components/schemas/Project"
}
},
"required": ["type", "properties"]
},
"Event.server.instance.disposed": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "server.instance.disposed"
},
"properties": {
"type": "object",
"properties": {
"directory": {
"type": "string"
}
},
"required": ["directory"]
}
},
"required": ["type", "properties"]
},
"Event.server.connected": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "server.connected"
},
"properties": {
"type": "object",
"properties": {}
}
},
"required": ["type", "properties"]
},
"Event.global.disposed": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "global.disposed"
},
"properties": {
"type": "object",
"properties": {}
}
},
"required": ["type", "properties"]
},
"Event.lsp.client.diagnostics": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "lsp.client.diagnostics"
},
"properties": {
"type": "object",
"properties": {
"serverID": {
"type": "string"
},
"path": {
"type": "string"
}
},
"required": ["serverID", "path"]
}
},
"required": ["type", "properties"]
},
"Event.lsp.updated": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "lsp.updated"
},
"properties": {
"type": "object",
"properties": {}
}
},
"required": ["type", "properties"]
},
"Event.file.edited": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "file.edited"
},
"properties": {
"type": "object",
"properties": {
"file": {
"type": "string"
}
},
"required": ["file"]
}
},
"required": ["type", "properties"]
},
"FileDiff": {
"type": "object",
"properties": {
"file": {
"type": "string"
},
"before": {
"type": "string"
},
"after": {
"type": "string"
},
"additions": {
"type": "number"
},
"deletions": {
"type": "number"
}
},
"required": ["file", "before", "after", "additions", "deletions"]
},
"UserMessage": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"sessionID": {
"type": "string"
},
"role": {
"type": "string",
"const": "user"
},
"time": {
"type": "object",
"properties": {
"created": {
"type": "number"
}
},
"required": ["created"]
},
"summary": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"body": {
"type": "string"
},
"diffs": {
"type": "array",
"items": {
"$ref": "#/components/schemas/FileDiff"
}
}
},
"required": ["diffs"]
},
"agent": {
"type": "string"
},
"model": {
"type": "object",
"properties": {
"providerID": {
"type": "string"
},
"modelID": {
"type": "string"
}
},
"required": ["providerID", "modelID"]
},
"system": {
"type": "string"
},
"tools": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "boolean"
}
},
"variant": {
"type": "string"
}
},
"required": ["id", "sessionID", "role", "time", "agent", "model"]
},
"ProviderAuthError": {
"type": "object",
"properties": {
"name": {
"type": "string",
"const": "ProviderAuthError"
},
"data": {
"type": "object",
"properties": {
"providerID": {
"type": "string"
},
"message": {
"type": "string"
}
},
"required": ["providerID", "message"]
}
},
"required": ["name", "data"]
},
"UnknownError": {
"type": "object",
"properties": {
"name": {
"type": "string",
"const": "UnknownError"
},
"data": {
"type": "object",
"properties": {
"message": {
"type": "string"
}
},
"required": ["message"]
}
},
"required": ["name", "data"]
},
"MessageOutputLengthError": {
"type": "object",
"properties": {
"name": {
"type": "string",
"const": "MessageOutputLengthError"
},
"data": {
"type": "object",
"properties": {}
}
},
"required": ["name", "data"]
},
"MessageAbortedError": {
"type": "object",
"properties": {
"name": {
"type": "string",
"const": "MessageAbortedError"
},
"data": {
"type": "object",
"properties": {
"message": {
"type": "string"
}
},
"required": ["message"]
}
},
"required": ["name", "data"]
},
"APIError": {
"type": "object",
"properties": {
"name": {
"type": "string",
"const": "APIError"
},
"data": {
"type": "object",
"properties": {
"message": {
"type": "string"
},
"statusCode": {
"type": "number"
},
"isRetryable": {
"type": "boolean"
},
"responseHeaders": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
},
"responseBody": {
"type": "string"
},
"metadata": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
}
},
"required": ["message", "isRetryable"]
}
},
"required": ["name", "data"]
},
"AssistantMessage": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"sessionID": {
"type": "string"
},
"role": {
"type": "string",
"const": "assistant"
},
"time": {
"type": "object",
"properties": {
"created": {
"type": "number"
},
"completed": {
"type": "number"
}
},
"required": ["created"]
},
"error": {
"anyOf": [
{
"$ref": "#/components/schemas/ProviderAuthError"
},
{
"$ref": "#/components/schemas/UnknownError"
},
{
"$ref": "#/components/schemas/MessageOutputLengthError"
},
{
"$ref": "#/components/schemas/MessageAbortedError"
},
{
"$ref": "#/components/schemas/APIError"
}
]
},
"parentID": {
"type": "string"
},
"modelID": {
"type": "string"
},
"providerID": {
"type": "string"
},
"mode": {
"type": "string"
},
"agent": {
"type": "string"
},
"path": {
"type": "object",
"properties": {
"cwd": {
"type": "string"
},
"root": {
"type": "string"
}
},
"required": ["cwd", "root"]
},
"summary": {
"type": "boolean"
},
"cost": {
"type": "number"
},
"tokens": {
"type": "object",
"properties": {
"input": {
"type": "number"
},
"output": {
"type": "number"
},
"reasoning": {
"type": "number"
},
"cache": {
"type": "object",
"properties": {
"read": {
"type": "number"
},
"write": {
"type": "number"
}
},
"required": ["read", "write"]
}
},
"required": ["input", "output", "reasoning", "cache"]
},
"finish": {
"type": "string"
}
},
"required": [
"id",
"sessionID",
"role",
"time",
"parentID",
"modelID",
"providerID",
"mode",
"agent",
"path",
"cost",
"tokens"
]
},
"Message": {
"anyOf": [
{
"$ref": "#/components/schemas/UserMessage"
},
{
"$ref": "#/components/schemas/AssistantMessage"
}
]
},
"Event.message.updated": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "message.updated"
},
"properties": {
"type": "object",
"properties": {
"info": {
"$ref": "#/components/schemas/Message"
}
},
"required": ["info"]
}
},
"required": ["type", "properties"]
},
"Event.message.removed": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "message.removed"
},
"properties": {
"type": "object",
"properties": {
"sessionID": {
"type": "string"
},
"messageID": {
"type": "string"
}
},
"required": ["sessionID", "messageID"]
}
},
"required": ["type", "properties"]
},
"TextPart": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"sessionID": {
"type": "string"
},
"messageID": {
"type": "string"
},
"type": {
"type": "string",
"const": "text"
},
"text": {
"type": "string"
},
"synthetic": {
"type": "boolean"
},
"ignored": {
"type": "boolean"
},
"time": {
"type": "object",
"properties": {
"start": {
"type": "number"
},
"end": {
"type": "number"
}
},
"required": ["start"]
},
"metadata": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": ["id", "sessionID", "messageID", "type", "text"]
},
"SubtaskPart": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"sessionID": {
"type": "string"
},
"messageID": {
"type": "string"
},
"type": {
"type": "string",
"const": "subtask"
},
"prompt": {
"type": "string"
},
"description": {
"type": "string"
},
"agent": {
"type": "string"
},
"model": {
"type": "object",
"properties": {
"providerID": {
"type": "string"
},
"modelID": {
"type": "string"
}
},
"required": ["providerID", "modelID"]
},
"command": {
"type": "string"
}
},
"required": ["id", "sessionID", "messageID", "type", "prompt", "description", "agent"]
},
"ReasoningPart": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"sessionID": {
"type": "string"
},
"messageID": {
"type": "string"
},
"type": {
"type": "string",
"const": "reasoning"
},
"text": {
"type": "string"
},
"metadata": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"time": {
"type": "object",
"properties": {
"start": {
"type": "number"
},
"end": {
"type": "number"
}
},
"required": ["start"]
}
},
"required": ["id", "sessionID", "messageID", "type", "text", "time"]
},
"FilePartSourceText": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"start": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"end": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"required": ["value", "start", "end"]
},
"FileSource": {
"type": "object",
"properties": {
"text": {
"$ref": "#/components/schemas/FilePartSourceText"
},
"type": {
"type": "string",
"const": "file"
},
"path": {
"type": "string"
}
},
"required": ["text", "type", "path"]
},
"Range": {
"type": "object",
"properties": {
"start": {
"type": "object",
"properties": {
"line": {
"type": "number"
},
"character": {
"type": "number"
}
},
"required": ["line", "character"]
},
"end": {
"type": "object",
"properties": {
"line": {
"type": "number"
},
"character": {
"type": "number"
}
},
"required": ["line", "character"]
}
},
"required": ["start", "end"]
},
"SymbolSource": {
"type": "object",
"properties": {
"text": {
"$ref": "#/components/schemas/FilePartSourceText"
},
"type": {
"type": "string",
"const": "symbol"
},
"path": {
"type": "string"
},
"range": {
"$ref": "#/components/schemas/Range"
},
"name": {
"type": "string"
},
"kind": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"required": ["text", "type", "path", "range", "name", "kind"]
},
"ResourceSource": {
"type": "object",
"properties": {
"text": {
"$ref": "#/components/schemas/FilePartSourceText"
},
"type": {
"type": "string",
"const": "resource"
},
"clientName": {
"type": "string"
},
"uri": {
"type": "string"
}
},
"required": ["text", "type", "clientName", "uri"]
},
"FilePartSource": {
"anyOf": [
{
"$ref": "#/components/schemas/FileSource"
},
{
"$ref": "#/components/schemas/SymbolSource"
},
{
"$ref": "#/components/schemas/ResourceSource"
}
]
},
"FilePart": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"sessionID": {
"type": "string"
},
"messageID": {
"type": "string"
},
"type": {
"type": "string",
"const": "file"
},
"mime": {
"type": "string"
},
"filename": {
"type": "string"
},
"url": {
"type": "string"
},
"source": {
"$ref": "#/components/schemas/FilePartSource"
}
},
"required": ["id", "sessionID", "messageID", "type", "mime", "url"]
},
"ToolStatePending": {
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "pending"
},
"input": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"raw": {
"type": "string"
}
},
"required": ["status", "input", "raw"]
},
"ToolStateRunning": {
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "running"
},
"input": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"title": {
"type": "string"
},
"metadata": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"time": {
"type": "object",
"properties": {
"start": {
"type": "number"
}
},
"required": ["start"]
}
},
"required": ["status", "input", "time"]
},
"ToolStateCompleted": {
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "completed"
},
"input": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"output": {
"type": "string"
},
"title": {
"type": "string"
},
"metadata": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"time": {
"type": "object",
"properties": {
"start": {
"type": "number"
},
"end": {
"type": "number"
},
"compacted": {
"type": "number"
}
},
"required": ["start", "end"]
},
"attachments": {
"type": "array",
"items": {
"$ref": "#/components/schemas/FilePart"
}
}
},
"required": ["status", "input", "output", "title", "metadata", "time"]
},
"ToolStateError": {
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "error"
},
"input": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"error": {
"type": "string"
},
"metadata": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"time": {
"type": "object",
"properties": {
"start": {
"type": "number"
},
"end": {
"type": "number"
}
},
"required": ["start", "end"]
}
},
"required": ["status", "input", "error", "time"]
},
"ToolState": {
"anyOf": [
{
"$ref": "#/components/schemas/ToolStatePending"
},
{
"$ref": "#/components/schemas/ToolStateRunning"
},
{
"$ref": "#/components/schemas/ToolStateCompleted"
},
{
"$ref": "#/components/schemas/ToolStateError"
}
]
},
"ToolPart": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"sessionID": {
"type": "string"
},
"messageID": {
"type": "string"
},
"type": {
"type": "string",
"const": "tool"
},
"callID": {
"type": "string"
},
"tool": {
"type": "string"
},
"state": {
"$ref": "#/components/schemas/ToolState"
},
"metadata": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": ["id", "sessionID", "messageID", "type", "callID", "tool", "state"]
},
"StepStartPart": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"sessionID": {
"type": "string"
},
"messageID": {
"type": "string"
},
"type": {
"type": "string",
"const": "step-start"
},
"snapshot": {
"type": "string"
}
},
"required": ["id", "sessionID", "messageID", "type"]
},
"StepFinishPart": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"sessionID": {
"type": "string"
},
"messageID": {
"type": "string"
},
"type": {
"type": "string",
"const": "step-finish"
},
"reason": {
"type": "string"
},
"snapshot": {
"type": "string"
},
"cost": {
"type": "number"
},
"tokens": {
"type": "object",
"properties": {
"input": {
"type": "number"
},
"output": {
"type": "number"
},
"reasoning": {
"type": "number"
},
"cache": {
"type": "object",
"properties": {
"read": {
"type": "number"
},
"write": {
"type": "number"
}
},
"required": ["read", "write"]
}
},
"required": ["input", "output", "reasoning", "cache"]
}
},
"required": ["id", "sessionID", "messageID", "type", "reason", "cost", "tokens"]
},
"SnapshotPart": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"sessionID": {
"type": "string"
},
"messageID": {
"type": "string"
},
"type": {
"type": "string",
"const": "snapshot"
},
"snapshot": {
"type": "string"
}
},
"required": ["id", "sessionID", "messageID", "type", "snapshot"]
},
"PatchPart": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"sessionID": {
"type": "string"
},
"messageID": {
"type": "string"
},
"type": {
"type": "string",
"const": "patch"
},
"hash": {
"type": "string"
},
"files": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": ["id", "sessionID", "messageID", "type", "hash", "files"]
},
"AgentPart": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"sessionID": {
"type": "string"
},
"messageID": {
"type": "string"
},
"type": {
"type": "string",
"const": "agent"
},
"name": {
"type": "string"
},
"source": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"start": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"end": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"required": ["value", "start", "end"]
}
},
"required": ["id", "sessionID", "messageID", "type", "name"]
},
"RetryPart": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"sessionID": {
"type": "string"
},
"messageID": {
"type": "string"
},
"type": {
"type": "string",
"const": "retry"
},
"attempt": {
"type": "number"
},
"error": {
"$ref": "#/components/schemas/APIError"
},
"time": {
"type": "object",
"properties": {
"created": {
"type": "number"
}
},
"required": ["created"]
}
},
"required": ["id", "sessionID", "messageID", "type", "attempt", "error", "time"]
},
"CompactionPart": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"sessionID": {
"type": "string"
},
"messageID": {
"type": "string"
},
"type": {
"type": "string",
"const": "compaction"
},
"auto": {
"type": "boolean"
}
},
"required": ["id", "sessionID", "messageID", "type", "auto"]
},
"Part": {
"anyOf": [
{
"$ref": "#/components/schemas/TextPart"
},
{
"$ref": "#/components/schemas/SubtaskPart"
},
{
"$ref": "#/components/schemas/ReasoningPart"
},
{
"$ref": "#/components/schemas/FilePart"
},
{
"$ref": "#/components/schemas/ToolPart"
},
{
"$ref": "#/components/schemas/StepStartPart"
},
{
"$ref": "#/components/schemas/StepFinishPart"
},
{
"$ref": "#/components/schemas/SnapshotPart"
},
{
"$ref": "#/components/schemas/PatchPart"
},
{
"$ref": "#/components/schemas/AgentPart"
},
{
"$ref": "#/components/schemas/RetryPart"
},
{
"$ref": "#/components/schemas/CompactionPart"
}
]
},
"Event.message.part.updated": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "message.part.updated"
},
"properties": {
"type": "object",
"properties": {
"part": {
"$ref": "#/components/schemas/Part"
},
"delta": {
"type": "string"
}
},
"required": ["part"]
}
},
"required": ["type", "properties"]
},
"Event.message.part.removed": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "message.part.removed"
},
"properties": {
"type": "object",
"properties": {
"sessionID": {
"type": "string"
},
"messageID": {
"type": "string"
},
"partID": {
"type": "string"
}
},
"required": ["sessionID", "messageID", "partID"]
}
},
"required": ["type", "properties"]
},
"PermissionRequest": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^per.*"
},
"sessionID": {
"type": "string",
"pattern": "^ses.*"
},
"permission": {
"type": "string"
},
"patterns": {
"type": "array",
"items": {
"type": "string"
}
},
"metadata": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"always": {
"type": "array",
"items": {
"type": "string"
}
},
"tool": {
"type": "object",
"properties": {
"messageID": {
"type": "string"
},
"callID": {
"type": "string"
}
},
"required": ["messageID", "callID"]
}
},
"required": ["id", "sessionID", "permission", "patterns", "metadata", "always"]
},
"Event.permission.asked": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "permission.asked"
},
"properties": {
"$ref": "#/components/schemas/PermissionRequest"
}
},
"required": ["type", "properties"]
},
"Event.permission.replied": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "permission.replied"
},
"properties": {
"type": "object",
"properties": {
"sessionID": {
"type": "string"
},
"requestID": {
"type": "string"
},
"reply": {
"type": "string",
"enum": ["once", "always", "reject"]
}
},
"required": ["sessionID", "requestID", "reply"]
}
},
"required": ["type", "properties"]
},
"SessionStatus": {
"anyOf": [
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "idle"
}
},
"required": ["type"]
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "retry"
},
"attempt": {
"type": "number"
},
"message": {
"type": "string"
},
"next": {
"type": "number"
}
},
"required": ["type", "attempt", "message", "next"]
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "busy"
}
},
"required": ["type"]
}
]
},
"Event.session.status": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "session.status"
},
"properties": {
"type": "object",
"properties": {
"sessionID": {
"type": "string"
},
"status": {
"$ref": "#/components/schemas/SessionStatus"
}
},
"required": ["sessionID", "status"]
}
},
"required": ["type", "properties"]
},
"Event.session.idle": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "session.idle"
},
"properties": {
"type": "object",
"properties": {
"sessionID": {
"type": "string"
}
},
"required": ["sessionID"]
}
},
"required": ["type", "properties"]
},
"QuestionOption": {
"type": "object",
"properties": {
"label": {
"description": "Display text (1-5 words, concise)",
"type": "string"
},
"description": {
"description": "Explanation of choice",
"type": "string"
}
},
"required": ["label", "description"]
},
"QuestionInfo": {
"type": "object",
"properties": {
"question": {
"description": "Complete question",
"type": "string"
},
"header": {
"description": "Very short label (max 30 chars)",
"type": "string"
},
"options": {
"description": "Available choices",
"type": "array",
"items": {
"$ref": "#/components/schemas/QuestionOption"
}
},
"multiple": {
"description": "Allow selecting multiple choices",
"type": "boolean"
},
"custom": {
"description": "Allow typing a custom answer (default: true)",
"type": "boolean"
}
},
"required": ["question", "header", "options"]
},
"QuestionRequest": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^que.*"
},
"sessionID": {
"type": "string",
"pattern": "^ses.*"
},
"questions": {
"description": "Questions to ask",
"type": "array",
"items": {
"$ref": "#/components/schemas/QuestionInfo"
}
},
"tool": {
"type": "object",
"properties": {
"messageID": {
"type": "string"
},
"callID": {
"type": "string"
}
},
"required": ["messageID", "callID"]
}
},
"required": ["id", "sessionID", "questions"]
},
"Event.question.asked": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "question.asked"
},
"properties": {
"$ref": "#/components/schemas/QuestionRequest"
}
},
"required": ["type", "properties"]
},
"QuestionAnswer": {
"type": "array",
"items": {
"type": "string"
}
},
"Event.question.replied": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "question.replied"
},
"properties": {
"type": "object",
"properties": {
"sessionID": {
"type": "string"
},
"requestID": {
"type": "string"
},
"answers": {
"type": "array",
"items": {
"$ref": "#/components/schemas/QuestionAnswer"
}
}
},
"required": ["sessionID", "requestID", "answers"]
}
},
"required": ["type", "properties"]
},
"Event.question.rejected": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "question.rejected"
},
"properties": {
"type": "object",
"properties": {
"sessionID": {
"type": "string"
},
"requestID": {
"type": "string"
}
},
"required": ["sessionID", "requestID"]
}
},
"required": ["type", "properties"]
},
"Event.session.compacted": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "session.compacted"
},
"properties": {
"type": "object",
"properties": {
"sessionID": {
"type": "string"
}
},
"required": ["sessionID"]
}
},
"required": ["type", "properties"]
},
"Event.file.watcher.updated": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "file.watcher.updated"
},
"properties": {
"type": "object",
"properties": {
"file": {
"type": "string"
},
"event": {
"anyOf": [
{
"type": "string",
"const": "add"
},
{
"type": "string",
"const": "change"
},
{
"type": "string",
"const": "unlink"
}
]
}
},
"required": ["file", "event"]
}
},
"required": ["type", "properties"]
},
"Todo": {
"type": "object",
"properties": {
"content": {
"description": "Brief description of the task",
"type": "string"
},
"status": {
"description": "Current status of the task: pending, in_progress, completed, cancelled",
"type": "string"
},
"priority": {
"description": "Priority level of the task: high, medium, low",
"type": "string"
},
"id": {
"description": "Unique identifier for the todo item",
"type": "string"
}
},
"required": ["content", "status", "priority", "id"]
},
"Event.todo.updated": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "todo.updated"
},
"properties": {
"type": "object",
"properties": {
"sessionID": {
"type": "string"
},
"todos": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Todo"
}
}
},
"required": ["sessionID", "todos"]
}
},
"required": ["type", "properties"]
},
"Event.tui.prompt.append": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "tui.prompt.append"
},
"properties": {
"type": "object",
"properties": {
"text": {
"type": "string"
}
},
"required": ["text"]
}
},
"required": ["type", "properties"]
},
"Event.tui.command.execute": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "tui.command.execute"
},
"properties": {
"type": "object",
"properties": {
"command": {
"anyOf": [
{
"type": "string",
"enum": [
"session.list",
"session.new",
"session.share",
"session.interrupt",
"session.compact",
"session.page.up",
"session.page.down",
"session.line.up",
"session.line.down",
"session.half.page.up",
"session.half.page.down",
"session.first",
"session.last",
"prompt.clear",
"prompt.submit",
"agent.cycle"
]
},
{
"type": "string"
}
]
}
},
"required": ["command"]
}
},
"required": ["type", "properties"]
},
"Event.tui.toast.show": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "tui.toast.show"
},
"properties": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"message": {
"type": "string"
},
"variant": {
"type": "string",
"enum": ["info", "success", "warning", "error"]
},
"duration": {
"description": "Duration in milliseconds",
"default": 5000,
"type": "number"
}
},
"required": ["message", "variant"]
}
},
"required": ["type", "properties"]
},
"Event.tui.session.select": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "tui.session.select"
},
"properties": {
"type": "object",
"properties": {
"sessionID": {
"description": "Session ID to navigate to",
"type": "string",
"pattern": "^ses"
}
},
"required": ["sessionID"]
}
},
"required": ["type", "properties"]
},
"Event.mcp.tools.changed": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "mcp.tools.changed"
},
"properties": {
"type": "object",
"properties": {
"server": {
"type": "string"
}
},
"required": ["server"]
}
},
"required": ["type", "properties"]
},
"Event.mcp.browser.open.failed": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "mcp.browser.open.failed"
},
"properties": {
"type": "object",
"properties": {
"mcpName": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": ["mcpName", "url"]
}
},
"required": ["type", "properties"]
},
"Event.command.executed": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "command.executed"
},
"properties": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"sessionID": {
"type": "string",
"pattern": "^ses.*"
},
"arguments": {
"type": "string"
},
"messageID": {
"type": "string",
"pattern": "^msg.*"
}
},
"required": ["name", "sessionID", "arguments", "messageID"]
}
},
"required": ["type", "properties"]
},
"PermissionAction": {
"type": "string",
"enum": ["allow", "deny", "ask"]
},
"PermissionRule": {
"type": "object",
"properties": {
"permission": {
"type": "string"
},
"pattern": {
"type": "string"
},
"action": {
"$ref": "#/components/schemas/PermissionAction"
}
},
"required": ["permission", "pattern", "action"]
},
"PermissionRuleset": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PermissionRule"
}
},
"Session": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^ses.*"
},
"slug": {
"type": "string"
},
"projectID": {
"type": "string"
},
"directory": {
"type": "string"
},
"parentID": {
"type": "string",
"pattern": "^ses.*"
},
"summary": {
"type": "object",
"properties": {
"additions": {
"type": "number"
},
"deletions": {
"type": "number"
},
"files": {
"type": "number"
},
"diffs": {
"type": "array",
"items": {
"$ref": "#/components/schemas/FileDiff"
}
}
},
"required": ["additions", "deletions", "files"]
},
"share": {
"type": "object",
"properties": {
"url": {
"type": "string"
}
},
"required": ["url"]
},
"title": {
"type": "string"
},
"version": {
"type": "string"
},
"time": {
"type": "object",
"properties": {
"created": {
"type": "number"
},
"updated": {
"type": "number"
},
"compacting": {
"type": "number"
},
"archived": {
"type": "number"
}
},
"required": ["created", "updated"]
},
"permission": {
"$ref": "#/components/schemas/PermissionRuleset"
},
"revert": {
"type": "object",
"properties": {
"messageID": {
"type": "string"
},
"partID": {
"type": "string"
},
"snapshot": {
"type": "string"
},
"diff": {
"type": "string"
}
},
"required": ["messageID"]
}
},
"required": ["id", "slug", "projectID", "directory", "title", "version", "time"]
},
"Event.session.created": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "session.created"
},
"properties": {
"type": "object",
"properties": {
"info": {
"$ref": "#/components/schemas/Session"
}
},
"required": ["info"]
}
},
"required": ["type", "properties"]
},
"Event.session.updated": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "session.updated"
},
"properties": {
"type": "object",
"properties": {
"info": {
"$ref": "#/components/schemas/Session"
}
},
"required": ["info"]
}
},
"required": ["type", "properties"]
},
"Event.session.deleted": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "session.deleted"
},
"properties": {
"type": "object",
"properties": {
"info": {
"$ref": "#/components/schemas/Session"
}
},
"required": ["info"]
}
},
"required": ["type", "properties"]
},
"Event.session.diff": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "session.diff"
},
"properties": {
"type": "object",
"properties": {
"sessionID": {
"type": "string"
},
"diff": {
"type": "array",
"items": {
"$ref": "#/components/schemas/FileDiff"
}
}
},
"required": ["sessionID", "diff"]
}
},
"required": ["type", "properties"]
},
"Event.session.error": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "session.error"
},
"properties": {
"type": "object",
"properties": {
"sessionID": {
"type": "string"
},
"error": {
"anyOf": [
{
"$ref": "#/components/schemas/ProviderAuthError"
},
{
"$ref": "#/components/schemas/UnknownError"
},
{
"$ref": "#/components/schemas/MessageOutputLengthError"
},
{
"$ref": "#/components/schemas/MessageAbortedError"
},
{
"$ref": "#/components/schemas/APIError"
}
]
}
}
}
},
"required": ["type", "properties"]
},
"Event.vcs.branch.updated": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "vcs.branch.updated"
},
"properties": {
"type": "object",
"properties": {
"branch": {
"type": "string"
}
}
}
},
"required": ["type", "properties"]
},
"Pty": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^pty.*"
},
"title": {
"type": "string"
},
"command": {
"type": "string"
},
"args": {
"type": "array",
"items": {
"type": "string"
}
},
"cwd": {
"type": "string"
},
"status": {
"type": "string",
"enum": ["running", "exited"]
},
"pid": {
"type": "number"
}
},
"required": ["id", "title", "command", "args", "cwd", "status", "pid"]
},
"Event.pty.created": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "pty.created"
},
"properties": {
"type": "object",
"properties": {
"info": {
"$ref": "#/components/schemas/Pty"
}
},
"required": ["info"]
}
},
"required": ["type", "properties"]
},
"Event.pty.updated": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "pty.updated"
},
"properties": {
"type": "object",
"properties": {
"info": {
"$ref": "#/components/schemas/Pty"
}
},
"required": ["info"]
}
},
"required": ["type", "properties"]
},
"Event.pty.exited": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "pty.exited"
},
"properties": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^pty.*"
},
"exitCode": {
"type": "number"
}
},
"required": ["id", "exitCode"]
}
},
"required": ["type", "properties"]
},
"Event.pty.deleted": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "pty.deleted"
},
"properties": {
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^pty.*"
}
},
"required": ["id"]
}
},
"required": ["type", "properties"]
},
"Event.worktree.ready": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "worktree.ready"
},
"properties": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"branch": {
"type": "string"
}
},
"required": ["name", "branch"]
}
},
"required": ["type", "properties"]
},
"Event.worktree.failed": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "worktree.failed"
},
"properties": {
"type": "object",
"properties": {
"message": {
"type": "string"
}
},
"required": ["message"]
}
},
"required": ["type", "properties"]
},
"Event": {
"anyOf": [
{
"$ref": "#/components/schemas/Event.installation.updated"
},
{
"$ref": "#/components/schemas/Event.installation.update-available"
},
{
"$ref": "#/components/schemas/Event.project.updated"
},
{
"$ref": "#/components/schemas/Event.server.instance.disposed"
},
{
"$ref": "#/components/schemas/Event.server.connected"
},
{
"$ref": "#/components/schemas/Event.global.disposed"
},
{
"$ref": "#/components/schemas/Event.lsp.client.diagnostics"
},
{
"$ref": "#/components/schemas/Event.lsp.updated"
},
{
"$ref": "#/components/schemas/Event.file.edited"
},
{
"$ref": "#/components/schemas/Event.message.updated"
},
{
"$ref": "#/components/schemas/Event.message.removed"
},
{
"$ref": "#/components/schemas/Event.message.part.updated"
},
{
"$ref": "#/components/schemas/Event.message.part.removed"
},
{
"$ref": "#/components/schemas/Event.permission.asked"
},
{
"$ref": "#/components/schemas/Event.permission.replied"
},
{
"$ref": "#/components/schemas/Event.session.status"
},
{
"$ref": "#/components/schemas/Event.session.idle"
},
{
"$ref": "#/components/schemas/Event.question.asked"
},
{
"$ref": "#/components/schemas/Event.question.replied"
},
{
"$ref": "#/components/schemas/Event.question.rejected"
},
{
"$ref": "#/components/schemas/Event.session.compacted"
},
{
"$ref": "#/components/schemas/Event.file.watcher.updated"
},
{
"$ref": "#/components/schemas/Event.todo.updated"
},
{
"$ref": "#/components/schemas/Event.tui.prompt.append"
},
{
"$ref": "#/components/schemas/Event.tui.command.execute"
},
{
"$ref": "#/components/schemas/Event.tui.toast.show"
},
{
"$ref": "#/components/schemas/Event.tui.session.select"
},
{
"$ref": "#/components/schemas/Event.mcp.tools.changed"
},
{
"$ref": "#/components/schemas/Event.mcp.browser.open.failed"
},
{
"$ref": "#/components/schemas/Event.command.executed"
},
{
"$ref": "#/components/schemas/Event.session.created"
},
{
"$ref": "#/components/schemas/Event.session.updated"
},
{
"$ref": "#/components/schemas/Event.session.deleted"
},
{
"$ref": "#/components/schemas/Event.session.diff"
},
{
"$ref": "#/components/schemas/Event.session.error"
},
{
"$ref": "#/components/schemas/Event.vcs.branch.updated"
},
{
"$ref": "#/components/schemas/Event.pty.created"
},
{
"$ref": "#/components/schemas/Event.pty.updated"
},
{
"$ref": "#/components/schemas/Event.pty.exited"
},
{
"$ref": "#/components/schemas/Event.pty.deleted"
},
{
"$ref": "#/components/schemas/Event.worktree.ready"
},
{
"$ref": "#/components/schemas/Event.worktree.failed"
}
]
},
"GlobalEvent": {
"type": "object",
"properties": {
"directory": {
"type": "string"
},
"payload": {
"$ref": "#/components/schemas/Event"
}
},
"required": ["directory", "payload"]
},
"KeybindsConfig": {
"description": "Custom keybind configurations",
"type": "object",
"properties": {
"leader": {
"description": "Leader key for keybind combinations",
"default": "ctrl+x",
"type": "string"
},
"app_exit": {
"description": "Exit the application",
"default": "ctrl+c,ctrl+d,<leader>q",
"type": "string"
},
"editor_open": {
"description": "Open external editor",
"default": "<leader>e",
"type": "string"
},
"theme_list": {
"description": "List available themes",
"default": "<leader>t",
"type": "string"
},
"sidebar_toggle": {
"description": "Toggle sidebar",
"default": "<leader>b",
"type": "string"
},
"scrollbar_toggle": {
"description": "Toggle session scrollbar",
"default": "none",
"type": "string"
},
"username_toggle": {
"description": "Toggle username visibility",
"default": "none",
"type": "string"
},
"status_view": {
"description": "View status",
"default": "<leader>s",
"type": "string"
},
"session_export": {
"description": "Export session to editor",
"default": "<leader>x",
"type": "string"
},
"session_new": {
"description": "Create a new session",
"default": "<leader>n",
"type": "string"
},
"session_list": {
"description": "List all sessions",
"default": "<leader>l",
"type": "string"
},
"session_timeline": {
"description": "Show session timeline",
"default": "<leader>g",
"type": "string"
},
"session_fork": {
"description": "Fork session from message",
"default": "none",
"type": "string"
},
"session_rename": {
"description": "Rename session",
"default": "ctrl+r",
"type": "string"
},
"session_delete": {
"description": "Delete session",
"default": "ctrl+d",
"type": "string"
},
"stash_delete": {
"description": "Delete stash entry",
"default": "ctrl+d",
"type": "string"
},
"model_provider_list": {
"description": "Open provider list from model dialog",
"default": "ctrl+a",
"type": "string"
},
"model_favorite_toggle": {
"description": "Toggle model favorite status",
"default": "ctrl+f",
"type": "string"
},
"session_share": {
"description": "Share current session",
"default": "none",
"type": "string"
},
"session_unshare": {
"description": "Unshare current session",
"default": "none",
"type": "string"
},
"session_interrupt": {
"description": "Interrupt current session",
"default": "escape",
"type": "string"
},
"session_compact": {
"description": "Compact the session",
"default": "<leader>c",
"type": "string"
},
"messages_page_up": {
"description": "Scroll messages up by one page",
"default": "pageup,ctrl+alt+b",
"type": "string"
},
"messages_page_down": {
"description": "Scroll messages down by one page",
"default": "pagedown,ctrl+alt+f",
"type": "string"
},
"messages_line_up": {
"description": "Scroll messages up by one line",
"default": "ctrl+alt+y",
"type": "string"
},
"messages_line_down": {
"description": "Scroll messages down by one line",
"default": "ctrl+alt+e",
"type": "string"
},
"messages_half_page_up": {
"description": "Scroll messages up by half page",
"default": "ctrl+alt+u",
"type": "string"
},
"messages_half_page_down": {
"description": "Scroll messages down by half page",
"default": "ctrl+alt+d",
"type": "string"
},
"messages_first": {
"description": "Navigate to first message",
"default": "ctrl+g,home",
"type": "string"
},
"messages_last": {
"description": "Navigate to last message",
"default": "ctrl+alt+g,end",
"type": "string"
},
"messages_next": {
"description": "Navigate to next message",
"default": "none",
"type": "string"
},
"messages_previous": {
"description": "Navigate to previous message",
"default": "none",
"type": "string"
},
"messages_last_user": {
"description": "Navigate to last user message",
"default": "none",
"type": "string"
},
"messages_copy": {
"description": "Copy message",
"default": "<leader>y",
"type": "string"
},
"messages_undo": {
"description": "Undo message",
"default": "<leader>u",
"type": "string"
},
"messages_redo": {
"description": "Redo message",
"default": "<leader>r",
"type": "string"
},
"messages_toggle_conceal": {
"description": "Toggle code block concealment in messages",
"default": "<leader>h",
"type": "string"
},
"tool_details": {
"description": "Toggle tool details visibility",
"default": "none",
"type": "string"
},
"model_list": {
"description": "List available models",
"default": "<leader>m",
"type": "string"
},
"model_cycle_recent": {
"description": "Next recently used model",
"default": "f2",
"type": "string"
},
"model_cycle_recent_reverse": {
"description": "Previous recently used model",
"default": "shift+f2",
"type": "string"
},
"model_cycle_favorite": {
"description": "Next favorite model",
"default": "none",
"type": "string"
},
"model_cycle_favorite_reverse": {
"description": "Previous favorite model",
"default": "none",
"type": "string"
},
"command_list": {
"description": "List available commands",
"default": "ctrl+p",
"type": "string"
},
"agent_list": {
"description": "List agents",
"default": "<leader>a",
"type": "string"
},
"agent_cycle": {
"description": "Next agent",
"default": "tab",
"type": "string"
},
"agent_cycle_reverse": {
"description": "Previous agent",
"default": "shift+tab",
"type": "string"
},
"variant_cycle": {
"description": "Cycle model variants",
"default": "ctrl+t",
"type": "string"
},
"input_clear": {
"description": "Clear input field",
"default": "ctrl+c",
"type": "string"
},
"input_paste": {
"description": "Paste from clipboard",
"default": "ctrl+v",
"type": "string"
},
"input_submit": {
"description": "Submit input",
"default": "return",
"type": "string"
},
"input_newline": {
"description": "Insert newline in input",
"default": "shift+return,ctrl+return,alt+return,ctrl+j",
"type": "string"
},
"input_move_left": {
"description": "Move cursor left in input",
"default": "left,ctrl+b",
"type": "string"
},
"input_move_right": {
"description": "Move cursor right in input",
"default": "right,ctrl+f",
"type": "string"
},
"input_move_up": {
"description": "Move cursor up in input",
"default": "up",
"type": "string"
},
"input_move_down": {
"description": "Move cursor down in input",
"default": "down",
"type": "string"
},
"input_select_left": {
"description": "Select left in input",
"default": "shift+left",
"type": "string"
},
"input_select_right": {
"description": "Select right in input",
"default": "shift+right",
"type": "string"
},
"input_select_up": {
"description": "Select up in input",
"default": "shift+up",
"type": "string"
},
"input_select_down": {
"description": "Select down in input",
"default": "shift+down",
"type": "string"
},
"input_line_home": {
"description": "Move to start of line in input",
"default": "ctrl+a",
"type": "string"
},
"input_line_end": {
"description": "Move to end of line in input",
"default": "ctrl+e",
"type": "string"
},
"input_select_line_home": {
"description": "Select to start of line in input",
"default": "ctrl+shift+a",
"type": "string"
},
"input_select_line_end": {
"description": "Select to end of line in input",
"default": "ctrl+shift+e",
"type": "string"
},
"input_visual_line_home": {
"description": "Move to start of visual line in input",
"default": "alt+a",
"type": "string"
},
"input_visual_line_end": {
"description": "Move to end of visual line in input",
"default": "alt+e",
"type": "string"
},
"input_select_visual_line_home": {
"description": "Select to start of visual line in input",
"default": "alt+shift+a",
"type": "string"
},
"input_select_visual_line_end": {
"description": "Select to end of visual line in input",
"default": "alt+shift+e",
"type": "string"
},
"input_buffer_home": {
"description": "Move to start of buffer in input",
"default": "home",
"type": "string"
},
"input_buffer_end": {
"description": "Move to end of buffer in input",
"default": "end",
"type": "string"
},
"input_select_buffer_home": {
"description": "Select to start of buffer in input",
"default": "shift+home",
"type": "string"
},
"input_select_buffer_end": {
"description": "Select to end of buffer in input",
"default": "shift+end",
"type": "string"
},
"input_delete_line": {
"description": "Delete line in input",
"default": "ctrl+shift+d",
"type": "string"
},
"input_delete_to_line_end": {
"description": "Delete to end of line in input",
"default": "ctrl+k",
"type": "string"
},
"input_delete_to_line_start": {
"description": "Delete to start of line in input",
"default": "ctrl+u",
"type": "string"
},
"input_backspace": {
"description": "Backspace in input",
"default": "backspace,shift+backspace",
"type": "string"
},
"input_delete": {
"description": "Delete character in input",
"default": "ctrl+d,delete,shift+delete",
"type": "string"
},
"input_undo": {
"description": "Undo in input",
"default": "ctrl+-,super+z",
"type": "string"
},
"input_redo": {
"description": "Redo in input",
"default": "ctrl+.,super+shift+z",
"type": "string"
},
"input_word_forward": {
"description": "Move word forward in input",
"default": "alt+f,alt+right,ctrl+right",
"type": "string"
},
"input_word_backward": {
"description": "Move word backward in input",
"default": "alt+b,alt+left,ctrl+left",
"type": "string"
},
"input_select_word_forward": {
"description": "Select word forward in input",
"default": "alt+shift+f,alt+shift+right",
"type": "string"
},
"input_select_word_backward": {
"description": "Select word backward in input",
"default": "alt+shift+b,alt+shift+left",
"type": "string"
},
"input_delete_word_forward": {
"description": "Delete word forward in input",
"default": "alt+d,alt+delete,ctrl+delete",
"type": "string"
},
"input_delete_word_backward": {
"description": "Delete word backward in input",
"default": "ctrl+w,ctrl+backspace,alt+backspace",
"type": "string"
},
"history_previous": {
"description": "Previous history item",
"default": "up",
"type": "string"
},
"history_next": {
"description": "Next history item",
"default": "down",
"type": "string"
},
"session_child_cycle": {
"description": "Next child session",
"default": "<leader>right",
"type": "string"
},
"session_child_cycle_reverse": {
"description": "Previous child session",
"default": "<leader>left",
"type": "string"
},
"session_parent": {
"description": "Go to parent session",
"default": "<leader>up",
"type": "string"
},
"terminal_suspend": {
"description": "Suspend terminal",
"default": "ctrl+z",
"type": "string"
},
"terminal_title_toggle": {
"description": "Toggle terminal title",
"default": "none",
"type": "string"
},
"tips_toggle": {
"description": "Toggle tips on home screen",
"default": "<leader>h",
"type": "string"
}
},
"additionalProperties": false
},
"LogLevel": {
"description": "Log level",
"type": "string",
"enum": ["DEBUG", "INFO", "WARN", "ERROR"]
},
"ServerConfig": {
"description": "Server configuration for opencode serve and web commands",
"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"
},
"cors": {
"description": "Additional domains to allow for CORS",
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"PermissionActionConfig": {
"type": "string",
"enum": ["ask", "allow", "deny"]
},
"PermissionObjectConfig": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/components/schemas/PermissionActionConfig"
}
},
"PermissionRuleConfig": {
"anyOf": [
{
"$ref": "#/components/schemas/PermissionActionConfig"
},
{
"$ref": "#/components/schemas/PermissionObjectConfig"
}
]
},
"PermissionConfig": {
"anyOf": [
{
"type": "object",
"properties": {
"__originalKeys": {
"type": "array",
"items": {
"type": "string"
}
},
"read": {
"$ref": "#/components/schemas/PermissionRuleConfig"
},
"edit": {
"$ref": "#/components/schemas/PermissionRuleConfig"
},
"glob": {
"$ref": "#/components/schemas/PermissionRuleConfig"
},
"grep": {
"$ref": "#/components/schemas/PermissionRuleConfig"
},
"list": {
"$ref": "#/components/schemas/PermissionRuleConfig"
},
"bash": {
"$ref": "#/components/schemas/PermissionRuleConfig"
},
"task": {
"$ref": "#/components/schemas/PermissionRuleConfig"
},
"external_directory": {
"$ref": "#/components/schemas/PermissionRuleConfig"
},
"todowrite": {
"$ref": "#/components/schemas/PermissionActionConfig"
},
"todoread": {
"$ref": "#/components/schemas/PermissionActionConfig"
},
"question": {
"$ref": "#/components/schemas/PermissionActionConfig"
},
"webfetch": {
"$ref": "#/components/schemas/PermissionActionConfig"
},
"websearch": {
"$ref": "#/components/schemas/PermissionActionConfig"
},
"codesearch": {
"$ref": "#/components/schemas/PermissionActionConfig"
},
"lsp": {
"$ref": "#/components/schemas/PermissionRuleConfig"
},
"doom_loop": {
"$ref": "#/components/schemas/PermissionActionConfig"
},
"skill": {
"$ref": "#/components/schemas/PermissionRuleConfig"
}
},
"additionalProperties": {
"$ref": "#/components/schemas/PermissionRuleConfig"
}
},
{
"$ref": "#/components/schemas/PermissionActionConfig"
}
]
},
"AgentConfig": {
"type": "object",
"properties": {
"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 for the agent (e.g., #FF5733)",
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$"
},
"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": "#/components/schemas/PermissionConfig"
}
},
"additionalProperties": {}
},
"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"]
}
},
"required": ["input", "output"]
},
"limit": {
"type": "object",
"properties": {
"context": {
"type": "number"
},
"input": {
"type": "number"
},
"output": {
"type": "number"
}
},
"required": ["context", "output"]
},
"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"]
},
"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"
}
},
"required": ["npm"]
},
"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": {}
}
}
}
}
},
"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
}
]
}
},
"additionalProperties": {}
}
},
"additionalProperties": false
},
"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
},
"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
},
"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": "#/components/schemas/McpOAuthConfig"
},
{
"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
},
"LayoutConfig": {
"description": "@deprecated Always uses stretch layout.",
"type": "string",
"enum": ["auto", "stretch"]
},
"Config": {
"type": "object",
"properties": {
"$schema": {
"description": "JSON schema reference for configuration validation",
"type": "string"
},
"theme": {
"description": "Theme name to use for the interface",
"type": "string"
},
"keybinds": {
"$ref": "#/components/schemas/KeybindsConfig"
},
"logLevel": {
"$ref": "#/components/schemas/LogLevel"
},
"tui": {
"description": "TUI specific settings",
"type": "object",
"properties": {
"scroll_speed": {
"description": "TUI scroll speed",
"type": "number",
"minimum": 0.001
},
"scroll_acceleration": {
"description": "Scroll acceleration settings",
"type": "object",
"properties": {
"enabled": {
"description": "Enable scroll acceleration",
"type": "boolean"
}
},
"required": ["enabled"]
},
"diff_style": {
"description": "Control diff rendering style: 'auto' adapts to terminal width, 'stacked' always shows single column",
"type": "string",
"enum": ["auto", "stacked"]
}
}
},
"server": {
"$ref": "#/components/schemas/ServerConfig"
},
"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": {
"type": "string"
},
"subtask": {
"type": "boolean"
}
},
"required": ["template"]
}
},
"skills": {
"description": "Additional skill folder paths",
"type": "object",
"properties": {
"paths": {
"description": "Additional paths to skill folders",
"type": "array",
"items": {
"type": "string"
}
}
}
},
"watcher": {
"type": "object",
"properties": {
"ignore": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"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": {
"description": "Model to use in the format of provider/model, eg anthropic/claude-2",
"type": "string"
},
"small_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": "#/components/schemas/AgentConfig"
},
"plan": {
"$ref": "#/components/schemas/AgentConfig"
}
},
"additionalProperties": {
"$ref": "#/components/schemas/AgentConfig"
}
},
"agent": {
"description": "Agent configuration, see https://opencode.ai/docs/agents",
"type": "object",
"properties": {
"plan": {
"$ref": "#/components/schemas/AgentConfig"
},
"build": {
"$ref": "#/components/schemas/AgentConfig"
},
"general": {
"$ref": "#/components/schemas/AgentConfig"
},
"explore": {
"$ref": "#/components/schemas/AgentConfig"
},
"title": {
"$ref": "#/components/schemas/AgentConfig"
},
"summary": {
"$ref": "#/components/schemas/AgentConfig"
},
"compaction": {
"$ref": "#/components/schemas/AgentConfig"
}
},
"additionalProperties": {
"$ref": "#/components/schemas/AgentConfig"
}
},
"provider": {
"description": "Custom provider configurations and model overrides",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/components/schemas/ProviderConfig"
}
},
"mcp": {
"description": "MCP (Model Context Protocol) server configurations",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"anyOf": [
{
"anyOf": [
{
"$ref": "#/components/schemas/McpLocalConfig"
},
{
"$ref": "#/components/schemas/McpRemoteConfig"
}
]
},
{
"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"
}
}
}
}
}
]
},
"lsp": {
"anyOf": [
{
"type": "boolean",
"const": false
},
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"anyOf": [
{
"type": "object",
"properties": {
"disabled": {
"type": "boolean",
"const": true
}
},
"required": ["disabled"]
},
{
"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"]
}
]
}
}
]
},
"instructions": {
"description": "Additional instruction files or patterns to include",
"type": "array",
"items": {
"type": "string"
}
},
"layout": {
"$ref": "#/components/schemas/LayoutConfig"
},
"permission": {
"$ref": "#/components/schemas/PermissionConfig"
},
"tools": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "boolean"
}
},
"enterprise": {
"type": "object",
"properties": {
"url": {
"description": "Enterprise URL",
"type": "string"
}
}
},
"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"
}
}
},
"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
},
"BadRequestError": {
"type": "object",
"properties": {
"data": {},
"errors": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"success": {
"type": "boolean",
"const": false
}
},
"required": ["data", "errors", "success"]
},
"OAuth": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "oauth"
},
"refresh": {
"type": "string"
},
"access": {
"type": "string"
},
"expires": {
"type": "number"
},
"accountId": {
"type": "string"
},
"enterpriseUrl": {
"type": "string"
}
},
"required": ["type", "refresh", "access", "expires"]
},
"ApiAuth": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "api"
},
"key": {
"type": "string"
}
},
"required": ["type", "key"]
},
"WellKnownAuth": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "wellknown"
},
"key": {
"type": "string"
},
"token": {
"type": "string"
}
},
"required": ["type", "key", "token"]
},
"Auth": {
"anyOf": [
{
"$ref": "#/components/schemas/OAuth"
},
{
"$ref": "#/components/schemas/ApiAuth"
},
{
"$ref": "#/components/schemas/WellKnownAuth"
}
]
},
"NotFoundError": {
"type": "object",
"properties": {
"name": {
"type": "string",
"const": "NotFoundError"
},
"data": {
"type": "object",
"properties": {
"message": {
"type": "string"
}
},
"required": ["message"]
}
},
"required": ["name", "data"]
},
"Model": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"providerID": {
"type": "string"
},
"api": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"url": {
"type": "string"
},
"npm": {
"type": "string"
}
},
"required": ["id", "url", "npm"]
},
"name": {
"type": "string"
},
"family": {
"type": "string"
},
"capabilities": {
"type": "object",
"properties": {
"temperature": {
"type": "boolean"
},
"reasoning": {
"type": "boolean"
},
"attachment": {
"type": "boolean"
},
"toolcall": {
"type": "boolean"
},
"input": {
"type": "object",
"properties": {
"text": {
"type": "boolean"
},
"audio": {
"type": "boolean"
},
"image": {
"type": "boolean"
},
"video": {
"type": "boolean"
},
"pdf": {
"type": "boolean"
}
},
"required": ["text", "audio", "image", "video", "pdf"]
},
"output": {
"type": "object",
"properties": {
"text": {
"type": "boolean"
},
"audio": {
"type": "boolean"
},
"image": {
"type": "boolean"
},
"video": {
"type": "boolean"
},
"pdf": {
"type": "boolean"
}
},
"required": ["text", "audio", "image", "video", "pdf"]
},
"interleaved": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "object",
"properties": {
"field": {
"type": "string",
"enum": ["reasoning_content", "reasoning_details"]
}
},
"required": ["field"]
}
]
}
},
"required": ["temperature", "reasoning", "attachment", "toolcall", "input", "output", "interleaved"]
},
"cost": {
"type": "object",
"properties": {
"input": {
"type": "number"
},
"output": {
"type": "number"
},
"cache": {
"type": "object",
"properties": {
"read": {
"type": "number"
},
"write": {
"type": "number"
}
},
"required": ["read", "write"]
},
"experimentalOver200K": {
"type": "object",
"properties": {
"input": {
"type": "number"
},
"output": {
"type": "number"
},
"cache": {
"type": "object",
"properties": {
"read": {
"type": "number"
},
"write": {
"type": "number"
}
},
"required": ["read", "write"]
}
},
"required": ["input", "output", "cache"]
}
},
"required": ["input", "output", "cache"]
},
"limit": {
"type": "object",
"properties": {
"context": {
"type": "number"
},
"input": {
"type": "number"
},
"output": {
"type": "number"
}
},
"required": ["context", "output"]
},
"status": {
"type": "string",
"enum": ["alpha", "beta", "deprecated", "active"]
},
"options": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"headers": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
},
"release_date": {
"type": "string"
},
"variants": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
}
},
"required": [
"id",
"providerID",
"api",
"name",
"capabilities",
"cost",
"limit",
"status",
"options",
"headers",
"release_date"
]
},
"Provider": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"source": {
"type": "string",
"enum": ["env", "config", "custom", "api"]
},
"env": {
"type": "array",
"items": {
"type": "string"
}
},
"key": {
"type": "string"
},
"options": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"models": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"$ref": "#/components/schemas/Model"
}
}
},
"required": ["id", "name", "source", "env", "options", "models"]
},
"ToolIDs": {
"type": "array",
"items": {
"type": "string"
}
},
"ToolListItem": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"description": {
"type": "string"
},
"parameters": {}
},
"required": ["id", "description", "parameters"]
},
"ToolList": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ToolListItem"
}
},
"Worktree": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"branch": {
"type": "string"
},
"directory": {
"type": "string"
}
},
"required": ["name", "branch", "directory"]
},
"WorktreeCreateInput": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"startCommand": {
"description": "Additional startup script to run after the project's start command",
"type": "string"
}
}
},
"WorktreeRemoveInput": {
"type": "object",
"properties": {
"directory": {
"type": "string"
}
},
"required": ["directory"]
},
"WorktreeResetInput": {
"type": "object",
"properties": {
"directory": {
"type": "string"
}
},
"required": ["directory"]
},
"McpResource": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"uri": {
"type": "string"
},
"description": {
"type": "string"
},
"mimeType": {
"type": "string"
},
"client": {
"type": "string"
}
},
"required": ["name", "uri", "client"]
},
"TextPartInput": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string",
"const": "text"
},
"text": {
"type": "string"
},
"synthetic": {
"type": "boolean"
},
"ignored": {
"type": "boolean"
},
"time": {
"type": "object",
"properties": {
"start": {
"type": "number"
},
"end": {
"type": "number"
}
},
"required": ["start"]
},
"metadata": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": ["type", "text"]
},
"FilePartInput": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string",
"const": "file"
},
"mime": {
"type": "string"
},
"filename": {
"type": "string"
},
"url": {
"type": "string"
},
"source": {
"$ref": "#/components/schemas/FilePartSource"
}
},
"required": ["type", "mime", "url"]
},
"AgentPartInput": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string",
"const": "agent"
},
"name": {
"type": "string"
},
"source": {
"type": "object",
"properties": {
"value": {
"type": "string"
},
"start": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"end": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"required": ["value", "start", "end"]
}
},
"required": ["type", "name"]
},
"SubtaskPartInput": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"type": "string",
"const": "subtask"
},
"prompt": {
"type": "string"
},
"description": {
"type": "string"
},
"agent": {
"type": "string"
},
"model": {
"type": "object",
"properties": {
"providerID": {
"type": "string"
},
"modelID": {
"type": "string"
}
},
"required": ["providerID", "modelID"]
},
"command": {
"type": "string"
}
},
"required": ["type", "prompt", "description", "agent"]
},
"ProviderAuthMethod": {
"type": "object",
"properties": {
"type": {
"anyOf": [
{
"type": "string",
"const": "oauth"
},
{
"type": "string",
"const": "api"
}
]
},
"label": {
"type": "string"
}
},
"required": ["type", "label"]
},
"ProviderAuthAuthorization": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"method": {
"anyOf": [
{
"type": "string",
"const": "auto"
},
{
"type": "string",
"const": "code"
}
]
},
"instructions": {
"type": "string"
}
},
"required": ["url", "method", "instructions"]
},
"Symbol": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"kind": {
"type": "number"
},
"location": {
"type": "object",
"properties": {
"uri": {
"type": "string"
},
"range": {
"$ref": "#/components/schemas/Range"
}
},
"required": ["uri", "range"]
}
},
"required": ["name", "kind", "location"]
},
"FileNode": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"path": {
"type": "string"
},
"absolute": {
"type": "string"
},
"type": {
"type": "string",
"enum": ["file", "directory"]
},
"ignored": {
"type": "boolean"
}
},
"required": ["name", "path", "absolute", "type", "ignored"]
},
"FileContent": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": ["text", "binary"]
},
"content": {
"type": "string"
},
"diff": {
"type": "string"
},
"patch": {
"type": "object",
"properties": {
"oldFileName": {
"type": "string"
},
"newFileName": {
"type": "string"
},
"oldHeader": {
"type": "string"
},
"newHeader": {
"type": "string"
},
"hunks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"oldStart": {
"type": "number"
},
"oldLines": {
"type": "number"
},
"newStart": {
"type": "number"
},
"newLines": {
"type": "number"
},
"lines": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": ["oldStart", "oldLines", "newStart", "newLines", "lines"]
}
},
"index": {
"type": "string"
}
},
"required": ["oldFileName", "newFileName", "hunks"]
},
"encoding": {
"type": "string",
"const": "base64"
},
"mimeType": {
"type": "string"
}
},
"required": ["type", "content"]
},
"File": {
"type": "object",
"properties": {
"path": {
"type": "string"
},
"added": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"removed": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"status": {
"type": "string",
"enum": ["added", "deleted", "modified"]
}
},
"required": ["path", "added", "removed", "status"]
},
"MCPStatusConnected": {
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "connected"
}
},
"required": ["status"]
},
"MCPStatusDisabled": {
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "disabled"
}
},
"required": ["status"]
},
"MCPStatusFailed": {
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "failed"
},
"error": {
"type": "string"
}
},
"required": ["status", "error"]
},
"MCPStatusNeedsAuth": {
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "needs_auth"
}
},
"required": ["status"]
},
"MCPStatusNeedsClientRegistration": {
"type": "object",
"properties": {
"status": {
"type": "string",
"const": "needs_client_registration"
},
"error": {
"type": "string"
}
},
"required": ["status", "error"]
},
"MCPStatus": {
"anyOf": [
{
"$ref": "#/components/schemas/MCPStatusConnected"
},
{
"$ref": "#/components/schemas/MCPStatusDisabled"
},
{
"$ref": "#/components/schemas/MCPStatusFailed"
},
{
"$ref": "#/components/schemas/MCPStatusNeedsAuth"
},
{
"$ref": "#/components/schemas/MCPStatusNeedsClientRegistration"
}
]
},
"Path": {
"type": "object",
"properties": {
"home": {
"type": "string"
},
"state": {
"type": "string"
},
"config": {
"type": "string"
},
"worktree": {
"type": "string"
},
"directory": {
"type": "string"
}
},
"required": ["home", "state", "config", "worktree", "directory"]
},
"VcsInfo": {
"type": "object",
"properties": {
"branch": {
"type": "string"
}
},
"required": ["branch"]
},
"Command": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"agent": {
"type": "string"
},
"model": {
"type": "string"
},
"source": {
"type": "string",
"enum": ["command", "mcp", "skill"]
},
"template": {
"anyOf": [
{
"type": "string"
},
{
"type": "string"
}
]
},
"subtask": {
"type": "boolean"
},
"hints": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": ["name", "template", "hints"]
},
"Agent": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"mode": {
"type": "string",
"enum": ["subagent", "primary", "all"]
},
"native": {
"type": "boolean"
},
"hidden": {
"type": "boolean"
},
"topP": {
"type": "number"
},
"temperature": {
"type": "number"
},
"color": {
"type": "string"
},
"permission": {
"$ref": "#/components/schemas/PermissionRuleset"
},
"model": {
"type": "object",
"properties": {
"modelID": {
"type": "string"
},
"providerID": {
"type": "string"
}
},
"required": ["modelID", "providerID"]
},
"variant": {
"type": "string"
},
"prompt": {
"type": "string"
},
"options": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"steps": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"required": ["name", "mode", "permission", "options"]
},
"LSPStatus": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"root": {
"type": "string"
},
"status": {
"anyOf": [
{
"type": "string",
"const": "connected"
},
{
"type": "string",
"const": "error"
}
]
}
},
"required": ["id", "name", "root", "status"]
},
"FormatterStatus": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"extensions": {
"type": "array",
"items": {
"type": "string"
}
},
"enabled": {
"type": "boolean"
}
},
"required": ["name", "extensions", "enabled"]
}
}
}
}