Skip to content
API docs

API

Contents

Experimental HttpApi surface for selected instance routes. The reference covers 170 operations and 497 schemas from the OpenAPI 3.1.0 document.

get/api/infoGet server info

Return the server identity, connection URLs, paths, and readiness status.

StatusTypeDescription
200ServerInfoServerInfo
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError

Operation ID server.info

post/api/pairCreate pairing code

Create a short-lived, single-use code for a /auth/connect/:code pairing link.

StatusTypeDescription
200PairingCodePairingCode
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError

Operation ID server.pair

get/auth/connect/{code}Redeem pairing code

Redeem a pairing code. Browsers receive a session cookie and a redirect to the web app; requests that accept JSON receive a session token to use as the password.

ParameterInTypeRequiredDescription
codepathstringRequired
StatusTypeDescription
200PairingSessionPairingSession
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError

Operation ID server.connect

get/api/locationGet location

Resolve the requested location or the server default location.

ParameterInTypeRequiredDescription
locationqueryobjectOptional
StatusTypeDescription
200Location.PublicInfoLocation.PublicInfo
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404LocationNotFoundErrorEncodedLocationNotFoundError

Operation ID location.get

post/api/location/reloadReload configuration

Shut down and rebuild every loaded location. Pending permissions and forms are cancelled; running sessions continue with fresh services at the next step boundary. Emits location.shutdown for client recovery and responds once all replacement builds settle.

StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
503ServiceUnavailableErrorEncodedServiceUnavailableError

Operation ID location.reload

get/api/agentList agents

Retrieve currently registered agents.

ParameterInTypeRequiredDescription
locationqueryobjectOptional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404LocationNotFoundErrorEncodedLocationNotFoundError
503ServiceUnavailableErrorEncodedServiceUnavailableError

Operation ID agent.list

get/api/agent/{agentID}Get agent

Retrieve a single currently registered agent.

ParameterInTypeRequiredDescription
agentIDpathAgent.IDRequired
locationqueryobjectOptional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404AgentNotFoundErrorEncoded | LocationNotFoundErrorEncodedAgentNotFoundError | LocationNotFoundError

Operation ID agent.get

Experimental plugin routes.

get/api/pluginList plugins

Retrieve enabled server plugins and their current status.

ParameterInTypeRequiredDescription
locationqueryobjectOptional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404LocationNotFoundErrorEncodedLocationNotFoundError

Operation ID plugin.list

get/api/plugin/guiRead plugin GUI bundle

Read an active plugin's prebuilt CommonJS `./gui-experimental` bundle. Desktop app windows run its default export; the desktop app's main process runs its `main` export. Fails with not found when no active plugin has the id or the plugin exports no `./gui-experimental`.

ParameterInTypeRequiredDescription
locationqueryobjectOptional
idqueryPlugin.IDRequired
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404PluginNotFoundErrorEncoded | LocationNotFoundErrorEncodedPluginNotFoundError | LocationNotFoundError

Operation ID plugin.gui

post/api/plugin/checkCheck plugin updates

Check one or all package plugins for available updates.

ParameterInTypeRequiredDescription
locationqueryobjectOptional
Request bodyTypeRequiredDescription
application/jsonobjectRequired
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404LocationNotFoundErrorEncodedLocationNotFoundError

Operation ID plugin.check

post/api/plugin/updateUpdate plugins

Update package plugins concurrently and notify active locations to reload them. Responds once every update has finished; fails when any update fails.

ParameterInTypeRequiredDescription
locationqueryobjectOptional
Request bodyTypeRequiredDescription
application/jsonobjectRequired
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404LocationNotFoundErrorEncodedLocationNotFoundError
503ServiceUnavailableErrorEncodedServiceUnavailableError

Operation ID plugin.update

Experimental session routes.

get/api/sessionList sessions

Retrieve sessions in the requested order. Items keep that order across pages; use cursor.next or cursor.previous to move through the ordered list.

ParameterInTypeRequiredDescription
limitquerystringOptional
orderquery"asc" | "desc"Optional
searchquerystringOptional
parentIDquerySession.ID | "null"Optional
archivedquery"true" | "false"Optional
directoryqueryAbsolutePathOptional
projectqueryProject.IDOptional
subpathqueryRelativePathOptional
cursorquerySessionsCursorOptional
StatusTypeDescription
200SessionsResponseSessionsResponse
400InvalidCursorErrorEncoded | InvalidRequestErrorEncodedInvalidCursorError | InvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError

Operation ID session.list

post/api/sessionCreate session

Create a session at the requested location. A parentID creates a linked child session at its parent's location.

Request bodyTypeRequiredDescription
application/jsonobjectRequired
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404SessionNotFoundErrorEncodedSessionNotFoundError

Operation ID session.create

get/api/experimental/session/statsGet session statistics

Aggregate local session activity, usage, and tool reliability for a time range.

ParameterInTypeRequiredDescription
fromquerystringOptional
toquerystringOptional
projectqueryProject.IDOptional
timezonequerystringOptional
toolsquery"none" | "summary" | "detail"Optional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError

Operation ID experimental.session.stats

post/api/experimental/session/importImport session

Import a projected session transcript at the requested location. Accepts transcripts exported by earlier releases. If parentID is supplied, the parent session must already exist; import parents before children.

Request bodyTypeRequiredDescription
application/jsonobjectRequired
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404SessionNotFoundErrorEncodedSessionNotFoundError
409ConflictErrorEncodedConflictError

Operation ID experimental.session.import

get/api/experimental/session/{sessionID}/exportExport session

Export a complete projected session transcript.

ParameterInTypeRequiredDescription
sessionIDpathSession.IDRequired
sanitizequery"true" | "false"Optional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404SessionNotFoundErrorEncodedSessionNotFoundError
500UnknownErrorEncodedUnknownError

Operation ID experimental.session.export

get/api/session/activeList active sessions

Retrieve foreground Session drains currently owned by this OpenCode process. Sessions absent from the result are inactive.

StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError

Operation ID session.active

get/api/session/{sessionID}Get session

Retrieve a session by ID.

ParameterInTypeRequiredDescription
sessionIDpathSession.IDRequired
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404SessionNotFoundErrorEncodedSessionNotFoundError

Operation ID session.get

patch/api/session/{sessionID}Update session

Update mutable session properties.

ParameterInTypeRequiredDescription
sessionIDpathSession.IDRequired
Request bodyTypeRequiredDescription
application/jsonobjectRequired
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404SessionNotFoundErrorEncoded | LocationNotFoundErrorEncodedSessionNotFoundError | LocationNotFoundError

Operation ID session.update

delete/api/session/{sessionID}Delete session

Delete a session and its child sessions.

ParameterInTypeRequiredDescription
sessionIDpathSession.IDRequired
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404SessionNotFoundErrorEncodedSessionNotFoundError

Operation ID session.remove

post/api/session/{sessionID}/forkFork session

Create a child session by copying projected history before a message. Omit before to copy the full history.

ParameterInTypeRequiredDescription
sessionIDpathSession.IDRequired
Request bodyTypeRequiredDescription
application/jsonobjectRequired
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404SessionNotFoundErrorEncoded | MessageNotFoundErrorEncodedSessionNotFoundError | MessageNotFoundError

Operation ID session.fork

post/api/session/{sessionID}/agentSwitch session agent

Switch the agent used by subsequent provider turns.

ParameterInTypeRequiredDescription
sessionIDpathSession.IDRequired
Request bodyTypeRequiredDescription
application/jsonobjectRequired
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404SessionNotFoundErrorEncodedSessionNotFoundError

Operation ID session.switchAgent

post/api/session/{sessionID}/modelSwitch session model

Switch the model used by subsequent provider turns.

ParameterInTypeRequiredDescription
sessionIDpathSession.IDRequired
Request bodyTypeRequiredDescription
application/jsonobjectRequired
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404SessionNotFoundErrorEncodedSessionNotFoundError

Operation ID session.switchModel

post/api/session/{sessionID}/moveMove session

Move a session to another project directory at the requested delivery boundary.

ParameterInTypeRequiredDescription
sessionIDpathSession.IDRequired
Request bodyTypeRequiredDescription
application/jsonobjectRequired
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404SessionNotFoundErrorEncodedSessionNotFoundError

Operation ID session.move

post/api/session/{sessionID}/promptSend message

Durably admit one session input and schedule agent-loop execution unless resume is false.

ParameterInTypeRequiredDescription
sessionIDpathSession.IDRequired
Request bodyTypeRequiredDescription
application/jsonobjectRequired
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404SessionNotFoundErrorEncoded | LocationNotFoundErrorEncodedSessionNotFoundError | LocationNotFoundError
409ConflictErrorEncodedConflictError

Operation ID session.prompt

post/api/session/{sessionID}/commandRun command

Execute a slash command callback immediately.

ParameterInTypeRequiredDescription
sessionIDpathSession.IDRequired
Request bodyTypeRequiredDescription
application/jsonobjectRequired
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404SessionNotFoundErrorEncoded | CommandNotFoundErrorEncoded | LocationNotFoundErrorEncodedSessionNotFoundError | CommandNotFoundError | LocationNotFoundError
500CommandExecutionErrorEncodedCommandExecutionError

Operation ID session.command

post/api/experimental/session/{sessionID}/skillActivate skill

Activate a skill for a session by appending a skill message and resuming execution.

ParameterInTypeRequiredDescription
sessionIDpathSession.IDRequired
Request bodyTypeRequiredDescription
application/jsonobjectRequired
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404SessionNotFoundErrorEncoded | SkillNotFoundErrorEncoded | LocationNotFoundErrorEncodedSessionNotFoundError | SkillNotFoundError | LocationNotFoundError

Operation ID experimental.session.skill

post/api/session/{sessionID}/syntheticAdd synthetic message

Durably admit synthetic session input and schedule execution unless resume is false.

ParameterInTypeRequiredDescription
sessionIDpathSession.IDRequired
Request bodyTypeRequiredDescription
application/jsonobjectRequired
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404SessionNotFoundErrorEncodedSessionNotFoundError
409ConflictErrorEncodedConflictError

Operation ID session.synthetic

post/api/session/{sessionID}/shellRun shell command

Execute one shell command in the session's working directory. Emits a shell.started event before execution and a shell.ended event with the merged output after.

ParameterInTypeRequiredDescription
sessionIDpathSession.IDRequired
Request bodyTypeRequiredDescription
application/jsonobjectRequired
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404SessionNotFoundErrorEncoded | LocationNotFoundErrorEncodedSessionNotFoundError | LocationNotFoundError

Operation ID session.shell

post/api/session/{sessionID}/compactCompact session

Durably admit a session compaction request. Steers by default: it runs at the next step boundary instead of waiting behind queued prompts.

ParameterInTypeRequiredDescription
sessionIDpathSession.IDRequired
Request bodyTypeRequiredDescription
application/jsonobjectRequired
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404SessionNotFoundErrorEncodedSessionNotFoundError
409ConflictErrorEncodedConflictError

Operation ID session.compact

post/api/experimental/session/{sessionID}/waitWait for session

Wait for a session agent loop to become idle.

ParameterInTypeRequiredDescription
sessionIDpathSession.IDRequired
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404SessionNotFoundErrorEncodedSessionNotFoundError
503ServiceUnavailableErrorEncodedServiceUnavailableError

Operation ID experimental.session.wait

post/api/session/{sessionID}/revert/stageStage session revert

Stage or move a reversible session boundary and optionally apply its file changes.

ParameterInTypeRequiredDescription
sessionIDpathSession.IDRequired
Request bodyTypeRequiredDescription
application/jsonobjectRequired
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404MessageNotFoundErrorEncoded | SessionNotFoundErrorEncoded | LocationNotFoundErrorEncodedMessageNotFoundError | SessionNotFoundError | LocationNotFoundError
409SessionBusyErrorEncodedSessionBusyError
500UnknownErrorEncodedUnknownError

Operation ID session.revert.stage

delete/api/session/{sessionID}/revertClear staged revert
ParameterInTypeRequiredDescription
sessionIDpathSession.IDRequired
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404SessionNotFoundErrorEncoded | LocationNotFoundErrorEncodedSessionNotFoundError | LocationNotFoundError
409SessionBusyErrorEncodedSessionBusyError
500UnknownErrorEncodedUnknownError

Operation ID session.revert.clear

post/api/session/{sessionID}/revert/commitCommit staged revert
ParameterInTypeRequiredDescription
sessionIDpathSession.IDRequired
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404SessionNotFoundErrorEncodedSessionNotFoundError
409SessionBusyErrorEncodedSessionBusyError

Operation ID session.revert.commit

get/api/session/{sessionID}/contextGet session context

Retrieve the active context messages for a session (all messages after the last compaction).

ParameterInTypeRequiredDescription
sessionIDpathSession.IDRequired
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404SessionNotFoundErrorEncodedSessionNotFoundError
500UnknownErrorEncodedUnknownError

Operation ID session.context

get/api/session/{sessionID}/diffDiff session turns

Structured per-file diffs of the files a turn changed. A turn runs from the first prompt after the session was last idle until its next idle marker, so prompts steered in while it was busy belong to the same turn; `to` extends the range through a later turn. Compares the range's first recorded snapshot with its last; a step still running in the active session compares against the working copy. Ranges that span a location change are rejected. In sessions without any idle marker, a prompt's turn spans until the next user message.

ParameterInTypeRequiredDescription
sessionIDpathSession.IDRequired
fromquerySession.Message.IDOptional
toquerySession.Message.IDOptional
contextquerystringOptional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404MessageNotFoundErrorEncoded | SessionNotFoundErrorEncoded | LocationNotFoundErrorEncodedMessageNotFoundError | SessionNotFoundError | LocationNotFoundError
500UnknownErrorEncodedUnknownError

Operation ID session.diff

get/api/session/{sessionID}/inboxList session inbox

List durable enqueued session work not yet delivered, ordered by enqueue sequence. Includes user, synthetic, compaction, and move items.

ParameterInTypeRequiredDescription
sessionIDpathSession.IDRequired
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404SessionNotFoundErrorEncodedSessionNotFoundError

Operation ID session.inbox.list

patch/api/session/{sessionID}/inbox/{inboxID}Update inbox item

Change a pending inbox item's delivery mode. Steering wakes session execution.

ParameterInTypeRequiredDescription
sessionIDpathSession.IDRequired
inboxIDpathSession.Message.IDRequired
Request bodyTypeRequiredDescription
application/jsonobjectRequired
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404SessionNotFoundErrorEncodedSessionNotFoundError
409ConflictErrorEncodedConflictError

Operation ID session.inbox.update

delete/api/session/{sessionID}/inbox/{inboxID}Cancel inbox input

Cancel an inbox item that has not yet been delivered. Unavailable items are a no-op.

ParameterInTypeRequiredDescription
sessionIDpathSession.IDRequired
inboxIDpathSession.Message.IDRequired
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404SessionNotFoundErrorEncodedSessionNotFoundError

Operation ID session.inbox.cancel

get/api/experimental/session/{sessionID}/instructions/entriesList instruction entries

List API-managed instruction entries attached to the session.

ParameterInTypeRequiredDescription
sessionIDpathSession.IDRequired
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404SessionNotFoundErrorEncodedSessionNotFoundError

Operation ID experimental.session.instructions.entry.list

put/api/experimental/session/{sessionID}/instructions/entries/{key}Put instruction entry

Attach or replace one durable instruction entry. Changes announce as updates at the next step boundary.

ParameterInTypeRequiredDescription
sessionIDpathSession.IDRequired
keypathInstructionEntry.KeyRequired
Request bodyTypeRequiredDescription
application/jsonobjectRequired
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404SessionNotFoundErrorEncodedSessionNotFoundError
413InstructionEntryValueTooLargeErrorEncodedInstructionEntryValueTooLargeError

Operation ID experimental.session.instructions.entry.put

delete/api/experimental/session/{sessionID}/instructions/entries/{key}Remove instruction entry

Remove one instruction entry; the removal is announced to the model at the next step boundary.

ParameterInTypeRequiredDescription
sessionIDpathSession.IDRequired
keypathInstructionEntry.KeyRequired
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404SessionNotFoundErrorEncodedSessionNotFoundError

Operation ID experimental.session.instructions.entry.remove

post/api/session/{sessionID}/generateGenerate text from session context

Generate transient text from the current session context without mutating session history.

ParameterInTypeRequiredDescription
sessionIDpathSession.IDRequired
Request bodyTypeRequiredDescription
application/jsonobjectRequired
StatusTypeDescription
200SessionGenerateResponseSessionGenerateResponse
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404SessionNotFoundErrorEncoded | LocationNotFoundErrorEncodedSessionNotFoundError | LocationNotFoundError
503ServiceUnavailableErrorEncodedServiceUnavailableError

Operation ID session.generate

get/api/experimental/session/{sessionID}/logRead the session log

Experimental durable session event log. Reads events after an exclusive aggregate sequence and continues with live events when follow=true.

ParameterInTypeRequiredDescription
sessionIDpathSession.IDRequired
afterquerystringOptional
followquery"true" | "false"Optional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404SessionNotFoundErrorEncodedSessionNotFoundError

Operation ID experimental.session.log

post/api/session/{sessionID}/interruptInterrupt session execution

Interrupt active execution owned by this OpenCode process. Returns interrupted=true when an active execution was interrupted and false for the idle no-op. When resume=true, execution resumes pending steering input and next-in-line control items (manual compaction, moves) while queued prompts remain parked.

ParameterInTypeRequiredDescription
sessionIDpathSession.IDRequired
resumequery"true" | "false"Optional
StatusTypeDescription
200SessionInterruptResponseSessionInterruptResponse
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404SessionNotFoundErrorEncodedSessionNotFoundError

Operation ID session.interrupt

post/api/session/{sessionID}/backgroundBackground blocking session tools

Move active foreground backgroundable tools for this session into background observation. Idle requests are a no-op.

ParameterInTypeRequiredDescription
sessionIDpathSession.IDRequired
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404SessionNotFoundErrorEncodedSessionNotFoundError

Operation ID session.background

get/api/session/{sessionID}/message/{messageID}Get session message

Retrieve one projected message owned by the Session.

ParameterInTypeRequiredDescription
sessionIDpathSession.IDRequired
messageIDpathSession.Message.IDRequired
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404SessionNotFoundErrorEncoded | MessageNotFoundErrorEncodedSessionNotFoundError | MessageNotFoundError

Operation ID session.message.get

get/api/session/{sessionID}/formList session forms

Retrieve pending forms for a session.

ParameterInTypeRequiredDescription
sessionIDpathstringRequired
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404SessionNotFoundErrorEncoded | LocationNotFoundErrorEncodedSessionNotFoundError | LocationNotFoundError

Operation ID session.form.list

post/api/session/{sessionID}/formCreate session form

Create a form for a session.

ParameterInTypeRequiredDescription
sessionIDpathstringRequired
Request bodyTypeRequiredDescription
application/jsonForm.CreatePayloadRequired
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404SessionNotFoundErrorEncoded | LocationNotFoundErrorEncodedSessionNotFoundError | LocationNotFoundError
409ConflictErrorEncodedConflictError

Operation ID session.form.create

get/api/session/{sessionID}/form/{formID}Get session form

Retrieve a form and its current state for a session.

ParameterInTypeRequiredDescription
sessionIDpathstringRequired
formIDpathForm.IDRequired
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404SessionNotFoundErrorEncoded | FormNotFoundErrorEncoded | LocationNotFoundErrorEncodedSessionNotFoundError | FormNotFoundError | LocationNotFoundError

Operation ID session.form.get

delete/api/session/{sessionID}/form/{formID}Cancel form

Cancel a pending form, optionally telling the asker why it was not answered.

ParameterInTypeRequiredDescription
sessionIDpathstringRequired
formIDpathForm.IDRequired
messagequerystringOptional
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404SessionNotFoundErrorEncoded | FormNotFoundErrorEncoded | LocationNotFoundErrorEncodedSessionNotFoundError | FormNotFoundError | LocationNotFoundError
409FormAlreadySettledErrorEncodedFormAlreadySettledError

Operation ID session.form.cancel

post/api/session/{sessionID}/form/{formID}/replyReply to form

Submit an answer to a pending form.

ParameterInTypeRequiredDescription
sessionIDpathstringRequired
formIDpathForm.IDRequired
Request bodyTypeRequiredDescription
application/jsonForm.ReplyRequired
StatusTypeDescription
204empty<No Content>
400FormInvalidAnswerErrorEncoded | InvalidRequestErrorEncodedFormInvalidAnswerError | InvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404SessionNotFoundErrorEncoded | FormNotFoundErrorEncoded | LocationNotFoundErrorEncodedSessionNotFoundError | FormNotFoundError | LocationNotFoundError
409FormAlreadySettledErrorEncodedFormAlreadySettledError

Operation ID session.form.reply

put/api/session/{sessionID}/environmentSet session environment

Replace the process environment used by local shell commands for this session.

ParameterInTypeRequiredDescription
sessionIDpathSession.IDRequired
Request bodyTypeRequiredDescription
application/jsonobjectRequired
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404SessionNotFoundErrorEncodedSessionNotFoundError

Operation ID session.environment

post/api/session/{sessionID}/viewView session

Mark the idle transition observed by the viewer as viewed.

ParameterInTypeRequiredDescription
sessionIDpathSession.IDRequired
Request bodyTypeRequiredDescription
application/jsonobjectRequired
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404SessionNotFoundErrorEncodedSessionNotFoundError

Operation ID session.view

get/api/session/{sessionID}/messageGet session messages

Retrieve projected messages for a session, optionally filtered by type. Items keep the requested order across pages; use cursor.next or cursor.previous to move through the ordered timeline, passing the same type filter on each page.

ParameterInTypeRequiredDescription
sessionIDpathSession.IDRequired
limitquerystringOptional
orderquery"asc" | "desc"Optional
cursorquerystringOptional
typequery"agent-switched" | "model-switched" | "location-switched" | "user" | "synthetic" | "system" | "skill" | "shell" | "assistant" | "compaction" | "idle"Optional
StatusTypeDescription
200SessionMessagesResponseSessionMessagesResponse
400InvalidCursorErrorEncoded | InvalidRequestErrorEncodedInvalidCursorError | InvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404SessionNotFoundErrorEncodedSessionNotFoundError
500UnknownErrorEncodedUnknownError

Operation ID session.message.list

Experimental model routes.

get/api/modelList models

Retrieve the current snapshot of available models of the requested types, chat by default, ordered by release date within each type. The snapshot may precede initial plugin settlement.

ParameterInTypeRequiredDescription
locationqueryobjectOptional
typesqueryModel.Type | Model.Type[]Optional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404LocationNotFoundErrorEncodedLocationNotFoundError
503ServiceUnavailableErrorEncodedServiceUnavailableError

Operation ID model.list

get/api/model/defaultGet default model

Retrieve the model used when a session has no explicit model selection.

ParameterInTypeRequiredDescription
locationqueryobjectOptional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404LocationNotFoundErrorEncodedLocationNotFoundError
503ServiceUnavailableErrorEncodedServiceUnavailableError

Operation ID model.default

Experimental one-shot generation routes.

post/api/experimental/generate/textGenerate text

Run one stateless model generation using the server's base configuration and return the assistant text. Uses the base configuration's default model when none is specified.

Request bodyTypeRequiredDescription
application/jsonobjectRequired
StatusTypeDescription
200GenerateTextResponseGenerateTextResponse
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404ProviderNotFoundErrorEncoded | ModelNotFoundErrorEncoded | LocationNotFoundErrorEncodedProviderNotFoundError | ModelNotFoundError | LocationNotFoundError
422UnsupportedModelErrorEncodedUnsupportedModelError
502ProviderRequestErrorEncodedProviderRequestError
503ServiceUnavailableErrorEncodedServiceUnavailableError

Operation ID experimental.generate.text

post/api/experimental/generateGenerate text (deprecated path)

Deprecated alias of POST /api/experimental/generate/text.

Request bodyTypeRequiredDescription
application/jsonobjectRequired
StatusTypeDescription
200GenerateTextResponseGenerateTextResponse
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404ProviderNotFoundErrorEncoded | ModelNotFoundErrorEncoded | LocationNotFoundErrorEncodedProviderNotFoundError | ModelNotFoundError | LocationNotFoundError
422UnsupportedModelErrorEncodedUnsupportedModelError
502ProviderRequestErrorEncodedProviderRequestError
503ServiceUnavailableErrorEncodedServiceUnavailableError

Operation ID experimental.generate.textLegacy

post/api/experimental/generate/imageGenerate images

Generate or edit images with an image model using the server's base configuration and return them as base64. Stateless: nothing is stored.

Request bodyTypeRequiredDescription
application/jsonGenerate.ImageRequestRequired
StatusTypeDescription
200GenerateImageResponseGenerateImageResponse
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404ProviderNotFoundErrorEncoded | ModelNotFoundErrorEncoded | LocationNotFoundErrorEncodedProviderNotFoundError | ModelNotFoundError | LocationNotFoundError
422UnsupportedModelErrorEncodedUnsupportedModelError
502ProviderRequestErrorEncodedProviderRequestError
503ServiceUnavailableErrorEncodedServiceUnavailableError

Operation ID experimental.generate.image

post/api/experimental/generate/decisionsGenerate decisions

Ask a decision model typed predicate, choice and score questions about the input and return one probability-bearing answer per question, in question order. Stateless: nothing is stored.

Request bodyTypeRequiredDescription
application/jsonGenerate.DecisionRequestRequired
StatusTypeDescription
200GenerateDecisionsResponseGenerateDecisionsResponse
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404ProviderNotFoundErrorEncoded | ModelNotFoundErrorEncoded | LocationNotFoundErrorEncodedProviderNotFoundError | ModelNotFoundError | LocationNotFoundError
422UnsupportedModelErrorEncodedUnsupportedModelError
502ProviderRequestErrorEncodedProviderRequestError
503ServiceUnavailableErrorEncodedServiceUnavailableError

Operation ID experimental.generate.decisions

Experimental server-brokered voice session routes.

get/api/experimental/voice/modelsList voice models

List supported voice models, their transports, and whether the server has a usable API key for each provider.

StatusTypeDescription
200VoiceModelsResponseVoiceModelsResponse
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404LocationNotFoundErrorEncodedLocationNotFoundError
503ServiceUnavailableErrorEncodedServiceUnavailableError

Operation ID experimental.voice.models

post/api/experimental/voice/sessionCreate voice session

Create a server-brokered voice session using the server's configured provider credentials and return the WebRTC SDP answer or WebSocket ephemeral token.

Request bodyTypeRequiredDescription
application/jsonobjectRequired
StatusTypeDescription
200VoiceSessionResponseVoiceSessionResponse
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404LocationNotFoundErrorEncodedLocationNotFoundError
503ServiceUnavailableErrorEncodedServiceUnavailableError

Operation ID experimental.voice.session

Experimental provider routes.

get/api/providerList providers

Retrieve active AI providers so clients can show provider availability and configuration.

ParameterInTypeRequiredDescription
locationqueryobjectOptional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404LocationNotFoundErrorEncodedLocationNotFoundError
503ServiceUnavailableErrorEncodedServiceUnavailableError

Operation ID provider.list

get/api/provider/{providerID}Get provider

Retrieve a single AI provider so clients can inspect its availability and endpoint settings.

ParameterInTypeRequiredDescription
providerIDpathProvider.IDRequired
locationqueryobjectOptional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404ProviderNotFoundErrorEncoded | LocationNotFoundErrorEncodedProviderNotFoundError | LocationNotFoundError
503ServiceUnavailableErrorEncodedServiceUnavailableError

Operation ID provider.get

Integration discovery and authentication routes.

get/api/integrationList integrations

Retrieve available integrations and their authentication methods.

ParameterInTypeRequiredDescription
locationqueryobjectOptional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404LocationNotFoundErrorEncodedLocationNotFoundError

Operation ID integration.list

get/api/integration/{integrationID}Get integration

Retrieve one integration and its authentication methods.

ParameterInTypeRequiredDescription
integrationIDpathIntegration.IDRequired
locationqueryobjectOptional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404IntegrationNotFoundErrorEncoded | LocationNotFoundErrorEncodedIntegrationNotFoundError | LocationNotFoundError

Operation ID integration.get

post/api/experimental/integration/wellknownAdd wellknown integration

Discover and persist an experimental wellknown integration source.

ParameterInTypeRequiredDescription
locationqueryobjectOptional
Request bodyTypeRequiredDescription
application/jsonobjectRequired
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404LocationNotFoundErrorEncodedLocationNotFoundError

Operation ID experimental.integration.wellknown.add

post/api/integration/{integrationID}/connect/keyConnect with key

Run a key authentication method and store the resulting credential.

ParameterInTypeRequiredDescription
integrationIDpathIntegration.IDRequired
locationqueryobjectOptional
Request bodyTypeRequiredDescription
application/jsonobjectRequired
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404IntegrationNotFoundErrorEncoded | LocationNotFoundErrorEncodedIntegrationNotFoundError | LocationNotFoundError

Operation ID integration.connect.key

post/api/integration/{integrationID}/connect/externalConnect with external credentials

Run an external authentication method and store a reference to its credential source.

ParameterInTypeRequiredDescription
integrationIDpathIntegration.IDRequired
locationqueryobjectOptional
Request bodyTypeRequiredDescription
application/jsonobjectRequired
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404IntegrationNotFoundErrorEncoded | LocationNotFoundErrorEncodedIntegrationNotFoundError | LocationNotFoundError

Operation ID integration.connect.external

post/api/integration/{integrationID}/connect/oauthBegin OAuth connection

Start an OAuth attempt and return the authorization details.

ParameterInTypeRequiredDescription
integrationIDpathIntegration.IDRequired
locationqueryobjectOptional
Request bodyTypeRequiredDescription
application/jsonobjectRequired
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404LocationNotFoundErrorEncodedLocationNotFoundError

Operation ID integration.oauth.connect

get/api/integration/{integrationID}/connect/oauth/{attemptID}Get OAuth attempt status

Poll the current status of an OAuth attempt.

ParameterInTypeRequiredDescription
integrationIDpathIntegration.IDRequired
attemptIDpathIntegration.AttemptIDRequired
locationqueryobjectOptional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404IntegrationNotFoundErrorEncoded | IntegrationAttemptNotFoundErrorEncoded | LocationNotFoundErrorEncodedIntegrationNotFoundError | IntegrationAttemptNotFoundError | LocationNotFoundError

Operation ID integration.oauth.status

delete/api/integration/{integrationID}/connect/oauth/{attemptID}Cancel OAuth connection

Cancel an OAuth attempt and release its resources.

ParameterInTypeRequiredDescription
integrationIDpathIntegration.IDRequired
attemptIDpathIntegration.AttemptIDRequired
locationqueryobjectOptional
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404LocationNotFoundErrorEncodedLocationNotFoundError

Operation ID integration.oauth.cancel

post/api/integration/{integrationID}/connect/oauth/{attemptID}/completeComplete OAuth connection

Complete a code-based OAuth attempt and store the resulting credential. For an automatic attempt with `paste`, `code` is the redirect URL copied from the browser, and the result arrives through the attempt status.

ParameterInTypeRequiredDescription
integrationIDpathIntegration.IDRequired
attemptIDpathIntegration.AttemptIDRequired
locationqueryobjectOptional
Request bodyTypeRequiredDescription
application/jsonobjectRequired
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404IntegrationNotFoundErrorEncoded | IntegrationAttemptNotFoundErrorEncoded | LocationNotFoundErrorEncodedIntegrationNotFoundError | IntegrationAttemptNotFoundError | LocationNotFoundError

Operation ID integration.oauth.complete

post/api/integration/{integrationID}/connect/commandBegin command connection

Start a command authentication attempt.

ParameterInTypeRequiredDescription
integrationIDpathIntegration.IDRequired
locationqueryobjectOptional
Request bodyTypeRequiredDescription
application/jsonobjectRequired
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404IntegrationNotFoundErrorEncoded | IntegrationMethodNotFoundErrorEncoded | LocationNotFoundErrorEncodedIntegrationNotFoundError | IntegrationMethodNotFoundError | LocationNotFoundError

Operation ID integration.command.connect

get/api/integration/{integrationID}/connect/command/{attemptID}Get command attempt status

Poll the current status and output of a command authentication attempt.

ParameterInTypeRequiredDescription
integrationIDpathIntegration.IDRequired
attemptIDpathIntegration.AttemptIDRequired
locationqueryobjectOptional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404IntegrationNotFoundErrorEncoded | IntegrationAttemptNotFoundErrorEncoded | LocationNotFoundErrorEncodedIntegrationNotFoundError | IntegrationAttemptNotFoundError | LocationNotFoundError

Operation ID integration.command.status

delete/api/integration/{integrationID}/connect/command/{attemptID}Cancel command connection

Cancel a command authentication attempt and terminate its process.

ParameterInTypeRequiredDescription
integrationIDpathIntegration.IDRequired
attemptIDpathIntegration.AttemptIDRequired
locationqueryobjectOptional
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404LocationNotFoundErrorEncodedLocationNotFoundError

Operation ID integration.command.cancel

MCP server and resource routes.

get/api/mcpList MCP servers

Retrieve configured MCP servers and their connection status.

ParameterInTypeRequiredDescription
locationqueryobjectOptional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404LocationNotFoundErrorEncodedLocationNotFoundError

Operation ID mcp.list

put/api/experimental/mcp/{server}Add MCP server

Add an MCP server at runtime or replace an existing one, connecting it immediately.

ParameterInTypeRequiredDescription
serverpathstringRequired
locationqueryobjectOptional
Request bodyTypeRequiredDescription
application/jsonobjectRequired
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404LocationNotFoundErrorEncodedLocationNotFoundError

Operation ID experimental.mcp.add

delete/api/experimental/mcp/{server}Remove MCP server

Stop an MCP server and remove it from the runtime set until restart.

ParameterInTypeRequiredDescription
serverpathstringRequired
locationqueryobjectOptional
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404McpServerNotFoundErrorEncoded | LocationNotFoundErrorEncodedMcpServerNotFoundError | LocationNotFoundError

Operation ID experimental.mcp.remove

post/api/experimental/mcp/{server}/connectConnect MCP server

Connect an MCP server at runtime, overriding a disabled configuration until restart.

ParameterInTypeRequiredDescription
serverpathstringRequired
locationqueryobjectOptional
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404McpServerNotFoundErrorEncoded | LocationNotFoundErrorEncodedMcpServerNotFoundError | LocationNotFoundError

Operation ID experimental.mcp.connect

post/api/experimental/mcp/{server}/disconnectDisconnect MCP server

Disconnect an MCP server at runtime, removing its tools until reconnected.

ParameterInTypeRequiredDescription
serverpathstringRequired
locationqueryobjectOptional
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404McpServerNotFoundErrorEncoded | LocationNotFoundErrorEncodedMcpServerNotFoundError | LocationNotFoundError

Operation ID experimental.mcp.disconnect

get/api/mcp/resourceList MCP resources

Retrieve resources and resource templates from connected MCP servers.

ParameterInTypeRequiredDescription
locationqueryobjectOptional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404LocationNotFoundErrorEncodedLocationNotFoundError

Operation ID mcp.resource.catalog

post/api/experimental/client-mcp/tokenCreate client MCP WebSocket token

Create a short-lived single-use ticket for opening a client MCP WebSocket connection from a browser.

ParameterInTypeRequiredDescription
x-opencode-ticketheaderstringOptional
locationqueryobjectOptional
namequerystringRequired
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
403ForbiddenErrorEncodedForbiddenError
404LocationNotFoundErrorEncodedLocationNotFoundError

Operation ID experimental.mcp.client.token

get/api/experimental/client-mcpAttach client MCP server

Upgrade to a WebSocket over which the client hosts an MCP server named after `name`; its tools stay available while the socket is open. One JSON-RPC message per text frame. Experimental: may change without compatibility guarantees.

ParameterInTypeRequiredDescription
locationqueryobjectOptional
namequerystringRequired
ticketquerystringOptional
StatusTypeDescription
200booleanSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
403ForbiddenErrorEncodedForbiddenError
404LocationNotFoundErrorEncodedLocationNotFoundError

Operation ID experimental.mcp.client

get/api/credentialList credentials

List every stored integration credential, including its secret value.

StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError

Operation ID credential.list

post/api/credentialCreate credential

Store an integration credential. It becomes the integration's active credential unless activate is false and the integration already has one. Fails with a conflict when the requested ID already exists, and with an invalid request when an `integration.connect` policy denies the integration.

Request bodyTypeRequiredDescription
application/jsonCredential.CreateInputRequired
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
409ConflictErrorEncodedConflictError

Operation ID credential.create

patch/api/credential/{credentialID}Update credential

Update a stored credential label.

ParameterInTypeRequiredDescription
credentialIDpathCredential.IDRequired
Request bodyTypeRequiredDescription
application/jsonobjectRequired
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError

Operation ID credential.update

delete/api/credential/{credentialID}Remove credential

Remove a stored integration credential.

ParameterInTypeRequiredDescription
credentialIDpathCredential.IDRequired
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError

Operation ID credential.remove

post/api/credential/{credentialID}/activateActivate credential

Activate a stored integration credential.

ParameterInTypeRequiredDescription
credentialIDpathCredential.IDRequired
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError

Operation ID credential.activate

Project routes.

get/api/projectList projects

List known projects. Archived projects are excluded unless archived=true.

ParameterInTypeRequiredDescription
archivedquery"true" | "false"Optional
StatusTypeDescription
200Project[]Success
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError

Operation ID project.list

patch/api/project/{projectID}Update project

Update the project canonical directory, display metadata, and workspace commands.

ParameterInTypeRequiredDescription
projectIDpathProject.IDRequired
Request bodyTypeRequiredDescription
application/jsonobjectRequired
StatusTypeDescription
200ProjectProject
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404ProjectNotFoundErrorEncodedProjectNotFoundError

Operation ID project.update

Location form routes.

get/api/formList pending forms

Retrieve pending forms for a location.

ParameterInTypeRequiredDescription
locationqueryobjectOptional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404LocationNotFoundErrorEncodedLocationNotFoundError

Operation ID form.list

Experimental permission routes.

get/api/permission/requestList pending permission requests

Retrieve pending permission requests for a location.

ParameterInTypeRequiredDescription
locationqueryobjectOptional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404LocationNotFoundErrorEncodedLocationNotFoundError

Operation ID permission.request.list

get/api/permission/savedList saved permissions

Retrieve saved permissions, optionally filtered by project.

ParameterInTypeRequiredDescription
projectIDqueryProject.IDOptional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404LocationNotFoundErrorEncodedLocationNotFoundError

Operation ID permission.saved.list

patch/api/permission/saved/{id}Update saved permission

Change the action or resource of a saved permission. Fails with a conflict when the project already has a saved permission with the same action and resource.

ParameterInTypeRequiredDescription
idpathPermissionSaved.IDRequired
Request bodyTypeRequiredDescription
application/jsonobjectRequired
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404PermissionSavedNotFoundErrorEncodedPermissionSavedNotFoundError
409ConflictErrorEncodedConflictError

Operation ID permission.saved.update

delete/api/permission/saved/{id}Remove saved permission

Remove a saved permission by ID.

ParameterInTypeRequiredDescription
idpathPermissionSaved.IDRequired
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError

Operation ID permission.saved.remove

get/api/session/{sessionID}/permissionList session permission requests

Retrieve pending permission requests owned by a session.

ParameterInTypeRequiredDescription
sessionIDpathSession.IDRequired
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404SessionNotFoundErrorEncoded | LocationNotFoundErrorEncodedSessionNotFoundError | LocationNotFoundError

Operation ID session.permission.list

post/api/session/{sessionID}/permissionCreate permission request

Evaluate and, when approval is required, create a permission request for a session.

ParameterInTypeRequiredDescription
sessionIDpathSession.IDRequired
Request bodyTypeRequiredDescription
application/jsonobjectRequired
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404SessionNotFoundErrorEncoded | LocationNotFoundErrorEncodedSessionNotFoundError | LocationNotFoundError

Operation ID session.permission.create

get/api/session/{sessionID}/permission/{requestID}Get permission request

Retrieve a pending permission request owned by a session.

ParameterInTypeRequiredDescription
sessionIDpathSession.IDRequired
requestIDpathPermission.IDRequired
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404SessionNotFoundErrorEncoded | PermissionNotFoundErrorEncoded | LocationNotFoundErrorEncodedSessionNotFoundError | PermissionNotFoundError | LocationNotFoundError

Operation ID session.permission.get

post/api/session/{sessionID}/permission/{requestID}/replyReply to pending permission request

Respond to a pending permission request owned by a session.

ParameterInTypeRequiredDescription
sessionIDpathSession.IDRequired
requestIDpathPermission.IDRequired
Request bodyTypeRequiredDescription
application/jsonobjectRequired
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404SessionNotFoundErrorEncoded | PermissionNotFoundErrorEncoded | LocationNotFoundErrorEncodedSessionNotFoundError | PermissionNotFoundError | LocationNotFoundError

Operation ID session.permission.reply

Experimental location-scoped filesystem routes.

get/api/fs/read/*Read file

Stream one file relative to the requested location with ETag, Last-Modified, and single-range HTTP Range support (206 Partial Content, 416 Range Not Satisfiable, and 304 Not Modified; multi-range and malformed Range headers fall back to 200).

ParameterInTypeRequiredDescription
locationqueryobjectOptional
StatusTypeDescription
200string<binary>Success
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404FileNotFoundErrorEncoded | LocationNotFoundErrorEncodedFileNotFoundError | LocationNotFoundError

Operation ID fs.read

get/api/fs/listList directory

List direct children using an absolute path or a path relative to the requested location, including parents and siblings outside its directory. Entry paths remain relative to the requested location; listing does not switch locations.

ParameterInTypeRequiredDescription
locationqueryobjectOptional
pathquerystringOptional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404FileNotFoundErrorEncoded | LocationNotFoundErrorEncodedFileNotFoundError | LocationNotFoundError

Operation ID fs.list

get/api/fs/findFind files

Find recursively ranked filesystem entries relative to the requested location.

ParameterInTypeRequiredDescription
locationqueryobjectOptional
queryquerystringRequired
typequery"file" | "directory"Optional
limitquerystringOptional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404LocationNotFoundErrorEncodedLocationNotFoundError

Operation ID fs.find

post/api/experimental/fs/writeWrite file

Write the raw request body to an absolute path or a path relative to the requested location, creating parent directories, and return the resolved absolute path. Unlike read, the target is not confined to the location. Experimental: may change without compatibility guarantees.

ParameterInTypeRequiredDescription
locationqueryobjectOptional
pathquerystringRequired
Request bodyTypeRequiredDescription
application/octet-streamstring<binary>Required
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404LocationNotFoundErrorEncodedLocationNotFoundError

Operation ID experimental.fs.write

post/api/experimental/fs/watchWatch file

Watch one file relative to the requested location for 24 hours, publishing filesystem.changed on that location when it changes. Watching an already watched file resets its expiry. Paths follow read confinement. Experimental: may change without compatibility guarantees.

ParameterInTypeRequiredDescription
locationqueryobjectOptional
Request bodyTypeRequiredDescription
application/jsonobjectRequired
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404FileNotFoundErrorEncoded | LocationNotFoundErrorEncodedFileNotFoundError | LocationNotFoundError
503ServiceUnavailableErrorEncodedServiceUnavailableError

Operation ID experimental.fs.watch

delete/api/experimental/fs/watchUnwatch file

Stop watching one file relative to the requested location. Experimental: may change without compatibility guarantees.

ParameterInTypeRequiredDescription
locationqueryobjectOptional
Request bodyTypeRequiredDescription
application/jsonobjectRequired
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404LocationNotFoundErrorEncodedLocationNotFoundError

Operation ID experimental.fs.unwatch

Experimental command routes.

get/api/commandList commands

Retrieve currently registered commands.

ParameterInTypeRequiredDescription
locationqueryobjectOptional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404LocationNotFoundErrorEncodedLocationNotFoundError

Operation ID command.list

Experimental skill routes.

get/api/skillList skills

Retrieve currently registered skills.

ParameterInTypeRequiredDescription
locationqueryobjectOptional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404LocationNotFoundErrorEncodedLocationNotFoundError

Operation ID skill.list

Plugin RPC routes.

post/api/rpc/{rpcID}/{method}Call a plugin RPC

Dispatch a method to the currently registered RPC at the requested location.

ParameterInTypeRequiredDescription
rpcIDpathstringRequired
methodpathstringRequired
locationqueryobjectOptional
Request bodyTypeRequiredDescription
application/jsonRpc.InputRequired
StatusTypeDescription
200Rpc.OutputRpc.Output
400RpcErrorEncoded | InvalidRequestErrorEncodedRpcError | InvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404LocationNotFoundErrorEncodedLocationNotFoundError
500RpcInternalErrorEncodedRpcInternalError

Operation ID rpc.call

Experimental event stream routes.

get/api/eventSubscribe to events

Subscribe to native events and plugin RPC events across all server locations. Volatile by contract: a slow consumer overflows and fails the stream, and events during disconnection are missed.

ParameterInTypeRequiredDescription
typesquery"location.shutdown" | "models-dev.refreshed" | "credential.updated" | "credential.switched" | "integration.updated" | "provider.updated" | "model.updated" | "agent.updated" | "session.created" | "session.agent.selected" | "session.model.selected" | "session.moved" | "session.renamed" | "session.metadata.updated" | "session.permissions" | "session.viewed" | "session.archived" | "session.unarchived" | "session.usage.updated" | "session.deleted" | "session.forked" | "session.inbox.delivered" | "session.inbox.enqueued" | "session.inbox.cancelled" | "session.inbox.delivery.changed" | "session.execution.started" | "session.execution.succeeded" | "session.execution.failed" | "session.execution.interrupted" | "session.instructions.updated" | "session.synthetic" | "session.skill.activated" | "session.shell.started" | "session.shell.ended" | "session.step.started" | "session.step.streamed" | "session.step.ended" | "session.step.failed" | "session.text.started" | "session.text.delta" | "session.text.ended" | "session.reasoning.started" | "session.reasoning.delta" | "session.reasoning.ended" | "session.tool.input.started" | "session.tool.input.delta" | "session.tool.input.ended" | "session.tool.called" | "session.tool.progress" | "session.tool.success" | "session.tool.failed" | "session.retry.scheduled" | "session.compaction.started" | "session.compaction.delta" | "session.compaction.ended" | "session.compaction.failed" | "session.revert.staged" | "session.revert.cleared" | "session.revert.committed" | "filesystem.changed" | "reference.updated" | "permission.asked" | "permission.replied" | "plugin.updated" | "project.updated" | "worktree.updated" | "worktree.resolved" | "command.updated" | "config.updated" | "skill.updated" | "pty.created" | "pty.updated" | "pty.exited" | "pty.deleted" | "persistent-pty.added" | "persistent-pty.removed" | "persistent-pty.updated" | "shell.created" | "shell.exited" | "shell.deleted" | "form.created" | "form.replied" | "form.cancelled" | "websearch.updated" | "artifact.updated" | "session.status" | "session.idle" | "tui.prompt.append" | "tui.command.execute" | "tui.toast.show" | "tui.session.select" | "installation.updated" | "installation.update-available" | "vcs.branch.updated" | "mcp.status.changed" | "mcp.resources.changed" | string | "location.shutdown" | "models-dev.refreshed" | "credential.updated" | "credential.switched" | "integration.updated" | "provider.updated" | "model.updated" | "agent.updated" | "session.created" | "session.agent.selected" | "session.model.selected" | "session.moved" | "session.renamed" | "session.metadata.updated" | "session.permissions" | "session.viewed" | "session.archived" | "session.unarchived" | "session.usage.updated" | "session.deleted" | "session.forked" | "session.inbox.delivered" | "session.inbox.enqueued" | "session.inbox.cancelled" | "session.inbox.delivery.changed" | "session.execution.started" | "session.execution.succeeded" | "session.execution.failed" | "session.execution.interrupted" | "session.instructions.updated" | "session.synthetic" | "session.skill.activated" | "session.shell.started" | "session.shell.ended" | "session.step.started" | "session.step.streamed" | "session.step.ended" | "session.step.failed" | "session.text.started" | "session.text.delta" | "session.text.ended" | "session.reasoning.started" | "session.reasoning.delta" | "session.reasoning.ended" | "session.tool.input.started" | "session.tool.input.delta" | "session.tool.input.ended" | "session.tool.called" | "session.tool.progress" | "session.tool.success" | "session.tool.failed" | "session.retry.scheduled" | "session.compaction.started" | "session.compaction.delta" | "session.compaction.ended" | "session.compaction.failed" | "session.revert.staged" | "session.revert.cleared" | "session.revert.committed" | "filesystem.changed" | "reference.updated" | "permission.asked" | "permission.replied" | "plugin.updated" | "project.updated" | "worktree.updated" | "worktree.resolved" | "command.updated" | "config.updated" | "skill.updated" | "pty.created" | "pty.updated" | "pty.exited" | "pty.deleted" | "persistent-pty.added" | "persistent-pty.removed" | "persistent-pty.updated" | "shell.created" | "shell.exited" | "shell.deleted" | "form.created" | "form.replied" | "form.cancelled" | "websearch.updated" | "artifact.updated" | "session.status" | "session.idle" | "tui.prompt.append" | "tui.command.execute" | "tui.toast.show" | "tui.session.select" | "installation.updated" | "installation.update-available" | "vcs.branch.updated" | "mcp.status.changed" | "mcp.resources.changed" | string[]Optional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError

Operation ID event.subscribe

Experimental location-scoped PTY routes.

get/api/ptyList PTY sessions

List PTY sessions for a location, including exited sessions retained until removal.

ParameterInTypeRequiredDescription
locationqueryobjectOptional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404LocationNotFoundErrorEncodedLocationNotFoundError

Operation ID pty.list

post/api/ptyCreate PTY session

Create a pseudo-terminal session for a location.

ParameterInTypeRequiredDescription
locationqueryobjectOptional
Request bodyTypeRequiredDescription
application/jsonobjectRequired
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404LocationNotFoundErrorEncodedLocationNotFoundError

Operation ID pty.create

get/api/pty/{ptyID}Get PTY session

Get one PTY session, including its exit code once exited.

ParameterInTypeRequiredDescription
ptyIDpathPty.IDRequired
locationqueryobjectOptional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404PtyNotFoundErrorEncoded | LocationNotFoundErrorEncodedPtyNotFoundError | LocationNotFoundError

Operation ID pty.get

put/api/pty/{ptyID}Update PTY session

Update the title or viewport size of one PTY session.

ParameterInTypeRequiredDescription
ptyIDpathPty.IDRequired
locationqueryobjectOptional
Request bodyTypeRequiredDescription
application/jsonobjectRequired
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404PtyNotFoundErrorEncoded | LocationNotFoundErrorEncodedPtyNotFoundError | LocationNotFoundError

Operation ID pty.update

delete/api/pty/{ptyID}Remove PTY session

Terminate and remove one PTY session.

ParameterInTypeRequiredDescription
ptyIDpathPty.IDRequired
locationqueryobjectOptional
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404PtyNotFoundErrorEncoded | LocationNotFoundErrorEncodedPtyNotFoundError | LocationNotFoundError

Operation ID pty.remove

post/api/pty/{ptyID}/connect-tokenCreate PTY WebSocket token

Create a short-lived single-use ticket for opening a PTY WebSocket connection.

ParameterInTypeRequiredDescription
ptyIDpathPty.IDRequired
x-opencode-ticketheaderstringOptional
locationqueryobjectOptional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
403ForbiddenErrorEncodedForbiddenError
404PtyNotFoundErrorEncoded | LocationNotFoundErrorEncodedPtyNotFoundError | LocationNotFoundError

Operation ID pty.connect.token

get/api/pty/{ptyID}/connectConnect to PTY session

Establish a WebSocket connection streaming PTY output and accepting terminal input.

ParameterInTypeRequiredDescription
ptyIDpathPty.IDRequired
location[directory]querystringOptional
cursorquerystringOptional
ticketquerystringOptional
StatusTypeDescription
200booleanSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
403ForbiddenErrorEncodedForbiddenError
404PtyNotFoundErrorEncoded | LocationNotFoundErrorEncodedPtyNotFoundError | LocationNotFoundError

Operation ID pty.connect

Prototype persistent PTY routes.

get/api/experimental/session/{sessionID}/terminal/readRead the session's most recently controlled terminal

Read the last physical rows without changing selection or taking control. Omitted lines uses the live terminal height; larger counts include retained history. Blank rows are preserved. Screen dimensions and cursor remain relative to the live screen. Returns null when no current terminal exists. Selection is server-local and resets on restart. Experimental: may change without compatibility guarantees.

ParameterInTypeRequiredDescription
sessionIDpathSession.IDRequired
linesquerystringOptional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
503ServiceUnavailableErrorEncodedServiceUnavailableError

Operation ID experimental.persistentPty.read

get/api/experimental/session/{sessionID}/terminal
ParameterInTypeRequiredDescription
sessionIDpathSession.IDRequired
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
503ServiceUnavailableErrorEncodedServiceUnavailableError

Operation ID experimental.persistentPty.list

post/api/experimental/session/{sessionID}/terminal
ParameterInTypeRequiredDescription
sessionIDpathSession.IDRequired
Request bodyTypeRequiredDescription
application/jsonPersistentPty.CreateInputRequired
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
503ServiceUnavailableErrorEncodedServiceUnavailableError

Operation ID experimental.persistentPty.create

post/api/experimental/persistent-pty/shutdown
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
503ServiceUnavailableErrorEncodedServiceUnavailableError

Operation ID experimental.persistentPty.shutdown

post/api/experimental/persistent-pty/handoff
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
503ServiceUnavailableErrorEncodedServiceUnavailableError

Operation ID experimental.persistentPty.handoff

get/api/experimental/persistent-pty/{ptyID}
ParameterInTypeRequiredDescription
ptyIDpathPty.IDRequired
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404PtyNotFoundErrorEncodedPtyNotFoundError
503ServiceUnavailableErrorEncodedServiceUnavailableError

Operation ID experimental.persistentPty.get

put/api/experimental/persistent-pty/{ptyID}

Resize when size is present and rename when title is present; a null title clears the user title so the shell's title shows again. Renaming fails with 501 while the terminal service predates renaming.

ParameterInTypeRequiredDescription
ptyIDpathPty.IDRequired
Request bodyTypeRequiredDescription
application/jsonPersistentPty.UpdateInputRequired
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404PtyNotFoundErrorEncodedPtyNotFoundError
501PtyFeatureUnsupportedErrorEncodedPtyFeatureUnsupportedError
503ServiceUnavailableErrorEncodedServiceUnavailableError

Operation ID experimental.persistentPty.update

delete/api/experimental/persistent-pty/{ptyID}
ParameterInTypeRequiredDescription
ptyIDpathPty.IDRequired
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404PtyNotFoundErrorEncodedPtyNotFoundError
503ServiceUnavailableErrorEncodedServiceUnavailableError

Operation ID experimental.persistentPty.remove

get/api/experimental/persistent-pty/{ptyID}/snapshot
ParameterInTypeRequiredDescription
ptyIDpathPty.IDRequired
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404PtyNotFoundErrorEncodedPtyNotFoundError
503ServiceUnavailableErrorEncodedServiceUnavailableError

Operation ID experimental.persistentPty.snapshot

post/api/experimental/persistent-pty/{ptyID}/connect-token
ParameterInTypeRequiredDescription
ptyIDpathPty.IDRequired
x-opencode-ticketheaderstringOptional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
403ForbiddenErrorEncodedForbiddenError
404PtyNotFoundErrorEncodedPtyNotFoundError
503ServiceUnavailableErrorEncodedServiceUnavailableError

Operation ID experimental.persistentPty.connectToken

get/api/experimental/persistent-pty/{ptyID}/connectConnect to a persistent PTY

Stream persistent PTY output through the OpenCode server.

ParameterInTypeRequiredDescription
ptyIDpathPty.IDRequired
cursorquerystringOptional
rolequerystringOptional
attachment_idquerystringOptional
takeoverquerystringOptional
input_protocolquerystringOptional
ticketquerystringOptional
StatusTypeDescription
200booleanSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
403ForbiddenErrorEncodedForbiddenError
404PtyNotFoundErrorEncodedPtyNotFoundError
503ServiceUnavailableErrorEncodedServiceUnavailableError

Operation ID experimental.persistentPty.connect

get/api/experimental/media/{hash}Read media blob

Read a content-addressed media blob by SHA-256 hash with immutable Cache-Control, ETag, and 304 Not Modified support. Only blobs a stored message or inbox item still references are served. Experimental: may change without compatibility guarantees.

ParameterInTypeRequiredDescription
hashpathMediaHashRequired
StatusTypeDescription
200string<binary>Success
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404FileNotFoundErrorEncodedFileNotFoundError

Operation ID experimental.media.get

get/api/experimental/scheduleList schedules

List a Session's schedules, oldest first. Experimental: needs experimental.schedules in the Session's config and may change without notice.

ParameterInTypeRequiredDescription
sessionIDquerySession.IDRequired
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
403ForbiddenErrorEncodedForbiddenError
404SessionNotFoundErrorEncodedSessionNotFoundError

Operation ID experimental.schedule.list

post/api/experimental/scheduleCreate schedule

Schedule a prompt that wakes the Session once after a delay, at a time, every interval, or on a cron. Experimental: needs experimental.schedules in the Session's config and may change without notice.

Request bodyTypeRequiredDescription
application/jsonSchedule.CreatePayloadRequired
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
403ForbiddenErrorEncodedForbiddenError
404SessionNotFoundErrorEncodedSessionNotFoundError

Operation ID experimental.schedule.create

get/api/experimental/schedule/{scheduleID}Get schedule

Read one schedule. Experimental: needs experimental.schedules in the Session's config and may change without notice.

ParameterInTypeRequiredDescription
scheduleIDpathSchedule.IDRequired
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
403ForbiddenErrorEncodedForbiddenError
404ScheduleNotFoundErrorEncodedScheduleNotFoundError

Operation ID experimental.schedule.get

delete/api/experimental/schedule/{scheduleID}Delete schedule

Delete a schedule. Experimental: needs experimental.schedules in the Session's config and may change without notice.

ParameterInTypeRequiredDescription
scheduleIDpathSchedule.IDRequired
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
403ForbiddenErrorEncodedForbiddenError
404ScheduleNotFoundErrorEncodedScheduleNotFoundError

Operation ID experimental.schedule.delete

post/api/experimental/schedule/{scheduleID}/pausePause schedule

Stop a schedule from firing until it is resumed. Experimental: needs experimental.schedules in the Session's config and may change without notice.

ParameterInTypeRequiredDescription
scheduleIDpathSchedule.IDRequired
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
403ForbiddenErrorEncodedForbiddenError
404ScheduleNotFoundErrorEncodedScheduleNotFoundError

Operation ID experimental.schedule.pause

post/api/experimental/schedule/{scheduleID}/resumeResume schedule

Resume a paused schedule. A one-shot that fell due while paused fires once; a repeating schedule resumes at its next slot. Experimental: needs experimental.schedules in the Session's config and may change without notice.

ParameterInTypeRequiredDescription
scheduleIDpathSchedule.IDRequired
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
403ForbiddenErrorEncodedForbiddenError
404ScheduleNotFoundErrorEncodedScheduleNotFoundError

Operation ID experimental.schedule.resume

get/api/experimental/artifacts/providersList artifact providers

Return active artifact providers and default. Experimental: needs experimental.artifacts in the Location's config and may change without notice.

ParameterInTypeRequiredDescription
locationqueryobjectOptional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
403ForbiddenErrorEncodedForbiddenError
404LocationNotFoundErrorEncodedLocationNotFoundError
503ServiceUnavailableErrorEncodedServiceUnavailableError

Operation ID experimental.artifacts.providers

get/api/experimental/artifactsList artifacts

List published artifacts, newest update first. Experimental: needs experimental.artifacts in the Location's config and may change without notice.

ParameterInTypeRequiredDescription
locationqueryobjectOptional
sessionIDquerySession.IDOptional
providerquerystringOptional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
403ForbiddenErrorEncodedForbiddenError
404SessionNotFoundErrorEncoded | LocationNotFoundErrorEncodedSessionNotFoundError | LocationNotFoundError
503ServiceUnavailableErrorEncodedServiceUnavailableError

Operation ID experimental.artifacts.list

post/api/experimental/artifactsCreate artifact

Publish a new artifact through the selected or default artifact provider. Experimental: needs experimental.artifacts in the Location's config and may change without notice.

ParameterInTypeRequiredDescription
locationqueryobjectOptional
Request bodyTypeRequiredDescription
application/jsonArtifact.CreateInputRequired
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
403ForbiddenErrorEncodedForbiddenError
404ProviderNotFoundErrorEncoded | SessionNotFoundErrorEncoded | LocationNotFoundErrorEncodedProviderNotFoundError | SessionNotFoundError | LocationNotFoundError
503ServiceUnavailableErrorEncodedServiceUnavailableError

Operation ID experimental.artifacts.create

get/api/experimental/artifacts/{artifactID}Read artifact

Read an artifact's metadata and file contents. Experimental: needs experimental.artifacts in the Location's config and may change without notice.

ParameterInTypeRequiredDescription
artifactIDpathArtifact.IDRequired
locationqueryobjectOptional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
403ForbiddenErrorEncodedForbiddenError
404ArtifactNotFoundErrorEncoded | LocationNotFoundErrorEncodedArtifactNotFoundError | LocationNotFoundError
503ServiceUnavailableErrorEncodedServiceUnavailableError

Operation ID experimental.artifacts.get

patch/api/experimental/artifacts/{artifactID}Update artifact

Replace an artifact's files at the same ID and URL. Experimental: needs experimental.artifacts in the Location's config and may change without notice.

ParameterInTypeRequiredDescription
artifactIDpathArtifact.IDRequired
locationqueryobjectOptional
Request bodyTypeRequiredDescription
application/jsonArtifact.UpdateInputRequired
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
403ForbiddenErrorEncodedForbiddenError
404SessionNotFoundErrorEncoded | ArtifactNotFoundErrorEncoded | LocationNotFoundErrorEncodedSessionNotFoundError | ArtifactNotFoundError | LocationNotFoundError
503ServiceUnavailableErrorEncodedServiceUnavailableError

Operation ID experimental.artifacts.update

delete/api/experimental/artifacts/{artifactID}Delete artifact

Remove an artifact and its stored files. Experimental: needs experimental.artifacts in the Location's config and may change without notice.

ParameterInTypeRequiredDescription
artifactIDpathArtifact.IDRequired
locationqueryobjectOptional
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
403ForbiddenErrorEncodedForbiddenError
404ArtifactNotFoundErrorEncoded | LocationNotFoundErrorEncodedArtifactNotFoundError | LocationNotFoundError
503ServiceUnavailableErrorEncodedServiceUnavailableError

Operation ID experimental.artifacts.delete

get/api/experimental/artifacts/{artifactID}/view/*View local artifact

Serve HTML and static files from the local provider. Experimental: needs experimental.artifacts in the Location's config and may change without notice.

ParameterInTypeRequiredDescription
artifactIDpathArtifact.IDRequired
locationqueryobjectOptional
StatusTypeDescription
200string<binary>Success
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
403ForbiddenErrorEncodedForbiddenError
404FileNotFoundErrorEncoded | ArtifactNotFoundErrorEncoded | LocationNotFoundErrorEncodedFileNotFoundError | ArtifactNotFoundError | LocationNotFoundError
503ServiceUnavailableErrorEncodedServiceUnavailableError

Operation ID experimental.artifacts.view

get/api/experimental/jobList background jobs

List active and unconsumed background jobs, optionally filtered by owning session, descendants, or kind. Experimental: may change without compatibility guarantees.

ParameterInTypeRequiredDescription
sessionIDquerySession.IDOptional
kindqueryJob.KindOptional
statusqueryJob.StatusOptional
descendantsquery"true" | "false"Optional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404SessionNotFoundErrorEncodedSessionNotFoundError

Operation ID experimental.job.list

Location-scoped shell command routes.

get/api/shellList running shell commands

List currently running shell commands for a location. Exited commands are not included.

ParameterInTypeRequiredDescription
locationqueryobjectOptional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404LocationNotFoundErrorEncodedLocationNotFoundError

Operation ID shell.list

post/api/shellRun shell command

Spawn one non-interactive shell command for a location. Combined stdout/stderr is captured to a file pageable via output.

ParameterInTypeRequiredDescription
locationqueryobjectOptional
Request bodyTypeRequiredDescription
application/jsonobjectRequired
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404LocationNotFoundErrorEncodedLocationNotFoundError

Operation ID shell.create

get/api/shell/{id}Get shell command

Get one shell command, including its status and exit code once exited.

ParameterInTypeRequiredDescription
idpathShell.IDRequired
locationqueryobjectOptional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404ShellNotFoundErrorEncoded | LocationNotFoundErrorEncodedShellNotFoundError | LocationNotFoundError

Operation ID shell.get

delete/api/shell/{id}Remove shell command

Terminate and remove one shell command and its retained output.

ParameterInTypeRequiredDescription
idpathShell.IDRequired
locationqueryobjectOptional
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404LocationNotFoundErrorEncodedLocationNotFoundError

Operation ID shell.remove

get/api/shell/{id}/outputRead shell output

Page through captured combined output by absolute byte cursor.

ParameterInTypeRequiredDescription
idpathShell.IDRequired
locationqueryobjectOptional
cursorquerystringOptional
limitquerystringOptional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404ShellNotFoundErrorEncoded | LocationNotFoundErrorEncodedShellNotFoundError | LocationNotFoundError

Operation ID shell.output

Location-scoped project references.

get/api/referenceList references

List references available in the requested location.

ParameterInTypeRequiredDescription
locationqueryobjectOptional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404LocationNotFoundErrorEncodedLocationNotFoundError

Operation ID reference.list

Project-based worktree management routes.

get/api/worktreeList worktrees

Return the project's saved worktree inventory without loading configuration or running discovery.

ParameterInTypeRequiredDescription
projectIDqueryProject.IDRequired
StatusTypeDescription
200Worktree.ListWorktree.List
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404ProjectNotFoundErrorEncodedProjectNotFoundError

Operation ID worktree.list

post/api/worktreeCreate worktree

Load the project's canonical configuration, create a local worktree using its selected strategy, then run the project's setup script.

Request bodyTypeRequiredDescription
application/jsonWorktree.CreateInputRequired
StatusTypeDescription
200Worktree.InfoWorktree.Info
400WorktreeErrorEncoded | InvalidRequestErrorEncodedWorktreeError | InvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404ProjectNotFoundErrorEncodedProjectNotFoundError

Operation ID worktree.create

delete/api/worktreeRemove worktree

Load the project's canonical configuration and remove a saved worktree using its recorded strategy.

Request bodyTypeRequiredDescription
application/jsonWorktree.RemoveInputRequired
StatusTypeDescription
204empty<No Content>
400WorktreeErrorEncoded | InvalidRequestErrorEncodedWorktreeError | InvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404ProjectNotFoundErrorEncodedProjectNotFoundError

Operation ID worktree.remove

post/api/worktree/refreshRefresh worktrees

Load the project's canonical configuration, discover worktrees across known checkout roots using all available strategies, and reconcile saved state.

Request bodyTypeRequiredDescription
application/jsonobjectRequired
StatusTypeDescription
204empty<No Content>
400WorktreeErrorEncoded | InvalidRequestErrorEncodedWorktreeError | InvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404ProjectNotFoundErrorEncodedProjectNotFoundError

Operation ID worktree.refresh

Location-scoped version control routes.

post/api/vcs/initInitialize VCS repository

Initialize a repository using the selected VCS provider in a markerless project's directory and refresh its location services. Omitting provider defaults to git; built-in git and hg providers support initialization. An unknown provider returns 400; a registered provider without init returns 501.

ParameterInTypeRequiredDescription
locationqueryobjectOptional
providerquerystringOptional
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404LocationNotFoundErrorEncodedLocationNotFoundError
409ConflictErrorEncodedConflictError
501VcsInitNotSupportedErrorEncodedVcsInitNotSupportedError
503ServiceUnavailableErrorEncodedServiceUnavailableError

Operation ID vcs.init

get/api/vcsVCS info

Get current and default branch information for the requested location.

ParameterInTypeRequiredDescription
locationqueryobjectOptional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404LocationNotFoundErrorEncodedLocationNotFoundError

Operation ID vcs.get

get/api/vcs/baseVCS review base

Infer a local review base from named branch creation history, or the repository default only when currently on that branch. Returns null before the first commit or when the provider lacks base metadata; ambiguous Git history requires an explicit base on diff requests.

ParameterInTypeRequiredDescription
locationqueryobjectOptional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404LocationNotFoundErrorEncodedLocationNotFoundError
503ServiceUnavailableErrorEncodedServiceUnavailableError

Operation ID vcs.base

get/api/vcs/statusVCS status

List uncommitted working-copy changes relative to the requested location.

ParameterInTypeRequiredDescription
locationqueryobjectOptional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404LocationNotFoundErrorEncodedLocationNotFoundError

Operation ID vcs.status

get/api/vcs/branchVCS branches

List local and remote branches available at the requested location.

ParameterInTypeRequiredDescription
locationqueryobjectOptional
searchquerystringOptional
limitquerystringOptional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404LocationNotFoundErrorEncodedLocationNotFoundError

Operation ID vcs.branch.list

get/api/vcs/diffVCS diff

Diff HEAD to the working copy (working), the base merge-base to the working copy (branch), or the base merge-base to HEAD (committed). Omitting base preserves repository-default comparison; supplying it overrides the comparison without saving it.

ParameterInTypeRequiredDescription
locationqueryobjectOptional
modequeryVcs.ModeRequired
basequerystringOptional
contextquerystringOptional
untrackedqueryVcs.UntrackedOptional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404LocationNotFoundErrorEncodedLocationNotFoundError
503ServiceUnavailableErrorEncodedServiceUnavailableError

Operation ID vcs.diff

post/api/debug/heap-dumpWrite a heap snapshot

Write a JavaScript heap snapshot of the server process into its log directory, or the requested directory, and return the server-local path once the file is complete. Pauses the server while the heap serializes and can temporarily increase its memory use. The snapshot can contain credentials, prompts, and file contents.

ParameterInTypeRequiredDescription
directoryquerystringOptional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
500UnknownErrorEncodedUnknownError

Operation ID debug.heapDump

get/api/debug/locationList loaded locations

List locations currently loaded by the server.

StatusTypeDescription
200Location.PublicRef[]Success
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError

Operation ID debug.location.list

delete/api/debug/locationEvict a loaded location

Dispose the requested location's cached services so its next use boots them fresh.

ParameterInTypeRequiredDescription
locationqueryobjectOptional
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError

Operation ID debug.location.evict

get/api/experimental/migration/v1Get V1 migration status

Return the progress of the V1 to V2 session history migration.

StatusTypeDescription
200object | object | objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError

Operation ID experimental.migration.v1.status

Location-scoped web search routes.

get/api/websearch/providerList web search providers

Return the registered web search providers.

ParameterInTypeRequiredDescription
locationqueryobjectOptional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404LocationNotFoundErrorEncodedLocationNotFoundError
503ServiceUnavailableErrorEncodedServiceUnavailableError

Operation ID websearch.providers

post/api/websearchSearch the web

Run one web search through the selected provider. Specify a provider to override the configured default.

ParameterInTypeRequiredDescription
locationqueryobjectOptional
Request bodyTypeRequiredDescription
application/jsonobjectRequired
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404LocationNotFoundErrorEncodedLocationNotFoundError
503ServiceUnavailableErrorEncodedServiceUnavailableError

Operation ID websearch.query

Experimental usage limit routes.

get/api/experimental/usage/limitsGet usage limits

Return the OpenCode Go allowance and Console budgets of the OpenCode Console workspace the location is signed in to, or null when it isn't signed in.

ParameterInTypeRequiredDescription
locationqueryobjectOptional
StatusTypeDescription
200objectSuccess
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404LocationNotFoundErrorEncodedLocationNotFoundError
503ServiceUnavailableErrorEncodedServiceUnavailableError

Operation ID experimental.usage.limits

Location-scoped configuration routes.

get/api/configGet configuration

Return configuration documents and discovery sources for the requested location, from lowest to highest priority.

ParameterInTypeRequiredDescription
locationqueryobjectOptional
StatusTypeDescription
200Config.Entry[]Success
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404LocationNotFoundErrorEncodedLocationNotFoundError

Operation ID config.get

get/api/config/shellList available shells

Return shells available to terminal and agent execution.

StatusTypeDescription
200ConfigShell.Option[]Success
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404LocationNotFoundErrorEncodedLocationNotFoundError

Operation ID config.shells

patch/api/experimental/configUpdate global configuration

Patch supported fields in the highest-precedence global configuration document.

Request bodyTypeRequiredDescription
application/jsonConfig.PatchRequired
StatusTypeDescription
204empty<No Content>
400InvalidRequestErrorEncodedInvalidRequestError
401UnauthorizedErrorEncodedUnauthorizedError
404LocationNotFoundErrorEncodedLocationNotFoundError

Operation ID experimental.config.update

The data types the operations above refer to.

AbsolutePathstring

string

Agent.Colorstring

string

Agent.IDstring

string

Agent.Infoobject
FieldTypeRequiredDescription
idAgent.IDRequired
namestringRequired
modelModel.RefOptional
requestProvider.RequestRequired
systemstringOptional
descriptionstringOptional
mode"subagent" | "primary" | "all"Required
hiddenbooleanRequired
colorAgent.ColorOptional
stepsintegerOptional
permissionsPermission.RulesetRequired
AgentNotFoundErrorEncodedobject
FieldTypeRequiredDescription
_tag"AgentNotFoundError"Required
agentIDstringRequired
messagestringRequired
Artifact.Capability"static" | "server-code" | "sqlite" | "durable-objects"

"static" | "server-code" | "sqlite" | "durable-objects"

Artifact.Contentobject
FieldTypeRequiredDescription
infoArtifact.InfoRequired
filesobjectRequired
Artifact.CreateInputobject
FieldTypeRequiredDescription
titlestringRequired
filesobjectRequired
entrystringOptional
providerstringOptional
sessionIDSession.IDOptional
Artifact.IDstring

string

Artifact.Infoobject
FieldTypeRequiredDescription
idArtifact.IDRequired
providerArtifact.ProviderIDEncodedRequired
sessionIDSession.IDOptional
titlestringRequired
entrystringRequired
urlstringRequired
timeArtifact.TimeRequired
Artifact.Providerobject
FieldTypeRequiredDescription
idArtifact.ProviderIDEncodedRequired
namestringRequired
capabilitiesArtifact.Capability[]Required
defaultbooleanRequired
Artifact.ProviderIDEncodedstring

string

Artifact.Timeobject
FieldTypeRequiredDescription
creatednumberRequired
updatednumberRequired
Artifact.UpdateInputobject
FieldTypeRequiredDescription
titlestringOptional
filesobjectRequired
entrystringOptional
sessionIDSession.IDOptional
ArtifactNotFoundErrorEncodedobject
FieldTypeRequiredDescription
_tag"ArtifactNotFoundError"Required
artifactIDstringRequired
messagestringRequired
Command.Infoobject
FieldTypeRequiredDescription
namestringRequired
descriptionstringOptional
CommandExecutionErrorEncodedobject
FieldTypeRequiredDescription
_tag"CommandExecutionError"Required
commandstringRequired
messagestringRequired
CommandNotFoundErrorEncodedobject
FieldTypeRequiredDescription
_tag"CommandNotFoundError"Required
commandstringRequired
messagestringRequired
Config.AgentEncodedobject
FieldTypeRequiredDescription
modelstring | objectOptional
requestobjectOptional
systemstringOptional
descriptionstringOptional
mode"subagent" | "primary" | "all"Optional
hiddenbooleanOptional
colorstringOptional
stepsintegerOptional
disabledbooleanOptional
permissionsPermission.RulesetOptional
Config.CommandEncodedobject
FieldTypeRequiredDescription
templatestringRequired
descriptionstringOptional
agentstringOptional
modelstring | objectOptional
subagentbooleanOptional
subtaskbooleanOptionalDeprecated alias for subagent.
Config.Compaction.Percentstring

string

Config.DirectoryEncodedobject
FieldTypeRequiredDescription
type"directory"Required
pathAbsolutePathRequired
Config.DocumentEncodedobject
FieldTypeRequiredDescription
type"document"Required
pathAbsolutePathOptional
infoConfig.InfoEncodedRequired
Config.EntryConfig.DocumentEncoded | Config.DirectoryEncoded
Config.Formatter.EntryEncodedobject
FieldTypeRequiredDescription
disabledbooleanOptional
commandstring[]Optional
environmentobjectOptional
extensionsstring[]Optional
Config.InfoEncodedobject
FieldTypeRequiredDescription
$schemastringOptional
shellstringOptional
modelstring | objectOptional
default_agentstringOptional
update"disable" | "notify" | "auto"Optional
share"manual" | "auto" | "disabled"Optional
enterpriseobjectOptional
usernamestringOptional
timezonestringOptional
permissionsPermission.RulesetOptional
policiesobject[]Optional
agentsobjectOptional
snapshotsbooleanOptional
watcherobjectOptional
formatterboolean | objectOptional
lspboolean | objectOptional
mediaobjectOptional
tool_outputobjectOptional
mcpobjectOptional
compactionobjectOptional
skillsstring[]Optional
commandsobjectOptional
instructionsstring[]Optional
referencesobjectOptional
websearchfalse | ConfigWebSearch.InfoEncodedOptional
pluginsstring | Config.Plugin.EntryEncoded[]Optional
worktreeConfig.WorktreeOptional
warmingboolean | Config.WarmingEncodedOptional
providersobjectOptional
experimentalobjectOptional
Config.LSP.ServerEncodedobject
FieldTypeRequiredDescription
commandstring[]Required
extensionsstring[]Optional
disabledbooleanOptional
envobjectOptional
initializationobjectOptional
Config.Model.Capabilitiesobject
FieldTypeRequiredDescription
toolsbooleanOptional
inputstring[]Optional
outputstring[]Optional
temperaturebooleanOptional
reasoningConfig.Model.ReasoningOptional
Config.Model.CostEncodedobject
FieldTypeRequiredDescription
tierobjectOptional
inputMoney.USDPerMillionTokensRequired
outputMoney.USDPerMillionTokensRequired
cacheobjectOptional
Config.Model.Reasoningobject | object

object | object

Config.Model.Settingsobject
FieldTypeRequiredDescription
compactionProvider.CompactionOptional
cacheProvider.CacheOptional
encodingProvider.EncodingOptional
Config.Model.VariantSettingsobject
FieldTypeRequiredDescription
compactionProvider.CompactionOptional
encodingProvider.EncodingOptional
Config.ModelEncodedobject
FieldTypeRequiredDescription
modelIDstringOptional
typeModel.TypeOptional
familystringOptional
namestringOptional
releaseDatestringOptionalRelease date as YYYY-MM-DD or YYYY-MM
compatibilityModel.CompatibilityOptional
packagestringOptional
settingsConfig.Model.SettingsOptional
headersobjectOptional
bodyobjectOptional
capabilitiesConfig.Model.CapabilitiesOptional
variantsobject[]Optional
costConfig.Model.CostEncoded | Config.Model.CostEncoded[]Optional
disabledbooleanOptional
limitobjectOptional
Config.Patchobject
FieldTypeRequiredDescription
shellstring | nullRequired
Config.Plugin.EntryEncodedobject
FieldTypeRequiredDescription
packagestringRequired
optionsobjectOptional
Config.Provider.Settingsobject
FieldTypeRequiredDescription
timeoutnumber | falseOptional
headerTimeoutnumber | falseOptional
chunkTimeoutnumber | falseOptional
compactionProvider.CompactionOptional
cacheProvider.CacheOptional
transportProvider.TransportOptional
encodingProvider.EncodingOptional
Config.ProviderEncodedobject
FieldTypeRequiredDescription
canonicalProvider.IDOptional
namestringOptional
envstring[]Optional
packagestringOptional
compatibilityProvider.CompatibilityOptional
settingsConfig.Provider.SettingsOptional
headersobjectOptional
bodyobjectOptional
modelsobjectOptional
Config.Reference.GitEncodedobject
FieldTypeRequiredDescription
repositorystringRequired
branchstringOptional
descriptionstringOptional
hiddenbooleanOptional
Config.Reference.LocalEncodedobject
FieldTypeRequiredDescription
pathstringRequired
descriptionstringOptional
hiddenbooleanOptional
Config.WarmingEncodedobject
FieldTypeRequiredDescription
promptstringOptional
interval"auto" | stringOptional
durationstringOptional
Config.Worktreeobject
FieldTypeRequiredDescription
directorystringRequired
ConfigShell.Optionobject
FieldTypeRequiredDescription
pathstringRequired
namestringRequired
acceptablebooleanRequired
ConfigWebSearch.InfoEncodedobject
FieldTypeRequiredDescription
provider"random" | WebSearch.IDRequired
ConflictErrorEncodedobject
FieldTypeRequiredDescription
_tag"ConflictError"Required
messagestringRequired
resourcestring | nullOptional
Connection.CredentialInfoobject
FieldTypeRequiredDescription
type"credential"Required
idCredential.IDRequired
labelstringRequired
method"key" | "oauth" | "external"Required
statusConnection.StatusOptional
Connection.EnvInfoobject
FieldTypeRequiredDescription
type"env"Required
namestringRequired
statusConnection.StatusOptional
Connection.InfoConnection.CredentialInfo | Connection.EnvInfo
Connection.Statusobject
FieldTypeRequiredDescription
status"needs_auth"Required
messagestringRequired
urlstringOptional
Credential.CreateInputobject
FieldTypeRequiredDescription
idCredential.IDOptional
integrationIDIntegration.IDRequired
labelstringOptional
valueCredential.ValueRequired
activatebooleanOptional
Credential.Entryobject
FieldTypeRequiredDescription
idCredential.IDRequired
integrationIDIntegration.IDRequired
labelstringRequired
activebooleanRequired
valueCredential.ValueRequired
Credential.Externalobject
FieldTypeRequiredDescription
type"external"Required
methodIDIntegration.MethodIDRequired
metadataobjectOptional
Credential.IDstring

string

Credential.Keyobject
FieldTypeRequiredDescription
type"key"Required
keystringRequired
metadataobjectOptional
Credential.OAuthobject
FieldTypeRequiredDescription
type"oauth"Required
methodIDIntegration.MethodIDRequired
refreshstringRequired
accessstringRequired
expiresintegerRequired
metadataobjectOptional
Credential.ValueCredential.OAuth | Credential.Key | Credential.External
Event.IDstring

string

Event.Seqinteger

integer

Event.VersionEncoded_c3ea984aceae2

2

Event.VersionEncoded_c77c5abcb68d1

1

EventLog.Syncedobject

Marker emitted once when a log read reaches its captured watermark. The reader holds every event committed at or below seq.

FieldTypeRequiredDescription
type"log.synced"Required
aggregateIDstringRequired
seqEvent.SeqOptional
FileDiff.Infoobject
FieldTypeRequiredDescription
filestringRequired
patchstringRequired
additionsintegerRequired
deletionsintegerRequired
status"added" | "deleted" | "modified"Required
moretrueOptional
FileNotFoundErrorEncodedobject
FieldTypeRequiredDescription
_tag"FileNotFoundError"Required
pathstringRequired
messagestringRequired
FileSystem.Entryobject
FieldTypeRequiredDescription
pathRelativePathRequired
type"file" | "directory"Required
FileSystem.Writeobject
FieldTypeRequiredDescription
pathAbsolutePathRequired
ForbiddenErrorEncodedobject
FieldTypeRequiredDescription
_tag"ForbiddenError"Required
messagestringRequired
Form.Answerobject

object

Form.Answer_1object

object

Form.BooleanFieldobject
FieldTypeRequiredDescription
keystringRequired
titlestringOptional
descriptionstringOptional
requiredbooleanOptional
hiddenbooleanOptional
whenForm.When[]Optional
type"boolean"Required
defaultbooleanOptional
Form.BooleanField_1object
FieldTypeRequiredDescription
keystringRequired
titlestringOptional
descriptionstringOptional
requiredbooleanOptional
hiddenbooleanOptional
whenForm.When_1[]Optional
type"boolean"Required
defaultbooleanOptional
Form.CreatePayloadobject
FieldTypeRequiredDescription
idForm.ID | nullOptional
titlestringRequired
metadataForm.MetadataOptional
fieldsForm.FieldsRequired
Form.Detailobject
FieldTypeRequiredDescription
idForm.IDRequired
sessionIDstringRequired
titlestringRequired
metadataForm.MetadataOptional
fieldsForm.FieldsRequired
stateForm.StateRequired
Form.ExternalFieldobject
FieldTypeRequiredDescription
keystringRequired
type"external"Required
urlstringRequired
titlestringOptional
descriptionstringOptional
Form.FieldForm.StringField | Form.NumberField | Form.IntegerField | Form.BooleanField | Form.MultiselectField | Form.ExternalField
Form.Field_1Form.StringField_1 | Form.NumberField_1 | Form.IntegerField_1 | Form.BooleanField_1 | Form.MultiselectField_1 | Form.ExternalField
Form.FieldsForm.Field[]
Form.Fields_1Form.Field_1[]
Form.IDstring

string

Form.Infoobject
FieldTypeRequiredDescription
idForm.IDRequired
sessionIDstringRequired
titlestringRequired
metadataForm.MetadataOptional
fieldsForm.FieldsRequired
Form.Info_1object
FieldTypeRequiredDescription
idForm.IDRequired
sessionIDstringRequired
titlestringRequired
metadataForm.MetadataOptional
fieldsForm.Fields_1Required
Form.IntegerFieldobject
FieldTypeRequiredDescription
keystringRequired
titlestringOptional
descriptionstringOptional
requiredbooleanOptional
hiddenbooleanOptional
whenForm.When[]Optional
type"integer"Required
minimumnumber | "Infinity" | "-Infinity" | "NaN"Optional
maximumnumber | "Infinity" | "-Infinity" | "NaN"Optional
defaultnumber | "Infinity" | "-Infinity" | "NaN"Optional
Form.IntegerField_1object
FieldTypeRequiredDescription
keystringRequired
titlestringOptional
descriptionstringOptional
requiredbooleanOptional
hiddenbooleanOptional
whenForm.When_1[]Optional
type"integer"Required
minimumnumber | "NaN" | "Infinity" | "-Infinity"Optional
maximumnumber | "NaN" | "Infinity" | "-Infinity"Optional
defaultnumber | "NaN" | "Infinity" | "-Infinity"Optional
Form.Metadataobject

object

Form.MultiselectFieldobject
FieldTypeRequiredDescription
keystringRequired
titlestringOptional
descriptionstringOptional
requiredbooleanOptional
hiddenbooleanOptional
whenForm.When[]Optional
type"multiselect"Required
optionsForm.Option[]Required
minItemsintegerOptional
maxItemsintegerOptional
custombooleanOptional
defaultstring[]Optional
Form.MultiselectField_1object
FieldTypeRequiredDescription
keystringRequired
titlestringOptional
descriptionstringOptional
requiredbooleanOptional
hiddenbooleanOptional
whenForm.When_1[]Optional
type"multiselect"Required
optionsForm.Option[]Required
minItemsintegerOptional
maxItemsintegerOptional
custombooleanOptional
defaultstring[]Optional
Form.NumberFieldobject
FieldTypeRequiredDescription
keystringRequired
titlestringOptional
descriptionstringOptional
requiredbooleanOptional
hiddenbooleanOptional
whenForm.When[]Optional
type"number"Required
minimumnumber | "Infinity" | "-Infinity" | "NaN"Optional
maximumnumber | "Infinity" | "-Infinity" | "NaN"Optional
defaultnumber | "Infinity" | "-Infinity" | "NaN"Optional
Form.NumberField_1object
FieldTypeRequiredDescription
keystringRequired
titlestringOptional
descriptionstringOptional
requiredbooleanOptional
hiddenbooleanOptional
whenForm.When_1[]Optional
type"number"Required
minimumnumber | "NaN" | "Infinity" | "-Infinity"Optional
maximumnumber | "NaN" | "Infinity" | "-Infinity"Optional
defaultnumber | "NaN" | "Infinity" | "-Infinity"Optional
Form.Optionobject
FieldTypeRequiredDescription
valuestringRequired
labelstringRequired
descriptionstringOptional
Form.Replyobject
FieldTypeRequiredDescription
answerForm.AnswerRequired
Form.Stateobject | object | object

object | object | object

Form.StringFieldobject
FieldTypeRequiredDescription
keystringRequired
titlestringOptional
descriptionstringOptional
requiredbooleanOptional
hiddenbooleanOptional
whenForm.When[]Optional
type"string"Required
format"email" | "uri" | "date" | "date-time"Optional
minLengthintegerOptional
maxLengthintegerOptional
patternstringOptional
placeholderstringOptional
defaultstringOptional
optionsForm.Option[]Optional
custombooleanOptional
Form.StringField_1object
FieldTypeRequiredDescription
keystringRequired
titlestringOptional
descriptionstringOptional
requiredbooleanOptional
hiddenbooleanOptional
whenForm.When_1[]Optional
type"string"Required
format"email" | "uri" | "date" | "date-time"Optional
minLengthintegerOptional
maxLengthintegerOptional
patternstringOptional
placeholderstringOptional
defaultstringOptional
optionsForm.Option[]Optional
custombooleanOptional
Form.Valuestring | number | "Infinity" | "-Infinity" | "NaN" | boolean | string[]

string | number | "Infinity" | "-Infinity" | "NaN" | boolean | string[]

Form.Value_1string | number | "NaN" | "Infinity" | "-Infinity" | boolean | string[]

string | number | "NaN" | "Infinity" | "-Infinity" | boolean | string[]

Form.Whenobject
FieldTypeRequiredDescription
keystringRequired
op"eq" | "neq"Required
valuestring | number | "Infinity" | "-Infinity" | "NaN" | booleanRequired
Form.When_1object
FieldTypeRequiredDescription
keystringRequired
op"eq" | "neq"Required
valuestring | number | "NaN" | "Infinity" | "-Infinity" | booleanRequired
FormAlreadySettledErrorEncodedobject
FieldTypeRequiredDescription
_tag"FormAlreadySettledError"Required
idstringRequired
messagestringRequired
FormInvalidAnswerErrorEncodedobject
FieldTypeRequiredDescription
_tag"FormInvalidAnswerError"Required
idstringRequired
messagestringRequired
FormNotFoundErrorEncodedobject
FieldTypeRequiredDescription
_tag"FormNotFoundError"Required
idstringRequired
messagestringRequired
Generate.ChoiceAnswerobject
FieldTypeRequiredDescription
type"choice"Required
namestringRequired
choiceGenerate.ChoiceValueRequired
probabilitiesobject[]Required
confidencenumberRequired
Generate.ChoiceQuestionobject

Pick one value from a fixed set

FieldTypeRequiredDescription
type"choice"Required
namestringRequiredUnique within the request; echoed on the matching answer
instructionsstringRequired
choicesobject[]Required
Generate.ChoiceValuestring | boolean

Choice values are typed: true and "true" are different values

string | boolean

Generate.DecisionAnswerGenerate.PredicateAnswer | Generate.ChoiceAnswer | Generate.ScoreAnswer | Generate.ErrorAnswer
Generate.DecisionFilePartobject
FieldTypeRequiredDescription
type"file"Required
dataPrompt.Base64Required
mimestringRequired
namestringOptional
Generate.DecisionJsonPartobject
FieldTypeRequiredDescription
type"json"Required
valueobjectRequired
Generate.DecisionPartGenerate.DecisionTextPart | Generate.DecisionJsonPart | Generate.DecisionFilePart
Generate.DecisionQuestionGenerate.PredicateQuestion | Generate.ChoiceQuestion | Generate.ScoreQuestion
Generate.DecisionRequestobject
FieldTypeRequiredDescription
modelModel.RefRequired
inputGenerate.DecisionPart[]RequiredThe evidence every question is asked about, in order
questionsGenerate.DecisionQuestion[]RequiredQuestion names must be unique; duplicates fail with InvalidRequestError
Generate.DecisionResultobject
FieldTypeRequiredDescription
answersGenerate.DecisionAnswer[]RequiredOne answer per question, in question order
costMoney.USDOptional
tokensGenerate.UsageOptional
nativeGenerate.NativeOptional
Generate.DecisionTextPartobject
FieldTypeRequiredDescription
type"text"Required
textstringRequired
Generate.ErrorAnswerobject

This one question has no answer; the other answers still came back

FieldTypeRequiredDescription
type"error"Required
namestringRequired
reasonstringRequiredWhy the question has no answer, for example refusal
messagestringOptional
Generate.Fileobject
FieldTypeRequiredDescription
dataPrompt.Base64Required
mimestringRequired
namestringOptional
Generate.ImageAspectstring

Aspect ratio as width:height, for example 16:9

string

Generate.ImageOutputobject
FieldTypeRequiredDescription
type"image"Required
dataPrompt.Base64Required
mimestringRequired
namestringOptional
Generate.ImageRequestobject
FieldTypeRequiredDescription
modelModel.RefRequired
promptstringRequired
imagesGenerate.File[]Optional
nintegerOptional
aspectGenerate.ImageAspectOptional
resolutionGenerate.ImageResolutionOptional
Generate.ImageResolution"1K" | "2K" | "4K" | string

Size tier such as 1K, 2K or 4K; 1K is about as many pixels as 1024x1024 at the requested aspect

"1K" | "2K" | "4K" | string

Generate.ImageResultobject
FieldTypeRequiredDescription
imagesGenerate.ImageOutput[]Required
costMoney.USDOptional
tokensGenerate.UsageOptional
nativeGenerate.NativeOptional
Generate.Nativeobject

Provider-specific data the shared fields do not cover

object

Generate.PredicateAnswerobject
FieldTypeRequiredDescription
type"predicate"Required
namestringRequired
probabilitynumberRequired
Generate.PredicateQuestionobject

The probability that a statement is true

FieldTypeRequiredDescription
type"predicate"Required
namestringRequiredUnique within the request; echoed on the matching answer
instructionsstringRequired
Generate.ScoreAnswerobject
FieldTypeRequiredDescription
type"score"Required
namestringRequired
scorenumberRequiredProbability-weighted level index, so it can fall between levels
probabilitiesobject[]Required
confidencenumberRequired
Generate.ScoreQuestionobject

Place the input on ordered levels, lowest first

FieldTypeRequiredDescription
type"score"Required
namestringRequiredUnique within the request; echoed on the matching answer
instructionsstringRequired
levelsobject[]Required
Generate.Usageobject

Token counts, when the provider reports them

FieldTypeRequiredDescription
inputnumberOptional
outputnumberOptional
GenerateDecisionsResponseobject
FieldTypeRequiredDescription
dataGenerate.DecisionResultRequired
GenerateImageResponseobject
FieldTypeRequiredDescription
dataGenerate.ImageResultRequired
GenerateTextResponseobject
FieldTypeRequiredDescription
dataobjectRequired
Instruction.Hashstring

string

Instruction.Keystring

string

InstructionEntry.Infoobject
FieldTypeRequiredDescription
keyInstructionEntry.KeyRequired
valueobjectRequiredJSON value attached to the session's instructions
InstructionEntry.Keystring

Instruction entry key (lowercase alphanumerics plus . _ -)

string

InstructionEntry.Snapshotobject[]

object[]

InstructionEntryValueTooLargeErrorEncodedobject
FieldTypeRequiredDescription
_tag"InstructionEntryValueTooLargeError"Required
actualBytesintegerRequired
maxBytesintegerRequired
messagestringRequired
Integration.AttemptEncodedobject
FieldTypeRequiredDescription
attemptIDIntegration.AttemptIDRequired
urlstringRequired
instructionsstringRequired
mode"auto" | "code"Required
pastetrueOptional
timeobjectRequired
Integration.AttemptIDstring

string

Integration.AttemptStatusobject | object | object | object

object | object | object | object

Integration.CommandAttemptobject
FieldTypeRequiredDescription
attemptIDIntegration.AttemptIDRequired
timeobjectRequired
Integration.CommandAttemptStatusobject | object | object | object

object | object | object | object

Integration.CommandMethodobject
FieldTypeRequiredDescription
idIntegration.MethodIDRequired
type"command"Required
labelstringRequired
commandstring[]Required
Integration.EnvMethodobject
FieldTypeRequiredDescription
type"env"Required
namesstring[]Required
Integration.ExternalMethodobject
FieldTypeRequiredDescription
idIntegration.MethodIDRequired
type"external"Required
labelstringRequired
formForm.FieldsOptional
Integration.IDstring

string

Integration.Infoobject
FieldTypeRequiredDescription
idIntegration.IDRequired
namestringRequired
metadataobjectOptional
methodsIntegration.Method[]Required
connectionsConnection.Info[]Required
Integration.KeyMethodobject
FieldTypeRequiredDescription
type"key"Required
labelstringOptional
formForm.FieldsOptional
Integration.MethodIntegration.OAuthMethod | Integration.CommandMethod | Integration.KeyMethod | Integration.ExternalMethod | Integration.EnvMethod
Integration.MethodIDstring

string

Integration.OAuthMethodobject
FieldTypeRequiredDescription
idIntegration.MethodIDRequired
type"oauth"Required
labelstringRequired
formForm.FieldsOptional
IntegrationAttemptNotFoundErrorEncodedobject
FieldTypeRequiredDescription
_tag"IntegrationAttemptNotFoundError"Required
integrationIDstringRequired
attemptIDstringRequired
messagestringRequired
IntegrationMethodNotFoundErrorEncodedobject
FieldTypeRequiredDescription
_tag"IntegrationMethodNotFoundError"Required
integrationIDstringRequired
methodIDstringRequired
messagestringRequired
IntegrationNotFoundErrorEncodedobject
FieldTypeRequiredDescription
_tag"IntegrationNotFoundError"Required
integrationIDstringRequired
messagestringRequired
InvalidCursorErrorEncodedobject
FieldTypeRequiredDescription
_tag"InvalidCursorError"Required
messagestringRequired
InvalidRequestErrorEncodedobject
FieldTypeRequiredDescription
_tag"InvalidRequestError"Required
messagestringRequired
kindstring | nullOptional
fieldstring | nullOptional
Job.Imageobject
FieldTypeRequiredDescription
kind"image"Required
idstringRequired
sessionIDSession.IDRequired
statusJob.StatusRequired
titlestringOptional
timeJob.TimeRequired
pathstringRequired
modelstringRequired
Job.InfoJob.Shell | Job.Subagent | Job.Image
Job.Kind"shell" | "subagent" | "image"

"shell" | "subagent" | "image"

Job.Shellobject
FieldTypeRequiredDescription
kind"shell"Required
idstringRequired
sessionIDSession.IDRequired
statusJob.StatusRequired
titlestringOptional
timeJob.TimeRequired
shellIDstringRequired
commandstringRequired
Job.Status"running" | "completed" | "error" | "cancelled"

"running" | "completed" | "error" | "cancelled"

Job.Subagentobject
FieldTypeRequiredDescription
kind"subagent"Required
idstringRequired
sessionIDSession.IDRequired
statusJob.StatusRequired
titlestringOptional
timeJob.TimeRequired
childSessionIDSession.IDRequired
agentstringRequired
descriptionstringRequired
Job.Timeobject
FieldTypeRequiredDescription
startednumberRequiredStart time in milliseconds since the Unix epoch
completednumberOptional
Location.PublicInfoobject
FieldTypeRequiredDescription
directoryAbsolutePathRequired
projectobjectRequired
Location.PublicRefobject
FieldTypeRequiredDescription
directoryAbsolutePathRequired
Location.Refobject
FieldTypeRequiredDescription
directoryAbsolutePathRequired
workspaceIDWorkspace.IDOptional
LocationNotFoundErrorEncodedobject
FieldTypeRequiredDescription
_tag"LocationNotFoundError"Required
locationLocation.PublicRefRequired
messagestringRequired
Mcp.LocalConfigEncodedobject
FieldTypeRequiredDescription
type"local"Required
commandstring[]Required
cwdstringOptional
environmentobjectOptional
disabledbooleanOptional
codemodebooleanOptional
timeoutobjectOptional
protocolMcp.ProtocolOptional
poolbooleanOptional
Mcp.OAuthConfigEncodedobject
FieldTypeRequiredDescription
client_idstringOptional
client_secretstringOptional
scopestringOptional
callback_portintegerOptional
redirect_uristringOptional
auth_server_metadata_urlstringOptional
Mcp.Protocol"legacy" | "auto" | "2026-07-28"

MCP protocol negotiation. "legacy" (default) opens with the initialize handshake and speaks protocol revisions up to 2025-11-25. "auto" probes for the 2026-07-28 revision and falls back to legacy when the server does not support it. "2026-07-28" requires that revision and fails otherwise.

"legacy" | "auto" | "2026-07-28"

Mcp.RemoteConfigEncodedobject
FieldTypeRequiredDescription
type"remote"Required
urlstringRequired
headersobjectOptional
oauthMcp.OAuthConfigEncoded | falseOptional
disabledbooleanOptional
codemodebooleanOptional
timeoutobjectOptional
protocolMcp.ProtocolOptional
poolbooleanOptional
Mcp.Resourceobject
FieldTypeRequiredDescription
serverstringRequired
namestringRequired
uristringRequired
descriptionstringOptional
mimeTypestringOptional
Mcp.ResourceCatalogobject
FieldTypeRequiredDescription
resourcesMcp.Resource[]Required
templatesMcp.ResourceTemplate[]Required
Mcp.ResourceTemplateobject
FieldTypeRequiredDescription
serverstringRequired
namestringRequired
uriTemplatestringRequired
descriptionstringOptional
mimeTypestringOptional
Mcp.Serverobject
FieldTypeRequiredDescription
namestringRequired
statusMcp.Status.Connected | Mcp.Status.Pending | Mcp.Status.Disabled | Mcp.Status.Failed | Mcp.Status.NeedsAuthRequired
titlestringOptional
integrationIDIntegration.IDOptional
Mcp.Status.Connectedobject
FieldTypeRequiredDescription
status"connected"Required
Mcp.Status.Disabledobject
FieldTypeRequiredDescription
status"disabled"Required
Mcp.Status.Failedobject
FieldTypeRequiredDescription
status"failed"Required
errorstringRequired
Mcp.Status.NeedsAuthobject
FieldTypeRequiredDescription
status"needs_auth"Required
errorstringRequired
Mcp.Status.Pendingobject
FieldTypeRequiredDescription
status"pending"Required
McpServerNotFoundErrorEncodedobject
FieldTypeRequiredDescription
_tag"McpServerNotFoundError"Required
serverstringRequired
messagestringRequired
MediaHashstring

string

MessageNotFoundErrorEncodedobject
FieldTypeRequiredDescription
_tag"MessageNotFoundError"Required
sessionIDstringRequired
messageIDstringRequired
messagestringRequired
Model.CacheFormat"anthropic" | "alibaba"

"anthropic" | "alibaba"

Model.Capabilitiesobject
FieldTypeRequiredDescription
toolsbooleanRequired
inputstring[]Required
outputstring[]Required
temperaturebooleanOptional
Model.Compatibilityobject
FieldTypeRequiredDescription
reasoningFieldModel.ReasoningFieldOptional
requireReasoningbooleanOptional
maxTokensFieldModel.MaxTokensFieldOptional
requireFinishReasonbooleanOptional
requireAssistantAfterToolbooleanOptional
supportsPromptCacheKeybooleanOptional
streamUsagebooleanOptional
cacheFormatModel.CacheFormatOptional
supportsThinkingBlockBindingbooleanOptional
supportsEffortUpdatesbooleanOptional
mediaInputModel.MediaInputOptional
Model.Costobject
FieldTypeRequiredDescription
tierobjectOptional
inputMoney.USDPerMillionTokensRequired
outputMoney.USDPerMillionTokensRequired
cacheobjectRequired
Model.Infoobject
FieldTypeRequiredDescription
idstringRequired
modelIDstringRequired
providerIDProvider.IDRequired
canonicalProvider.IDOptional
typeModel.TypeOptional
familystringOptional
namestringRequired
compatibilityModel.CompatibilityOptional
packagestringOptional
settingsModel.SettingsOptional
headersobjectOptional
bodyobjectOptional
capabilitiesModel.CapabilitiesRequired
variantsModel.Variant[]Required
timeobjectRequired
costModel.Cost[]Required
status"alpha" | "beta" | "deprecated" | "active"Required
enabledbooleanRequired
limitobjectRequired
Model.MaxTokensField"max_completion_tokens" | "max_tokens"

"max_completion_tokens" | "max_tokens"

Model.MediaInput"assets" | "state" | "root"

"assets" | "state" | "root"

Model.ReasoningField"reasoning" | "reasoning_content" | "reasoning_text" | string

"reasoning" | "reasoning_content" | "reasoning_text" | string

Model.Refobject
FieldTypeRequiredDescription
idstringRequired
providerIDProvider.IDRequired
variantstringOptional
Model.Settingsobject
FieldTypeRequiredDescription
compactionProvider.CompactionOptional
cacheProvider.CacheOptional
encodingProvider.EncodingOptional
Model.Type"chat" | "decision" | "image" | string

"chat" | "decision" | "image" | string

Model.Variantobject
FieldTypeRequiredDescription
idstringRequired
settingsModel.VariantSettingsOptional
headersobjectOptional
bodyobjectOptional
Model.VariantSettingsobject
FieldTypeRequiredDescription
compactionProvider.CompactionOptional
encodingProvider.EncodingOptional
ModelNotFoundErrorEncodedobject
FieldTypeRequiredDescription
_tag"ModelNotFoundError"Required
providerIDstringRequired
modelIDstringRequired
messagestringRequired
Money.USDnumber

number

Money.USDPerMillionTokensnumber

number

PairingCodeobject
FieldTypeRequiredDescription
codestringRequired
expires_inintegerRequired
PairingSessionobject
FieldTypeRequiredDescription
tokenstringRequired
Permission.Effect"allow" | "deny" | "ask"

"allow" | "deny" | "ask"

Permission.IDstring

string

Permission.Reply"once" | "always" | "reject"

"once" | "always" | "reject"

Permission.Requestobject
FieldTypeRequiredDescription
idPermission.IDRequired
sessionIDSession.IDRequired
actionstringRequired
resourcesstring[]Required
savestring[]Optional
metadataobjectOptional
sourcePermission.SourceOptional
messagestringOptional
Permission.Ruleobject
FieldTypeRequiredDescription
actionstringRequired
resourcestringRequired
effectPermission.EffectRequired
Permission.RulesetPermission.Rule[]
Permission.Sourceobject

object

PermissionNotFoundErrorEncodedobject
FieldTypeRequiredDescription
_tag"PermissionNotFoundError"Required
requestIDstringRequired
messagestringRequired
PermissionSaved.IDstring

string

PermissionSaved.Infoobject
FieldTypeRequiredDescription
idPermissionSaved.IDRequired
projectIDProject.IDRequired
actionstringRequired
resourcestringRequired
timeobjectRequired
PermissionSavedNotFoundErrorEncodedobject
FieldTypeRequiredDescription
_tag"PermissionSavedNotFoundError"Required
idstringRequired
messagestringRequired
PersistentPty.CreateInputobject
FieldTypeRequiredDescription
commandstringOptional
argsstring[]Required
cwdstringOptional
titlestringRequired
envobjectRequired
sizeobjectOptional
PersistentPty.Handoffobject
FieldTypeRequiredDescription
directorystringRequired
instanceIDstringRequired
ticketstringRequired
expiresAtnumber | "Infinity" | "-Infinity" | "NaN"Required
PersistentPty.Infoobject
FieldTypeRequiredDescription
idPty.IDRequired
titlestringRequired
commandstringRequired
argsstring[]Required
cwdstringRequired
status"running" | "exited"Required
pidintegerRequired
exitCodeintegerOptional
sessionIDSession.IDRequired
userTitlestring | nullRequired
foregroundProcessstring | nullRequired
sizeobjectRequired
outputobjectRequired
PersistentPty.ReadResultobject
FieldTypeRequiredDescription
ptyIDPty.IDRequired
titlestringRequired
cwdstringRequired
foregroundProcessstring | nullRequired
screenobjectRequired
PersistentPty.Snapshotobject
FieldTypeRequiredDescription
infoPersistentPty.InfoRequired
textstringRequired
checkpointstring<byte>Required
cursorobjectRequired
PersistentPty.UpdateInputobject
FieldTypeRequiredDescription
attachmentIDstringOptional
sizeobjectOptional
titlestring | nullOptional
Plugin.Featuresobject
FieldTypeRequiredDescription
servertrueOptional
tuitrueOptional
rpctrueOptional
guitrueOptional
Plugin.GuiBundleobject
FieldTypeRequiredDescription
codestringRequired
revisionstringRequired
optionsobjectRequired
Plugin.IDstring

string

Plugin.Infoobject
FieldTypeRequiredDescription
idPlugin.IDOptional
sourcePlugin.SourceRequired
featuresPlugin.FeaturesRequired
statePlugin.StateRequired
Plugin.Sourceobject | object | object | object

object | object | object | object

Plugin.Stateobject | object

object | object

PluginNotFoundErrorEncodedobject
FieldTypeRequiredDescription
_tag"PluginNotFoundError"Required
pluginIDstringRequired
messagestringRequired
Projectobject
FieldTypeRequiredDescription
idProject.IDRequired
canonicalAbsolutePathRequired
vcsProject.VcsOptional
namestringOptional
iconProject.IconOptional
commandsProject.CommandsOptional
timeProject.TimeRequired
sandboxesstring[]Required
Project.Commandsobject
FieldTypeRequiredDescription
startstringOptionalStartup script to run when creating a new workspace (worktree)
Project.IDstring

string

Project.Iconobject
FieldTypeRequiredDescription
urlstringOptional
overridestringOptional
colorstringOptional
Project.Timeobject
FieldTypeRequiredDescription
createdintegerRequired
updatedintegerRequired
activeintegerRequired
archivedintegerOptional
Project.Vcsstring

string

ProjectNotFoundErrorEncodedobject
FieldTypeRequiredDescription
_tag"ProjectNotFoundError"Required
projectIDstringRequired
messagestringRequired
Prompt.AgentAttachmentobject
FieldTypeRequiredDescription
namestringRequired
mentionPrompt.MentionOptional
Prompt.Base64string

string

Prompt.FileAttachmentobject
FieldTypeRequiredDescription
dataPrompt.Base64Required
mimestringRequired
sourcePrompt.FileSourceRequired
namestringOptional
descriptionstringOptional
mentionPrompt.MentionOptional
Prompt.FileSourceobject | object

object | object

Prompt.Mentionobject
FieldTypeRequiredDescription
startnumberRequired
endnumberRequired
textstringRequired
Prompt.SkillAttachmentobject
FieldTypeRequiredDescription
idSkill.IDRequired
nameSkill.NameRequired
textstringOptional
mentionPrompt.MentionOptional
PromptInput.FileAttachmentobject
FieldTypeRequiredDescription
uristringRequired
sourcePrompt.FileSourceOptional
namestringOptional
descriptionstringOptional
mentionPrompt.MentionOptional
PromptInput.SkillAttachmentobject
FieldTypeRequiredDescription
idSkill.IDRequired
mentionPrompt.MentionOptional
Provider.Cacheobject
FieldTypeRequiredDescription
ttlProvider.CacheTTLOptional
warmingProvider.CacheWarmingOptional
Provider.CacheTTLstring

string

Provider.CacheWarmingboolean | object

boolean | object

Provider.Compactionobject | object

object | object

Provider.Compatibilityobject
FieldTypeRequiredDescription
reasoningFieldModel.ReasoningFieldOptional
requireReasoningbooleanOptional
maxTokensFieldModel.MaxTokensFieldOptional
requireFinishReasonbooleanOptional
requireAssistantAfterToolbooleanOptional
supportsPromptCacheKeybooleanOptional
streamUsagebooleanOptional
cacheFormatModel.CacheFormatOptional
mediaInputModel.MediaInputOptional
Provider.Encoding"zstd" | "gzip" | "none"

"zstd" | "gzip" | "none"

Provider.IDstring

string

Provider.Infoobject
FieldTypeRequiredDescription
idProvider.IDRequired
canonicalProvider.IDOptional
integrationIDIntegration.IDOptional
namestringRequired
activation"auto" | "enabled" | "disabled"Required
packagestringRequired
compatibilityProvider.CompatibilityOptional
settingsProvider.SettingsOptional
headersobjectOptional
bodyobjectOptional
Provider.Requestobject
FieldTypeRequiredDescription
settingsProvider.SettingsRequired
headersobjectRequired
bodyobjectRequired
Provider.Settingsobject
FieldTypeRequiredDescription
timeoutnumber | falseOptional
headerTimeoutnumber | falseOptional
chunkTimeoutnumber | falseOptional
compactionProvider.CompactionOptional
cacheProvider.CacheOptional
transportProvider.TransportOptional
encodingProvider.EncodingOptional
Provider.Transport"http" | "websocket"

"http" | "websocket"

ProviderNotFoundErrorEncodedobject
FieldTypeRequiredDescription
_tag"ProviderNotFoundError"Required
providerIDstringRequired
messagestringRequired
ProviderRequestErrorEncodedobject
FieldTypeRequiredDescription
_tag"ProviderRequestError"Required
providerIDstringRequired
reason"authentication" | "rate_limit" | "content_filter" | "invalid_request" | "overloaded" | "provider"Required
messagestringRequired
statusinteger | nullOptional
retryAfterMsinteger | nullOptional
Ptyobject
FieldTypeRequiredDescription
idPty.IDRequired
titlestringRequired
commandstringRequired
argsstring[]Required
cwdstringRequired
status"running" | "exited"Required
pidintegerRequired
exitCodeintegerOptional
Pty.IDstring

string

PtyFeatureUnsupportedErrorEncodedobject
FieldTypeRequiredDescription
_tag"PtyFeatureUnsupportedError"Required
featurestringRequired
messagestringRequired
PtyNotFoundErrorEncodedobject
FieldTypeRequiredDescription
_tag"PtyNotFoundError"Required
ptyIDstringRequired
messagestringRequired
PtyTicket.ConnectTokenobject
FieldTypeRequiredDescription
ticketstringRequired
expires_inintegerRequired
Reference.GitSourceobject
FieldTypeRequiredDescription
type"git"Required
repositorystringRequired
branchstringOptional
Reference.Infoobject
FieldTypeRequiredDescription
namestringRequired
pathAbsolutePathRequired
descriptionstringOptional
hiddenbooleanOptional
sourceReference.SourceRequired
Reference.LocalSourceobject
FieldTypeRequiredDescription
type"local"Required
pathAbsolutePathRequired
Reference.SourceReference.LocalSource | Reference.GitSource
RelativePathstring

string

Rpc.Inputobject
FieldTypeRequiredDescription
inputobjectOptional
Rpc.Outputobject
FieldTypeRequiredDescription
outputobjectOptional
RpcErrorEncodedobject
FieldTypeRequiredDescription
_tag"RpcError"Required
typestringRequired
messagestringRequired
dataobject | nullOptional
RpcInternalErrorEncodedobject
FieldTypeRequiredDescription
_tag"RpcInternalError"Required
type"rpc.internal" | "rpc.invalid_output"Required
messagestringRequired
dataobject | nullOptional
Schedule.ActionSchedule.Action.Prompt
Schedule.Action.Promptobject
FieldTypeRequiredDescription
type"prompt"Required
promptstringRequired
Schedule.ConditionSchedule.Condition.Shell | Schedule.Condition.Code
Schedule.Condition.Codeobject
FieldTypeRequiredDescription
type"code"Required
codestringRequired
Schedule.Condition.Shellobject
FieldTypeRequiredDescription
type"shell"Required
runstringRequired
isstringOptional
matchesstringOptional
changesbooleanOptional
Schedule.ConditionInputobject | object

object | object

Schedule.CreatePayloadobject
FieldTypeRequiredDescription
sessionIDSession.IDRequired
namestringOptional
whenSchedule.WhenInputOptional
ifSchedule.ConditionInputOptional
untilSchedule.ConditionInputOptional
endsSchedule.EndsOptional
promptstringRequiredThe message the Session receives when the schedule wakes.
Schedule.Durationstring

A duration such as "90 seconds", "5 minutes" or "2 hours".

string

Schedule.Endsobject
FieldTypeRequiredDescription
afterSchedule.DurationOptional
atstringOptional
timesintegerOptional
Schedule.IDstring

string

Schedule.Infoobject
FieldTypeRequiredDescription
idSchedule.IDRequired
sessionIDSession.IDOptional
namestringOptional
whenSchedule.WhenRequired
tzstringRequired
ifSchedule.ConditionOptional
untilSchedule.ConditionOptional
actionSchedule.ActionRequired
statusSchedule.StatusRequired
nextDueAtnumberOptional
endsAtnumberOptional
remainingRunsintegerOptional
runCountintegerRequired
lastFiredAtnumberOptional
lastOutcomeSchedule.OutcomeOptional
lastOutputstringOptional
timeobjectRequired
Schedule.Outcome"fired" | "late" | "checked" | "expired" | "skipped" | "disabled" | "failed"

"fired" | "late" | "checked" | "expired" | "skipped" | "disabled" | "failed"

Schedule.Status"active" | "paused" | "done"

"active" | "paused" | "done"

Schedule.WhenSchedule.When.In | Schedule.When.At | Schedule.When.Every | Schedule.When.Cron
Schedule.When.Atobject
FieldTypeRequiredDescription
type"at"Required
atstringRequired
tzstringOptional
Schedule.When.Cronobject
FieldTypeRequiredDescription
type"cron"Required
cronstringRequired
tzstringOptional
Schedule.When.Everyobject
FieldTypeRequiredDescription
type"every"Required
everySchedule.DurationRequired
tzstringOptional
Schedule.When.Inobject
FieldTypeRequiredDescription
type"in"Required
inSchedule.DurationRequired
tzstringOptional
Schedule.WhenInputobject | object | object | object

object | object | object | object

ScheduleNotFoundErrorEncodedobject
FieldTypeRequiredDescription
_tag"ScheduleNotFoundError"Required
scheduleIDstringRequired
messagestringRequired
ServerInfoobject
FieldTypeRequiredDescription
versionstringRequired
pidintegerRequired
hostnamestring | nullOptional
urlsstring[]Required
pathsobjectRequired
capabilitiesobject | nullOptional
ServiceUnavailableErrorEncodedobject
FieldTypeRequiredDescription
_tag"ServiceUnavailableError"Required
messagestringRequired
servicestring | nullOptional
Session.Event.Durablesession.created | session.agent.selected | session.model.selected | session.moved | session.renamed | session.metadata.updated | session.permissions | session.viewed | session.archived | session.unarchived | session.deleted | session.forked | session.inbox.delivered | session.inbox.enqueued | session.inbox.cancelled | session.inbox.delivery.changed | session.execution.started | session.execution.succeeded | session.execution.failed | session.execution.interrupted | session.instructions.updated | session.synthetic | session.skill.activated | session.shell.started | session.shell.ended | session.step.started | session.step.streamed | session.step.ended | session.step.failed | session.text.started | session.text.ended | session.reasoning.started | session.reasoning.ended | session.tool.input.started | session.tool.input.ended | session.tool.called | session.tool.success | session.tool.failed | session.retry.scheduled | session.compaction.started | session.compaction.ended | session.compaction.failed | session.revert.staged | session.revert.cleared | session.revert.committed | session.usage.recorded | session.message.content.updated

session.created | session.agent.selected | session.model.selected | session.moved | session.renamed | session.metadata.updated | session.permissions | session.viewed | session.archived | session.unarchived | session.deleted | session.forked | session.inbox.delivered | session.inbox.enqueued | session.inbox.cancelled | session.inbox.delivery.changed | session.execution.started | session.execution.succeeded | session.execution.failed | session.execution.interrupted | session.instructions.updated | session.synthetic | session.skill.activated | session.shell.started | session.shell.ended | session.step.started | session.step.streamed | session.step.ended | session.step.failed | session.text.started | session.text.ended | session.reasoning.started | session.reasoning.ended | session.tool.input.started | session.tool.input.ended | session.tool.called | session.tool.success | session.tool.failed | session.retry.scheduled | session.compaction.started | session.compaction.ended | session.compaction.failed | session.revert.staged | session.revert.cleared | session.revert.committed | session.usage.recorded | session.message.content.updated

Session.ForkBoundaryobject | object

object | object

Session.IDstring

string

Session.Inbox.Compactionobject
FieldTypeRequiredDescription
idSession.Message.IDRequired
sessionIDSession.IDRequired
timeobjectRequired
type"compaction"Required
payloadSession.Inbox.CompactionPayloadRequired
deliverySession.Inbox.DeliveryRequired
Session.Inbox.CompactionPayloadobject

object

Session.Inbox.Delivery"steer" | "queue"

"steer" | "queue"

Session.Inbox.InfoSession.Inbox.User | Session.Inbox.Synthetic | Session.Inbox.Compaction | Session.Inbox.Move
Session.Inbox.Itemobject | object | object | object

object | object | object | object

Session.Inbox.Moveobject
FieldTypeRequiredDescription
idSession.Message.IDRequired
sessionIDSession.IDRequired
timeobjectRequired
type"move"Required
deliverySession.Inbox.DeliveryRequired
payloadSession.Inbox.MovePayloadRequired
Session.Inbox.MovePayloadobject
FieldTypeRequiredDescription
projectIDProject.IDRequired
subpathRelativePathOptional
locationLocation.PublicRefRequired
Session.Inbox.MovePayload_1object
FieldTypeRequiredDescription
locationLocation.RefRequired
projectIDProject.IDRequired
subpathRelativePathOptional
Session.Inbox.Syntheticobject
FieldTypeRequiredDescription
idSession.Message.IDRequired
sessionIDSession.IDRequired
timeobjectRequired
type"synthetic"Required
payloadSession.Inbox.SyntheticPayloadRequired
deliverySession.Inbox.DeliveryRequired
Session.Inbox.SyntheticPayloadobject
FieldTypeRequiredDescription
textstringRequired
descriptionstringOptional
metadataobjectOptional
Session.Inbox.Userobject
FieldTypeRequiredDescription
idSession.Message.IDRequired
sessionIDSession.IDRequired
timeobjectRequired
type"user"Required
payloadSession.Inbox.UserPayloadRequired
deliverySession.Inbox.DeliveryRequired
Session.Inbox.UserPayloadobject
FieldTypeRequiredDescription
textstringRequired
filesPrompt.FileAttachment[]Optional
agentsPrompt.AgentAttachment[]Optional
skillsPrompt.SkillAttachment[]Optional
metadataobjectOptional
Session.Infoobject
FieldTypeRequiredDescription
idSession.IDRequired
parentIDSession.IDOptional
forkobjectOptional
projectIDProject.IDRequired
agentAgent.IDOptional
modelModel.RefOptional
costMoney.USDRequired
tokensTokenUsage.InfoRequired
outcome"succeeded" | "failed" | "interrupted"Optional
timeobjectRequired
titlestringOptional
subpathRelativePathOptional
metadataSession.MetadataOptional
permissionsPermission.RulesetOptional
revertSession.RevertOptional
locationLocation.PublicRefRequired
Session.Message.AgentSelectedobject
FieldTypeRequiredDescription
idSession.Message.IDRequired
metadataobjectOptional
timeobjectRequired
type"agent-switched"Required
agentAgent.IDRequired
previousAgent.IDOptional
Session.Message.Assistantobject
FieldTypeRequiredDescription
idSession.Message.IDRequired
metadataobjectOptional
timeobjectRequired
type"assistant"Required
agentAgent.IDRequired
modelModel.RefRequired
contentSession.Message.Assistant.Text | Session.Message.Assistant.Reasoning | Session.Message.Assistant.Tool[]Required
snapshotobjectOptional
finish"stop" | "length" | "tool-calls" | "content-filter" | "error" | "unknown"Optional
rawFinishstringOptional
nativeSession.Message.NativeOptional
costMoney.USDOptional
tokensTokenUsage.InfoOptional
errorSession.StructuredErrorOptional
retrySession.Message.Assistant.RetryOptional
Session.Message.Assistant.Reasoningobject
FieldTypeRequiredDescription
type"reasoning"Required
textstringRequired
nativeSession.Message.NativeOptional
timeobjectOptional
Session.Message.Assistant.Retryobject
FieldTypeRequiredDescription
attemptintegerRequired
atnumberRequired
errorSession.StructuredErrorRequired
Session.Message.Assistant.Textobject
FieldTypeRequiredDescription
type"text"Required
textstringRequired
nativeSession.Message.NativeOptional
Session.Message.Assistant.Toolobject
FieldTypeRequiredDescription
type"tool"Required
idstringRequired
namestringRequired
executedbooleanOptional
nativeSession.Message.NativeOptional
stateSession.Message.ToolState.Streaming | Session.Message.ToolState.Running | Session.Message.ToolState.Completed | Session.Message.ToolState.ErrorRequired
timeobjectRequired
Session.Message.AssistantContent.EncodedSession.Message.Assistant.Text | Session.Message.Assistant.Reasoning | Session.Message.Assistant.Tool
Session.Message.CompactionSession.Message.Compaction.Running | Session.Message.Compaction.Completed | Session.Message.Compaction.Failed
Session.Message.Compaction.Completedobject
FieldTypeRequiredDescription
type"compaction"Required
idSession.Message.IDRequired
metadataobjectOptional
timeobjectRequired
status"completed"Required
reason"auto" | "manual"Required
modelModel.RefOptional
nativeSession.Message.NativeOptional
summarystringRequired
costMoney.USDOptional
tokensTokenUsage.InfoOptional
Session.Message.Compaction.Failedobject
FieldTypeRequiredDescription
type"compaction"Required
idSession.Message.IDRequired
metadataobjectOptional
timeobjectRequired
status"failed"Required
reason"auto" | "manual"Required
errorSession.StructuredErrorRequired
costMoney.USDOptional
tokensTokenUsage.InfoOptional
Session.Message.Compaction.Runningobject
FieldTypeRequiredDescription
type"compaction"Required
idSession.Message.IDRequired
metadataobjectOptional
timeobjectRequired
status"running"Required
reason"auto" | "manual"Required
summarystringRequired
Session.Message.IDstring

string

Session.Message.Idleobject
FieldTypeRequiredDescription
idSession.Message.IDRequired
metadataobjectOptional
timeobjectRequired
type"idle"Required
outcome"succeeded" | "failed" | "interrupted"Required
errorSession.StructuredErrorOptional
Session.Message.InfoSession.Message.AgentSelected | Session.Message.ModelSelected | Session.Message.LocationSwitched | Session.Message.User | Session.Message.Synthetic | Session.Message.System | Session.Message.Skill | Session.Message.Shell | Session.Message.Assistant | Session.Message.Compaction | Session.Message.Idle
Session.Message.LocationSwitchedobject
FieldTypeRequiredDescription
idSession.Message.IDRequired
metadataobjectOptional
timeobjectRequired
type"location-switched"Required
projectIDProject.IDOptional
subpathRelativePathOptional
locationLocation.PublicRefRequired
previousobject | nullOptional
Session.Message.ModelSelectedobject
FieldTypeRequiredDescription
idSession.Message.IDRequired
metadataobjectOptional
timeobjectRequired
type"model-switched"Required
modelModel.RefRequired
previousModel.RefOptional
Session.Message.Nativeobject

object

Session.Message.Shellobject
FieldTypeRequiredDescription
idSession.Message.IDRequired
metadataobjectOptional
timeobjectRequired
type"shell"Required
shellIDShell.IDRequired
commandstringRequired
status"running" | "exited" | "timeout" | "killed"Required
exitnumber | "Infinity" | "-Infinity" | "NaN"Optional
outputobjectOptional
Session.Message.Skillobject
FieldTypeRequiredDescription
idSession.Message.IDRequired
metadataobjectOptional
timeobjectRequired
type"skill"Required
skillSkill.IDRequired
nameSkill.NameRequired
textstringRequired
Session.Message.Syntheticobject
FieldTypeRequiredDescription
idSession.Message.IDRequired
metadataobjectOptional
timeobjectRequired
textstringRequired
descriptionstringOptional
type"synthetic"Required
Session.Message.Systemobject
FieldTypeRequiredDescription
idSession.Message.IDRequired
metadataobjectOptional
timeobjectRequired
type"system"Required
textstringRequired
descriptionstringOptional
Session.Message.ToolState.Completedobject
FieldTypeRequiredDescription
status"completed"Required
inputobjectRequired
contentTool.Content[]Required
metadataobjectOptional
Session.Message.ToolState.Errorobject
FieldTypeRequiredDescription
status"error"Required
inputobjectRequired
errorSession.StructuredErrorRequired
contentTool.Content[]Optional
metadataobjectOptional
Session.Message.ToolState.Runningobject
FieldTypeRequiredDescription
status"running"Required
inputobjectRequired
metadataobjectRequired
Session.Message.ToolState.Streamingobject
FieldTypeRequiredDescription
status"streaming"Required
inputstringRequired
Session.Message.Userobject
FieldTypeRequiredDescription
idSession.Message.IDRequired
metadataobjectOptional
timeobjectRequired
textstringRequired
filesPrompt.FileAttachment[]Optional
agentsPrompt.AgentAttachment[]Optional
skillsPrompt.SkillAttachment[]Optional
type"user"Required
Session.Metadataobject

object

Session.Revertobject
FieldTypeRequiredDescription
messageIDSession.Message.IDRequired
partIDstringOptional
snapshotSnapshot.IDOptional
filesFileDiff.Info[]Optional
Session.StructuredErrorobject
FieldTypeRequiredDescription
typestringRequired
messagestringRequired
statusintegerOptional
responseobjectOptional
retryAfterMsintegerOptional
SessionActiveobject
FieldTypeRequiredDescription
type"running"Required
SessionBusyErrorEncodedobject
FieldTypeRequiredDescription
_tag"SessionBusyError"Required
sessionIDstringRequired
messagestringRequired
SessionGenerateResponseobject
FieldTypeRequiredDescription
dataobjectRequired
SessionInterruptResponseobject
FieldTypeRequiredDescription
interruptedbooleanRequiredWhether an active execution owned by this OpenCode process was interrupted.
SessionLogItemSession.Event.Durable | EventLog.Synced
SessionLogItemEncodedstring

string

SessionMessagesResponseobject
FieldTypeRequiredDescription
dataSession.Message.Info[]Required
cursorobjectRequired
SessionNotFoundErrorEncodedobject
FieldTypeRequiredDescription
_tag"SessionNotFoundError"Required
sessionIDstringRequired
messagestringRequired
SessionStats.Activityobject
FieldTypeRequiredDescription
datestringRequired
stepsintegerRequired
SessionStats.Infoobject
FieldTypeRequiredDescription
rangeobjectRequired
sessionsintegerRequired
subagentsintegerRequired
promptsintegerRequired
stepsintegerRequired
tokensTokenUsage.InfoRequired
costMoney.USDRequired
toolsSessionStats.ToolsRequired
activeDaysintegerRequired
streakintegerRequired
activitySessionStats.Activity[]Required
modelsSessionStats.ModelUsage[]Required
SessionStats.ModelUsageobject
FieldTypeRequiredDescription
modelModel.RefRequired
stepsintegerRequired
tokensTokenUsage.InfoRequired
costMoney.USDRequired
SessionStats.ToolTotalsobject
FieldTypeRequiredDescription
callsintegerRequired
succeededintegerRequired
failedintegerRequired
unfinishedintegerRequired
SessionStats.ToolUsageobject
FieldTypeRequiredDescription
namestringRequired
callsintegerRequired
succeededintegerRequired
failedintegerRequired
unfinishedintegerRequired
durationP50numberOptional
SessionStats.Toolsobject | object | object

object | object | object

SessionStatusobject | object | object

object | object | object

SessionStatusUpdatedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.status"Required
locationLocation.RefOptional
dataobjectRequired
SessionTransfer.Dataobject
FieldTypeRequiredDescription
infoSession.InfoRequired
messagesSession.Message.Info[]Required
SessionsCursorstring

Opaque pagination cursor returned as cursor.previous or cursor.next in the previous response.

string

SessionsResponseobject
FieldTypeRequiredDescription
dataSession.Info[]Required
cursorobjectRequired
Shell.IDstring

string

Shell.Infoobject
FieldTypeRequiredDescription
idShell.IDRequired
status"running" | "exited" | "timeout" | "killed"Required
commandstringRequired
cwdstringRequired
shellstringRequired
filestringRequired
pidintegerOptional
exitnumberOptional
signalstringOptional
metadataobjectRequired
timeobjectRequired
ShellNotFoundErrorEncodedobject
FieldTypeRequiredDescription
_tag"ShellNotFoundError"Required
idstringRequired
messagestringRequired
Skill.IDstring

string

Skill.Infoobject
FieldTypeRequiredDescription
idSkill.IDRequired
nameSkill.NameRequired
descriptionstringOptional
autoinvokebooleanOptional
pathAbsolutePathRequired
contentstringRequired
Skill.Namestring

string

SkillNotFoundErrorEncodedobject
FieldTypeRequiredDescription
_tag"SkillNotFoundError"Required
skillSkill.IDRequired
messagestringRequired
Snapshot.IDstring

string

TokenUsage.Infoobject
FieldTypeRequiredDescription
inputnumberRequired
outputnumberRequired
reasoningnumberRequired
cacheobjectRequired
Tool.ContentTool.TextContent | Tool.FileContent
Tool.FileContentobject
FieldTypeRequiredDescription
type"file"Required
uristringRequired
mimestringRequired
namestring | nullOptional
Tool.TextContentobject
FieldTypeRequiredDescription
type"text"Required
textstringRequired
UnauthorizedErrorEncodedobject
FieldTypeRequiredDescription
_tag"UnauthorizedError"Required
messagestringRequired
UnknownErrorEncodedobject
FieldTypeRequiredDescription
_tag"UnknownError"Required
messagestringRequired
refstring | nullOptional
UnsupportedModelErrorEncodedobject
FieldTypeRequiredDescription
_tag"UnsupportedModelError"Required
providerIDstringRequired
modelIDstringRequired
capabilitystringRequired
messagestringRequired
UsageLimits.Budgetobject
FieldTypeRequiredDescription
idstringRequired
limitMoney.USDRequired
spentMoney.USDRequired
scope"each" | "combined"Required
per"set" | "model"Required
coverage"all" | "models"Required
modelsUsageLimits.BudgetModel[]Required
vendorsstring[]Required
inputPriceAtLeastMoney.USDPerMillionTokensOptional
pickedbooleanRequired
sharedbooleanRequired
resetsAtnumberRequiredMilliseconds since the Unix epoch
UsageLimits.BudgetModelobject
FieldTypeRequiredDescription
providerIDProvider.IDRequired
modelIDstringRequired
namestringRequired
spentMoney.USDOptional
UsageLimits.Goobject
FieldTypeRequiredDescription
rollingUsageLimits.MeterRequired
weeklyUsageLimits.MeterRequired
monthlyUsageLimits.MeterRequired
UsageLimits.Infoobject
FieldTypeRequiredDescription
workspaceobjectRequired
goUsageLimits.GoOptional
budgetsUsageLimits.Budget[]Required
UsageLimits.Meterobject
FieldTypeRequiredDescription
percentnumberRequired
limitedbooleanRequired
resetsAtnumberRequiredMilliseconds since the Unix epoch
V2Eventlocation.shutdown | models-dev.refreshed | credential.updated | credential.switched | integration.updated | provider.updated | model.updated | agent.updated | session.created | session.agent.selected | session.model.selected | session.moved | session.renamed | session.metadata.updated | session.permissions | session.viewed | session.archived | session.unarchived | session.usage.updated | session.deleted | session.forked | session.inbox.delivered | session.inbox.enqueued | session.inbox.cancelled | session.inbox.delivery.changed | session.execution.started | session.execution.succeeded | session.execution.failed | session.execution.interrupted | session.instructions.updated | session.synthetic | session.skill.activated | session.shell.started | session.shell.ended | session.step.started | session.step.streamed | session.step.ended | session.step.failed | session.text.started | session.text.delta | session.text.ended | session.reasoning.started | session.reasoning.delta | session.reasoning.ended | session.tool.input.started | session.tool.input.delta | session.tool.input.ended | session.tool.called | session.tool.progress | session.tool.success | session.tool.failed | session.retry.scheduled | session.compaction.started | session.compaction.delta | session.compaction.ended | session.compaction.failed | session.revert.staged | session.revert.cleared | session.revert.committed | filesystem.changed | reference.updated | permission.asked | permission.replied | plugin.updated | project.updated | worktree.updated | worktree.resolved | command.updated | config.updated | skill.updated | pty.created | pty.updated | pty.exited | pty.deleted | persistent-pty.added | persistent-pty.removed | persistent-pty.updated | shell.created | shell.exited | shell.deleted | form.created | form.replied | form.cancelled | websearch.updated | artifact.updated | SessionStatusUpdated | session.idle | tui.prompt.append | tui.command.execute | tui.toast.show | tui.session.select | installation.updated | installation.update-available | vcs.branch.updated | mcp.status.changed | mcp.resources.changed | V2Event.rpc | V2Event.server.connected

location.shutdown | models-dev.refreshed | credential.updated | credential.switched | integration.updated | provider.updated | model.updated | agent.updated | session.created | session.agent.selected | session.model.selected | session.moved | session.renamed | session.metadata.updated | session.permissions | session.viewed | session.archived | session.unarchived | session.usage.updated | session.deleted | session.forked | session.inbox.delivered | session.inbox.enqueued | session.inbox.cancelled | session.inbox.delivery.changed | session.execution.started | session.execution.succeeded | session.execution.failed | session.execution.interrupted | session.instructions.updated | session.synthetic | session.skill.activated | session.shell.started | session.shell.ended | session.step.started | session.step.streamed | session.step.ended | session.step.failed | session.text.started | session.text.delta | session.text.ended | session.reasoning.started | session.reasoning.delta | session.reasoning.ended | session.tool.input.started | session.tool.input.delta | session.tool.input.ended | session.tool.called | session.tool.progress | session.tool.success | session.tool.failed | session.retry.scheduled | session.compaction.started | session.compaction.delta | session.compaction.ended | session.compaction.failed | session.revert.staged | session.revert.cleared | session.revert.committed | filesystem.changed | reference.updated | permission.asked | permission.replied | plugin.updated | project.updated | worktree.updated | worktree.resolved | command.updated | config.updated | skill.updated | pty.created | pty.updated | pty.exited | pty.deleted | persistent-pty.added | persistent-pty.removed | persistent-pty.updated | shell.created | shell.exited | shell.deleted | form.created | form.replied | form.cancelled | websearch.updated | artifact.updated | SessionStatusUpdated | session.idle | tui.prompt.append | tui.command.execute | tui.toast.show | tui.session.select | installation.updated | installation.update-available | vcs.branch.updated | mcp.status.changed | mcp.resources.changed | V2Event.rpc | V2Event.server.connected

V2Event.rpcobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobject | nullOptional
typestringRequired
locationLocation.PublicRefRequired
dataobjectRequired
V2Event.server.connectedobject
FieldTypeRequiredDescription
idEvent.IDRequired
metadataobject | nullOptional
locationLocation.PublicRef | nullOptional
type"server.connected"Required
dataobjectRequired
V2EventEncodedstring

string

Vcs.Baseobject
FieldTypeRequiredDescription
namestringRequired
refstringRequired
source"reflog" | "default"Required
Vcs.Branchobject
FieldTypeRequiredDescription
currentstringOptional
defaultstringOptional
Vcs.BranchListstring[]

string[]

Vcs.FileStatusobject
FieldTypeRequiredDescription
filestringRequired
additionsintegerRequired
deletionsintegerRequired
status"added" | "deleted" | "modified"Required
Vcs.Infoobject
FieldTypeRequiredDescription
providerstringOptional
branchVcs.BranchRequired
Vcs.Mode"working" | "branch" | "committed"

"working" | "branch" | "committed"

Vcs.Untracked"files" | "folders"

"files" | "folders"

VcsInitNotSupportedErrorEncodedobject
FieldTypeRequiredDescription
_tag"VcsInitNotSupportedError"Required
providerIDstringRequired
messagestringRequired
VoiceModelobject
FieldTypeRequiredDescription
modelstringRequired
providerstringRequired
transportsVoiceTransportType[]Required
availablebooleanRequired
VoiceModelsResponseobject
FieldTypeRequiredDescription
dataobjectRequired
VoiceSessionResponseobject
FieldTypeRequiredDescription
dataobjectRequired
VoiceTransportVoiceWebRTCTransport | VoiceWebSocketTransport
VoiceTransportInputVoiceWebRTCTransportInput | VoiceWebSocketTransportInput
VoiceTransportType"webrtc" | "websocket"

"webrtc" | "websocket"

VoiceWebRTCTransportobject
FieldTypeRequiredDescription
type"webrtc"Required
sdpstringRequired
VoiceWebRTCTransportInputobject
FieldTypeRequiredDescription
type"webrtc"Required
sdpstringRequired
dcidnumber | "Infinity" | "-Infinity" | "NaN" | nullOptional
VoiceWebSocketTransportobject
FieldTypeRequiredDescription
type"websocket"Required
urlstringRequired
tokenstringRequired
expiresAtnumber | "Infinity" | "-Infinity" | "NaN"Required
VoiceWebSocketTransportInputobject
FieldTypeRequiredDescription
type"websocket"Required
WebSearch.IDstring

string

WebSearch.Providerobject
FieldTypeRequiredDescription
idWebSearch.IDRequired
namestringRequired
WebSearch.ResponseEncodedobject
FieldTypeRequiredDescription
providerIDWebSearch.IDRequired
resultsWebSearch.Result[]Required
WebSearch.Resultobject
FieldTypeRequiredDescription
urlstringRequired
titlestringOptional
contentstringOptional
timeobjectRequired
Workspace.IDstring

string

Worktree.CreateInputobject
FieldTypeRequiredDescription
projectIDProject.IDRequired
fromAbsolutePathOptional
branchstringOptional
directoryAbsolutePathOptional
namestringOptional
Worktree.Directoryobject
FieldTypeRequiredDescription
directoryAbsolutePathRequired
strategystringOptional
Worktree.Infoobject
FieldTypeRequiredDescription
directoryAbsolutePathRequired
Worktree.ListWorktree.Directory[]
Worktree.RemoveInputobject
FieldTypeRequiredDescription
projectIDProject.IDRequired
directoryAbsolutePathRequired
forcebooleanRequired
WorktreeErrorEncodedobject
FieldTypeRequiredDescription
_tag"WorktreeError"Required
name"WorktreeError"Required
dataobjectRequired
agent.updatedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"agent.updated"Required
locationLocation.RefOptional
dataobjectRequired
artifact.updatedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"artifact.updated"Required
locationLocation.RefOptional
dataobjectRequired
command.updatedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"command.updated"Required
locationLocation.RefOptional
dataobjectRequired
config.updatedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"config.updated"Required
locationLocation.RefOptional
dataobjectRequired
credential.switchedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"credential.switched"Required
locationLocation.RefOptional
dataobjectRequired
credential.updatedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"credential.updated"Required
locationLocation.RefOptional
dataobjectRequired
filesystem.changedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"filesystem.changed"Required
locationLocation.RefOptional
dataobjectRequired
form.cancelledobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"form.cancelled"Required
locationLocation.RefOptional
dataobjectRequired
form.createdobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"form.created"Required
locationLocation.RefOptional
dataobjectRequired
form.repliedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"form.replied"Required
locationLocation.RefOptional
dataobjectRequired
installation.update-availableobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"installation.update-available"Required
locationLocation.RefOptional
dataobjectRequired
installation.updatedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"installation.updated"Required
locationLocation.RefOptional
dataobjectRequired
integration.updatedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"integration.updated"Required
locationLocation.RefOptional
dataobjectRequired
location.shutdownobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"location.shutdown"Required
locationLocation.RefOptional
dataobjectRequired
mcp.resources.changedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"mcp.resources.changed"Required
locationLocation.RefOptional
dataobjectRequired
mcp.status.changedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"mcp.status.changed"Required
locationLocation.RefOptional
dataobjectRequired
model.updatedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"model.updated"Required
locationLocation.RefOptional
dataobjectRequired
models-dev.refreshedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"models-dev.refreshed"Required
locationLocation.RefOptional
dataobjectRequired
permission.askedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"permission.asked"Required
locationLocation.RefOptional
dataobjectRequired
permission.repliedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"permission.replied"Required
locationLocation.RefOptional
dataobjectRequired
persistent-pty.addedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"persistent-pty.added"Required
locationLocation.RefOptional
dataobjectRequired
persistent-pty.removedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"persistent-pty.removed"Required
locationLocation.RefOptional
dataobjectRequired
persistent-pty.updatedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"persistent-pty.updated"Required
locationLocation.RefOptional
dataobjectRequired
plugin.updatedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"plugin.updated"Required
locationLocation.RefOptional
dataobjectRequired
project.updatedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"project.updated"Required
locationLocation.RefOptional
dataobjectRequired
provider.updatedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"provider.updated"Required
locationLocation.RefOptional
dataobjectRequired
pty.createdobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"pty.created"Required
locationLocation.RefOptional
dataobjectRequired
pty.deletedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"pty.deleted"Required
locationLocation.RefOptional
dataobjectRequired
pty.exitedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"pty.exited"Required
locationLocation.RefOptional
dataobjectRequired
pty.updatedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"pty.updated"Required
locationLocation.RefOptional
dataobjectRequired
reference.updatedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"reference.updated"Required
locationLocation.RefOptional
dataobjectRequired
session.agent.selectedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.agent.selected"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.archivedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.archived"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.compaction.deltaobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.compaction.delta"Required
locationLocation.RefOptional
dataobjectRequired
session.compaction.endedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.compaction.ended"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.compaction.failedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.compaction.failed"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.compaction.startedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.compaction.started"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.createdobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.created"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.deletedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.deleted"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.execution.failedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.execution.failed"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.execution.interruptedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.execution.interrupted"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.execution.startedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.execution.started"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.execution.succeededobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.execution.succeeded"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.forkedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.forked"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.idleobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.idle"Required
locationLocation.RefOptional
dataobjectRequired
session.inbox.cancelledobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.inbox.cancelled"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.inbox.deliveredobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.inbox.delivered"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.inbox.delivery.changedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.inbox.delivery.changed"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.inbox.enqueuedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.inbox.enqueued"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.instructions.updatedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.instructions.updated"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.message.content.updatedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.message.content.updated"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.metadata.updatedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.metadata.updated"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.model.selectedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.model.selected"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.movedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.moved"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.permissionsobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.permissions"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.reasoning.deltaobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.reasoning.delta"Required
locationLocation.RefOptional
dataobjectRequired
session.reasoning.endedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.reasoning.ended"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.reasoning.startedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.reasoning.started"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.renamedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.renamed"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.retry.scheduledobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.retry.scheduled"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.revert.clearedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.revert.cleared"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.revert.committedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.revert.committed"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.revert.stagedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.revert.staged"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.shell.endedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.shell.ended"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.shell.startedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.shell.started"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.skill.activatedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.skill.activated"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.step.endedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.step.ended"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.step.failedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.step.failed"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.step.startedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.step.started"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.step.streamedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.step.streamed"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.syntheticobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.synthetic"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.text.deltaobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.text.delta"Required
locationLocation.RefOptional
dataobjectRequired
session.text.endedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.text.ended"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.text.startedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.text.started"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.tool.calledobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.tool.called"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.tool.failedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.tool.failed"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.tool.input.deltaobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.tool.input.delta"Required
locationLocation.RefOptional
dataobjectRequired
session.tool.input.endedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.tool.input.ended"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.tool.input.startedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.tool.input.started"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.tool.progressobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.tool.progress"Required
locationLocation.RefOptional
dataobjectRequired
session.tool.successobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.tool.success"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.unarchivedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.unarchived"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.usage.recordedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.usage.recorded"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
session.usage.updatedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.usage.updated"Required
locationLocation.RefOptional
dataobjectRequired
session.viewedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"session.viewed"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
shell.createdobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"shell.created"Required
locationLocation.RefOptional
dataobjectRequired
shell.deletedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"shell.deleted"Required
locationLocation.RefOptional
dataobjectRequired
shell.exitedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"shell.exited"Required
locationLocation.RefOptional
dataobjectRequired
skill.updatedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"skill.updated"Required
locationLocation.RefOptional
dataobjectRequired
tui.command.executeobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"tui.command.execute"Required
locationLocation.RefOptional
dataobjectRequired
tui.prompt.appendobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"tui.prompt.append"Required
locationLocation.RefOptional
dataobjectRequired
tui.session.selectobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"tui.session.select"Required
locationLocation.RefOptional
dataobjectRequired
tui.toast.showobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"tui.toast.show"Required
locationLocation.RefOptional
dataobjectRequired
vcs.branch.updatedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"vcs.branch.updated"Required
locationLocation.RefOptional
dataobjectRequired
websearch.updatedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"websearch.updated"Required
locationLocation.RefOptional
dataobjectRequired
worktree.resolvedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"worktree.resolved"Required
durableobjectRequired
locationLocation.RefOptional
dataobjectRequired
worktree.updatedobject
FieldTypeRequiredDescription
idEvent.IDRequired
creatednumberRequired
metadataobjectOptional
type"worktree.updated"Required
locationLocation.RefOptional
dataobjectRequired