OpenAPI 3.1.0
HTTP API
Experimental HttpApi surface for selected instance routes.
Resource
server
get/api/statusGet server status
Return the server identity, connection URLs, and readiness status.
Operation IDserver.status
Responses
200ServerStatusapplication/jsonServerStatus400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedResource
location
get/api/locationGet location
Resolve the requested location or the server default location.
Operation IDlocation.get
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Responses
200Location.PublicInfoapplication/jsonLocation.PublicInfo400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedResource
agent
get/api/agentList agents
Retrieve currently registered agents.
Operation IDagent.list
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.PublicRefdataAgent.Info[]required400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedget/api/agent/{agentID}Get agent
Retrieve a single currently registered agent.
Operation IDagent.get
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
agentIDrequired | path | string | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.PublicRefdataAgent.Info400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404AgentNotFoundErrorapplication/jsonAgentNotFoundErrorEncodedResource
plugin
Experimental plugin routes.
get/api/pluginList plugins
Retrieve enabled server plugins and their current status.
Operation IDplugin.list
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.PublicRefdataPlugin.Info[]required400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedpost/api/plugin/checkCheck plugin updates
Check one or all package plugins for available updates.
Operation IDplugin.check
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Request body required
application/jsonobjecttargetstring | nullstringnullResponses
200Successapplication/jsonobjectlocationLocation.PublicRefdataPlugin.Info[]required400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded | InvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedpost/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.
Operation IDplugin.update
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Request body required
application/jsonobjecttargetsstring[]requiredstringResponses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded | InvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded503ServiceUnavailableErrorapplication/jsonServiceUnavailableErrorEncodedResource
session
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.
Operation IDsession.list
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
limit | query | string | nullMaximum number of sessions to return. Defaults to the newest 50 sessions. stringor null | No description |
order | query | "asc" | "desc" | nullSession order for the first page. Use desc for newest first or asc for oldest first. "asc" | "desc"Values "asc" | "desc"or null | No description |
search | query | string | nullstringor null | No description |
parentID | query | string | "null" | nullstring | "null"Filter by parent session. Use null to return only root sessions. stringpattern ^ses or "null"Values "null"or null | No description |
directory | query | string | nullstringor null | No description |
project | query | string | nullstringor null | No description |
subpath | query | string | nullstringor null | No description |
cursor | query | string | nullstringOpaque pagination cursor returned as cursor.previous or cursor.next in the previous response. or null | No description |
Responses
200SessionsResponseapplication/jsonSessionsResponse400InvalidCursorError | InvalidRequestErrorapplication/jsonInvalidCursorErrorEncoded | InvalidRequestErrorEncoded | InvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedpost/api/sessionCreate session
Create a session at the requested location.
Operation IDsession.create
Request body required
application/jsonobjectidstring | nullstringnulltitlestring | nullstringnullagentstring | nullstringnullmodelModel.Ref | nullnulllocationLocation.PublicRef | nullnullmetadataSession.Metadata | nullnullpermissionsPermission.Ruleset | nullnullResponses
200Successapplication/jsonobjectdataSession.Info400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedget/api/experimental/session/statsGet session statistics
Aggregate local session activity, usage, and tool reliability for a time range.
Operation IDexperimental.session.stats
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
from | query | string | nullstringor null | No description |
to | query | string | nullstringor null | No description |
project | query | string | nullstringor null | No description |
timezone | query | string | nullstringor null | No description |
tools | query | "none" | "summary" | "detail" | null"none" | "summary" | "detail"Values "none" | "summary" | "detail"or null | No description |
Responses
200Successapplication/jsonobject400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded | InvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedpost/api/session/importImport session
Import a projected session transcript at the requested location. If parentID is supplied, the parent session must already exist; import parents before children.
Operation IDsession.import
Request body required
application/jsonobjectinfoSession.InfomessagesSession.Message.Info[]requiredlocationLocation.PublicRef | nullnullResponses
200Successapplication/jsonobjectdataSession.Info400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundErrorapplication/jsonSessionNotFoundErrorEncoded409ConflictErrorapplication/jsonConflictErrorEncodedget/api/session/{sessionID}/exportExport session
Export a complete projected session transcript.
Operation IDsession.export
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | stringpattern ^ses | No description |
sanitize | query | "true" | "false" | null"true" | "false"Values "true" | "false"or null | No description |
Responses
200Successapplication/jsonobject400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundErrorapplication/jsonSessionNotFoundErrorEncoded500UnknownErrorapplication/jsonUnknownErrorEncodedget/api/session/activeList active sessions
Retrieve foreground Session drains currently owned by this OpenCode process. Sessions absent from the result are inactive.
Operation IDsession.active
Responses
200Successapplication/jsonobjectdataobjectrequired400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedget/api/session/{sessionID}Get session
Retrieve a session by ID.
Operation IDsession.get
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | stringpattern ^ses | No description |
Responses
200Successapplication/jsonobjectdataSession.Info400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundErrorapplication/jsonSessionNotFoundErrorEncodeddelete/api/session/{sessionID}Delete session
Delete a session and its child sessions.
Operation IDsession.remove
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | stringpattern ^ses | No description |
Responses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundErrorapplication/jsonSessionNotFoundErrorEncodedpost/api/session/{sessionID}/forkFork session
Create a child session by copying projected history before a message. Omit before to copy the full history.
Operation IDsession.fork
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | stringpattern ^ses | No description |
Request body required
application/jsonobjectbeforestring | nullstringnullResponses
200Successapplication/jsonobjectdataSession.Info400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded | InvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundError | MessageNotFoundErrorapplication/jsonMessageNotFoundErrorEncoded | SessionNotFoundErrorEncoded | SessionNotFoundErrorEncodedpost/api/session/{sessionID}/agentSwitch session agent
Switch the agent used by subsequent provider turns.
Operation IDsession.switchAgent
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | stringpattern ^ses | No description |
Request body required
application/jsonobjectagentstringrequiredResponses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundErrorapplication/jsonSessionNotFoundErrorEncoded | SessionNotFoundErrorEncodedpost/api/session/{sessionID}/modelSwitch session model
Switch the model used by subsequent provider turns.
Operation IDsession.switchModel
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | stringpattern ^ses | No description |
Request body required
application/jsonobjectmodelModel.RefResponses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundErrorapplication/jsonSessionNotFoundErrorEncoded | SessionNotFoundErrorEncodedpost/api/session/{sessionID}/renameRename session
Update the session title.
Operation IDsession.rename
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | stringpattern ^ses | No description |
Request body required
application/jsonobjecttitlestringrequiredResponses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundErrorapplication/jsonSessionNotFoundErrorEncoded | SessionNotFoundErrorEncodedpost/api/session/{sessionID}/moveMove session
Move a session to another project directory, optionally transferring local changes.
Operation IDsession.move
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | stringpattern ^ses | No description |
Request body required
application/jsonobjectdirectorystringrequireddeliverySession.Inbox.Delivery | nullnullResponses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded | InvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundErrorapplication/jsonSessionNotFoundErrorEncodedpost/api/session/{sessionID}/promptSend message
Durably admit one session input and schedule agent-loop execution unless resume is false.
Operation IDsession.prompt
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | stringpattern ^ses | No description |
Request body required
application/jsonobjectidstring | nullstringnulltextstringrequiredfilesPromptInput.FileAttachment[]agentsPrompt.AgentAttachment[]skillsPromptInput.SkillAttachment[]metadataobjectdeliverySession.Inbox.Delivery | nullnullresumeboolean | nullbooleannullResponses
200Successapplication/jsonobject400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded | InvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundErrorapplication/jsonSessionNotFoundErrorEncoded | SessionNotFoundErrorEncoded409ConflictErrorapplication/jsonConflictErrorEncodedpost/api/session/{sessionID}/commandRun command
Execute a slash command callback immediately.
Operation IDsession.command
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | stringpattern ^ses | No description |
Request body required
application/jsonobjectcommandstringrequiredtextstringrequiredfilesPromptInput.FileAttachment[]agentsPrompt.AgentAttachment[]skillsPromptInput.SkillAttachment[]deliverySession.Inbox.Delivery | nullnullResponses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundError | CommandNotFoundErrorapplication/jsonCommandNotFoundErrorEncoded | SessionNotFoundErrorEncoded | SessionNotFoundErrorEncoded500CommandExecutionErrorapplication/jsonCommandExecutionErrorEncodedpost/api/session/{sessionID}/skillActivate skill
Activate a skill for a session by appending a skill message and resuming execution.
Operation IDsession.skill
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | stringpattern ^ses | No description |
Request body required
application/jsonobjectidstring | nullstringnullskillstringrequiredresumeboolean | nullbooleannullResponses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundError | SkillNotFoundErrorapplication/jsonSkillNotFoundErrorEncoded | SessionNotFoundErrorEncoded | SessionNotFoundErrorEncodedpost/api/session/{sessionID}/syntheticAdd synthetic message
Durably admit synthetic session input and schedule execution unless resume is false.
Operation IDsession.synthetic
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | stringpattern ^ses | No description |
Request body required
application/jsonobjectidstring | nullstringnulltextstringrequireddescriptionstring | nullstringnullmetadataobjectdeliverySession.Inbox.Delivery | nullnullresumeboolean | nullbooleannullResponses
200Successapplication/jsonobject400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundErrorapplication/jsonSessionNotFoundErrorEncoded | SessionNotFoundErrorEncoded409ConflictErrorapplication/jsonConflictErrorEncodedpost/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.
Operation IDsession.shell
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | stringpattern ^ses | No description |
Request body required
application/jsonobjectidstring | nullstringnullcommandstringrequiredResponses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundErrorapplication/jsonSessionNotFoundErrorEncoded | SessionNotFoundErrorEncodedpost/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.
Operation IDsession.compact
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | stringpattern ^ses | No description |
Request body required
application/jsonobjectidstring | nullstringnulldeliverySession.Inbox.Delivery | nullnullResponses
200Successapplication/jsonobject400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundErrorapplication/jsonSessionNotFoundErrorEncoded | SessionNotFoundErrorEncoded409ConflictErrorapplication/jsonConflictErrorEncodedpost/api/session/{sessionID}/waitWait for session
Wait for a session agent loop to become idle.
Operation IDsession.wait
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | stringpattern ^ses | No description |
Responses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundErrorapplication/jsonSessionNotFoundErrorEncoded | SessionNotFoundErrorEncoded503ServiceUnavailableErrorapplication/jsonServiceUnavailableErrorEncodedpost/api/session/{sessionID}/revert/stageStage session revert
Stage or move a reversible session boundary and optionally apply its file changes.
Operation IDsession.revert.stage
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | stringpattern ^ses | No description |
Request body required
application/jsonobjectmessageIDstringrequiredfilesboolean | nullbooleannullResponses
200Successapplication/jsonobjectdataSession.Revert400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404MessageNotFoundError | SessionNotFoundErrorapplication/jsonMessageNotFoundErrorEncoded | SessionNotFoundErrorEncoded | SessionNotFoundErrorEncoded409SessionBusyErrorapplication/jsonSessionBusyErrorEncoded500UnknownErrorapplication/jsonUnknownErrorEncodedpost/api/session/{sessionID}/revert/clearClear staged revert
Operation IDsession.revert.clear
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | stringpattern ^ses | No description |
Responses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundErrorapplication/jsonSessionNotFoundErrorEncoded | SessionNotFoundErrorEncoded409SessionBusyErrorapplication/jsonSessionBusyErrorEncoded500UnknownErrorapplication/jsonUnknownErrorEncodedpost/api/session/{sessionID}/revert/commitCommit staged revert
Operation IDsession.revert.commit
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | stringpattern ^ses | No description |
Responses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundErrorapplication/jsonSessionNotFoundErrorEncoded | SessionNotFoundErrorEncoded409SessionBusyErrorapplication/jsonSessionBusyErrorEncodedget/api/session/{sessionID}/contextGet session context
Retrieve the active context messages for a session (all messages after the last compaction).
Operation IDsession.context
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | stringpattern ^ses | No description |
Responses
200Successapplication/jsonobjectdataSession.Message.Info[]required400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundErrorapplication/jsonSessionNotFoundErrorEncoded500UnknownErrorapplication/jsonUnknownErrorEncodedget/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.
Operation IDsession.diff
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | stringpattern ^ses | No description |
from | query | string | nullUser message whose turn to diff. Defaults to the turn of the newest user message. stringpattern ^msg_ or null | No description |
to | query | string | nullLater user message whose turn ends the range. Defaults to the turn of `from` alone. stringpattern ^msg_ or null | No description |
context | query | string | nullUnchanged lines around each hunk. Omit for full-file patches. stringor null | No description |
Responses
200Successapplication/jsonobjectdataFileDiff.Info[]required400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded | InvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404MessageNotFoundError | SessionNotFoundErrorapplication/jsonMessageNotFoundErrorEncoded | SessionNotFoundErrorEncoded500UnknownErrorapplication/jsonUnknownErrorEncodedget/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.
Operation IDsession.inbox.list
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | stringpattern ^ses | No description |
Responses
200Successapplication/jsonobjectdataSession.Inbox.Info[]required400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundErrorapplication/jsonSessionNotFoundErrorEncodeddelete/api/session/{sessionID}/inbox/{inboxID}Cancel inbox input
Cancel an inbox item that has not yet been delivered.
Operation IDsession.inbox.cancel
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | stringpattern ^ses | No description |
inboxIDrequired | path | stringpattern ^msg_ | No description |
Responses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundErrorapplication/jsonSessionNotFoundErrorEncoded409ConflictErrorapplication/jsonConflictErrorEncodedpost/api/session/{sessionID}/inbox/{inboxID}/steerSteer queued item
Change a queued inbox item to steer delivery and wake session execution.
Operation IDsession.inbox.steer
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | stringpattern ^ses | No description |
inboxIDrequired | path | stringpattern ^msg_ | No description |
Responses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundErrorapplication/jsonSessionNotFoundErrorEncoded409ConflictErrorapplication/jsonConflictErrorEncodedpost/api/session/{sessionID}/inbox/{inboxID}/queueQueue steered item
Change a steered inbox item to queued delivery.
Operation IDsession.inbox.queue
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | stringpattern ^ses | No description |
inboxIDrequired | path | stringpattern ^msg_ | No description |
Responses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundErrorapplication/jsonSessionNotFoundErrorEncoded409ConflictErrorapplication/jsonConflictErrorEncodedget/api/session/{sessionID}/instructions/entriesList instruction entries
List API-managed instruction entries attached to the session.
Operation IDsession.instructions.entry.list
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | stringpattern ^ses | No description |
Responses
200Successapplication/jsonobjectdataInstructionEntry.Info[]required400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundErrorapplication/jsonSessionNotFoundErrorEncoded | SessionNotFoundErrorEncodedput/api/session/{sessionID}/instructions/entries/{key}Put instruction entry
Attach or replace one durable instruction entry. Changes announce as updates at the next step boundary.
Operation IDsession.instructions.entry.put
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | stringpattern ^ses | No description |
keyrequired | path | InstructionEntry.Key | No description |
Request body required
application/jsonobjectvalueobjectrequiredResponses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundErrorapplication/jsonSessionNotFoundErrorEncoded | SessionNotFoundErrorEncoded413InstructionEntryValueTooLargeErrorapplication/jsonInstructionEntryValueTooLargeErrorEncodeddelete/api/session/{sessionID}/instructions/entries/{key}Remove instruction entry
Remove one instruction entry; the removal is announced to the model at the next step boundary.
Operation IDsession.instructions.entry.remove
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | stringpattern ^ses | No description |
keyrequired | path | InstructionEntry.Key | No description |
Responses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundErrorapplication/jsonSessionNotFoundErrorEncoded | SessionNotFoundErrorEncodedpost/api/session/{sessionID}/generateGenerate text from session context
Generate transient text from the current session context without mutating session history.
Operation IDsession.generate
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | stringpattern ^ses | No description |
Request body required
application/jsonobjectpromptstringrequiredResponses
200SessionGenerateResponseapplication/jsonSessionGenerateResponse400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundErrorapplication/jsonSessionNotFoundErrorEncoded | SessionNotFoundErrorEncoded503ServiceUnavailableErrorapplication/jsonServiceUnavailableErrorEncodedget/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.
Operation IDsession.log
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | stringpattern ^ses | No description |
after | query | string | nullstringor null | No description |
follow | query | "true" | "false" | null"true" | "false"Values "true" | "false"or null | No description |
Responses
200Successtext/event-streamobject400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundErrorapplication/jsonSessionNotFoundErrorEncodedpost/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 continue=true, execution resumes pending steering input and next-in-line control items (manual compaction, moves) while queued prompts remain parked.
Operation IDsession.interrupt
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | stringpattern ^ses | No description |
continue | query | "true" | "false" | null"true" | "false"Values "true" | "false"or null | No description |
Responses
200SessionInterruptResponseapplication/jsonSessionInterruptResponse400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundErrorapplication/jsonSessionNotFoundErrorEncoded | SessionNotFoundErrorEncodedpost/api/session/{sessionID}/backgroundBackground blocking session tools
Move active foreground backgroundable tools for this session into background observation. Idle requests are a no-op.
Operation IDsession.background
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | stringpattern ^ses | No description |
Responses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundErrorapplication/jsonSessionNotFoundErrorEncoded | SessionNotFoundErrorEncodedget/api/session/{sessionID}/message/{messageID}Get session message
Retrieve one projected message owned by the Session.
Operation IDsession.message
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | stringpattern ^ses | No description |
messageIDrequired | path | stringpattern ^msg_ | No description |
Responses
200Successapplication/jsonobject400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundError | MessageNotFoundErrorapplication/jsonSessionNotFoundErrorEncoded | MessageNotFoundErrorEncodedput/api/session/{sessionID}/environmentSet session environment
Replace the process environment used by local shell commands for this session.
Operation IDsession.environment
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | stringpattern ^ses | No description |
Request body required
application/jsonobjectvariablesobjectrequiredstringResponses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundErrorapplication/jsonSessionNotFoundErrorEncodedpost/api/session/{sessionID}/viewView session
Mark the idle transition observed by the viewer as viewed.
Operation IDsession.view
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | stringpattern ^ses | No description |
Request body required
application/jsonobjectidleintegerrequiredResponses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundErrorapplication/jsonSessionNotFoundErrorEncodedget/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.
Operation IDmessage.list
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | stringpattern ^ses | No description |
limit | query | string | nullMaximum number of messages to return. When omitted, the endpoint returns its default page size. stringor null | No description |
order | query | "asc" | "desc" | nullMessage order for the first page. Use desc for newest first or asc for oldest first. "asc" | "desc"Values "asc" | "desc"or null | No description |
cursor | query | string | nullstringOpaque pagination cursor returned as cursor.previous or cursor.next in the previous response. Do not combine with order. or null | No description |
type | query | "agent-switched" | "model-switched" | "location-switched" | "user" | "synthetic" | "system" | "skill" | "shell" | "assistant" | "compaction" | nullFilter by message type before pagination. When omitted, all message types are returned. Pass the same type when following cursors. "agent-switched" | "model-switched" | "location-switched" | "user" | "synthetic" | "system" | "skill" | "shell" | "assistant" | "compaction"Values "agent-switched" | "model-switched" | "location-switched" | "user" | "synthetic" | "system" | "skill" | "shell" | "assistant" | "compaction"or null | No description |
Responses
200SessionMessagesResponseapplication/jsonSessionMessagesResponse400InvalidCursorError | InvalidRequestErrorapplication/jsonInvalidCursorErrorEncoded | InvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundErrorapplication/jsonSessionNotFoundErrorEncoded500UnknownErrorapplication/jsonUnknownErrorEncodedResource
model
Experimental model routes.
get/api/modelList models
Retrieve the current snapshot of available models ordered by release date. The snapshot may precede initial plugin settlement.
Operation IDmodel.list
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.PublicRefdataModel.Info[]required400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded503ServiceUnavailableErrorapplication/jsonServiceUnavailableErrorEncodedget/api/model/defaultGet default model
Retrieve the model used when a session has no explicit model selection.
Operation IDmodel.default
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.PublicRefdataModel.Info | nullrequirednull400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded503ServiceUnavailableErrorapplication/jsonServiceUnavailableErrorEncodedResource
generate
Experimental one-shot generation routes.
post/api/generateGenerate 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.
Operation IDgenerate.text
Request body required
application/jsonobjectpromptstringrequiredmodelModel.Ref | nullnullResponses
200GenerateTextResponseapplication/jsonGenerateTextResponse400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded | InvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded503ServiceUnavailableErrorapplication/jsonServiceUnavailableErrorEncodedResource
provider
Experimental provider routes.
get/api/providerList providers
Retrieve active AI providers so clients can show provider availability and configuration.
Operation IDprovider.list
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.PublicRefdataProvider.Info[]required400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded503ServiceUnavailableErrorapplication/jsonServiceUnavailableErrorEncodedget/api/provider/{providerID}Get provider
Retrieve a single AI provider so clients can inspect its availability and endpoint settings.
Operation IDprovider.get
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
providerIDrequired | path | string | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.PublicRefdataProvider.Info400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404ProviderNotFoundErrorapplication/jsonProviderNotFoundErrorEncoded503ServiceUnavailableErrorapplication/jsonServiceUnavailableErrorEncodedResource
integration
Integration discovery and authentication routes.
get/api/integrationList integrations
Retrieve available integrations and their authentication methods.
Operation IDintegration.list
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.PublicRefdataIntegration.Info[]required400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedget/api/integration/{integrationID}Get integration
Retrieve one integration and its authentication methods.
Operation IDintegration.get
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
integrationIDrequired | path | string | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.PublicRefdataIntegration.Info400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404IntegrationNotFoundErrorapplication/jsonIntegrationNotFoundErrorEncodedpost/api/experimental/integration/wellknownAdd wellknown integration
Discover and persist an experimental wellknown integration source.
Operation IDexperimental.integration.wellknown.add
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Request body required
application/jsonobjecturlstringrequiredResponses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded | InvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedpost/api/integration/{integrationID}/connect/keyConnect with key
Run a key authentication method and store the resulting credential.
Operation IDintegration.connect.key
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
integrationIDrequired | path | string | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Request body required
application/jsonobjectResponses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded | InvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404IntegrationNotFoundErrorapplication/jsonIntegrationNotFoundErrorEncodedpost/api/integration/{integrationID}/connect/oauthBegin OAuth connection
Start an OAuth attempt and return the authorization details.
Operation IDintegration.oauth.connect
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
integrationIDrequired | path | string | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Request body required
application/jsonobjectResponses
200Successapplication/jsonobjectlocationLocation.PublicRef400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded | InvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedget/api/integration/{integrationID}/connect/oauth/{attemptID}Get OAuth attempt status
Poll the current status of an OAuth attempt.
Operation IDintegration.oauth.status
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
integrationIDrequired | path | string | No description |
attemptIDrequired | path | string | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.PublicRef400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404IntegrationNotFoundError | IntegrationAttemptNotFoundErrorapplication/jsonIntegrationNotFoundErrorEncoded | IntegrationAttemptNotFoundErrorEncodeddelete/api/integration/{integrationID}/connect/oauth/{attemptID}Cancel OAuth connection
Cancel an OAuth attempt and release its resources.
Operation IDintegration.oauth.cancel
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
integrationIDrequired | path | string | No description |
attemptIDrequired | path | string | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Responses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedpost/api/integration/{integrationID}/connect/oauth/{attemptID}/completeComplete OAuth connection
Complete a code-based OAuth attempt and store the resulting credential.
Operation IDintegration.oauth.complete
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
integrationIDrequired | path | string | No description |
attemptIDrequired | path | string | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Request body required
application/jsonobjectcodestring | nullstringnullResponses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded | InvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404IntegrationNotFoundError | IntegrationAttemptNotFoundErrorapplication/jsonIntegrationNotFoundErrorEncoded | IntegrationAttemptNotFoundErrorEncodedpost/api/integration/{integrationID}/connect/commandBegin command connection
Start a command authentication attempt.
Operation IDintegration.command.connect
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
integrationIDrequired | path | string | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Request body required
application/jsonobjectmethodIDstringrequiredlabelstring | nullstringnullResponses
200Successapplication/jsonobjectlocationLocation.PublicRef400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded | InvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404IntegrationNotFoundError | IntegrationMethodNotFoundErrorapplication/jsonIntegrationNotFoundErrorEncoded | IntegrationMethodNotFoundErrorEncodedget/api/integration/{integrationID}/connect/command/{attemptID}Get command attempt status
Poll the current status and output of a command authentication attempt.
Operation IDintegration.command.status
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
integrationIDrequired | path | string | No description |
attemptIDrequired | path | string | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobject400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404IntegrationNotFoundError | IntegrationAttemptNotFoundErrorapplication/jsonIntegrationNotFoundErrorEncoded | IntegrationAttemptNotFoundErrorEncodeddelete/api/integration/{integrationID}/connect/command/{attemptID}Cancel command connection
Cancel a command authentication attempt and terminate its process.
Operation IDintegration.command.cancel
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
integrationIDrequired | path | string | No description |
attemptIDrequired | path | string | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Responses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedResource
mcp
MCP server and resource routes.
get/api/mcpList MCP servers
Retrieve configured MCP servers and their connection status.
Operation IDmcp.list
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.PublicRefdataMcp.Server[]required400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedput/api/experimental/mcp/{server}Add MCP server
Add an MCP server at runtime or replace an existing one, connecting it immediately.
Operation IDexperimental.mcp.add
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
serverrequired | path | string | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Request body required
application/jsonobjectconfigMcp.LocalConfigEncoded | Mcp.RemoteConfigEncodedrequiredResponses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodeddelete/api/experimental/mcp/{server}Remove MCP server
Stop an MCP server and remove it from the runtime set until restart.
Operation IDexperimental.mcp.remove
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
serverrequired | path | string | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Responses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404McpServerNotFoundErrorapplication/jsonMcpServerNotFoundErrorEncodedpost/api/experimental/mcp/{server}/connectConnect MCP server
Connect an MCP server at runtime, overriding a disabled configuration until restart.
Operation IDexperimental.mcp.connect
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
serverrequired | path | string | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Responses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404McpServerNotFoundErrorapplication/jsonMcpServerNotFoundErrorEncodedpost/api/experimental/mcp/{server}/disconnectDisconnect MCP server
Disconnect an MCP server at runtime, removing its tools until reconnected.
Operation IDexperimental.mcp.disconnect
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
serverrequired | path | string | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Responses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404McpServerNotFoundErrorapplication/jsonMcpServerNotFoundErrorEncodedget/api/mcp/resourceList MCP resources
Retrieve resources and resource templates from connected MCP servers.
Operation IDmcp.resource.catalog
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.PublicRef400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedResource
credential
patch/api/credential/{credentialID}Update credential
Update a stored credential label.
Operation IDcredential.update
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
credentialIDrequired | path | string | No description |
Request body required
application/jsonobjectlabelstringrequiredResponses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodeddelete/api/credential/{credentialID}Remove credential
Remove a stored integration credential.
Operation IDcredential.remove
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
credentialIDrequired | path | string | No description |
Responses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedpost/api/credential/{credentialID}/activateActivate credential
Activate a stored integration credential.
Operation IDcredential.activate
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
credentialIDrequired | path | string | No description |
Responses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedResource
project
Project routes.
get/api/projectList projects
List known projects.
Operation IDproject.list
Responses
200Successapplication/jsonProject[]400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedpatch/api/project/{projectID}Update project
Update the project canonical directory, display metadata, and workspace commands.
Operation IDproject.update
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
projectIDrequired | path | string | No description |
Request body required
application/jsonobjectResponses
200Projectapplication/jsonProject400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404ProjectNotFoundErrorapplication/jsonProjectNotFoundErrorEncodedResource
form
Session form routes.
get/api/form/requestList pending form requests
Retrieve pending forms for a location.
Operation IDform.request.list
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.PublicRefdataForm.Info[]required400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedget/api/session/{sessionID}/formList session forms
Retrieve pending forms for a session.
Operation IDsession.form.list
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | string | No description |
Responses
200Successapplication/jsonobjectdataForm.Info[]required400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundErrorapplication/jsonSessionNotFoundErrorEncodedpost/api/session/{sessionID}/formCreate session form
Create a form for a session.
Operation IDsession.form.create
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | string | No description |
Request body required
application/jsonForm.CreatePayloadResponses
200Successapplication/jsonobjectdataForm.Info400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded | InvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundErrorapplication/jsonSessionNotFoundErrorEncoded | SessionNotFoundErrorEncoded409ConflictErrorapplication/jsonConflictErrorEncodedget/api/session/{sessionID}/form/{formID}Get session form
Retrieve a form for a session.
Operation IDsession.form.get
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | string | No description |
formIDrequired | path | stringpattern ^frm_ | No description |
Responses
200Successapplication/jsonobjectdataForm.Info400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundError | FormNotFoundErrorapplication/jsonFormNotFoundErrorEncoded | SessionNotFoundErrorEncoded | SessionNotFoundErrorEncodedget/api/session/{sessionID}/form/{formID}/stateGet form state
Retrieve the current state for a form.
Operation IDsession.form.state
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | string | No description |
formIDrequired | path | stringpattern ^frm_ | No description |
Responses
200Successapplication/jsonobjectdataForm.State400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundError | FormNotFoundErrorapplication/jsonFormNotFoundErrorEncoded | SessionNotFoundErrorEncoded | SessionNotFoundErrorEncodedpost/api/session/{sessionID}/form/{formID}/replyReply to form
Submit an answer to a pending form.
Operation IDsession.form.reply
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | string | No description |
formIDrequired | path | stringpattern ^frm_ | No description |
Request body required
application/jsonForm.ReplyResponses
204<No Content>400FormInvalidAnswerError | InvalidRequestErrorapplication/jsonFormInvalidAnswerErrorEncoded | InvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundError | FormNotFoundErrorapplication/jsonFormNotFoundErrorEncoded | SessionNotFoundErrorEncoded | SessionNotFoundErrorEncoded409FormAlreadySettledErrorapplication/jsonFormAlreadySettledErrorEncodedpost/api/session/{sessionID}/form/{formID}/cancelCancel form
Cancel a pending form.
Operation IDsession.form.cancel
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | string | No description |
formIDrequired | path | stringpattern ^frm_ | No description |
Responses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundError | FormNotFoundErrorapplication/jsonFormNotFoundErrorEncoded | SessionNotFoundErrorEncoded | SessionNotFoundErrorEncoded409FormAlreadySettledErrorapplication/jsonFormAlreadySettledErrorEncodedResource
permission
Experimental permission routes.
get/api/permission/requestList pending permission requests
Retrieve pending permission requests for a location.
Operation IDpermission.request.list
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.PublicRefdataPermission.Request[]required400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedget/api/permission/savedList saved permissions
Retrieve saved permissions, optionally filtered by project.
Operation IDpermission.saved.list
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
projectID | query | string | nullstringor null | No description |
Responses
200Successapplication/jsonobjectdataPermissionSaved.Info[]required400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodeddelete/api/permission/saved/{id}Remove saved permission
Remove a saved permission by ID.
Operation IDpermission.saved.remove
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
idrequired | path | string | No description |
Responses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedget/api/session/{sessionID}/permissionList session permission requests
Retrieve pending permission requests owned by a session.
Operation IDsession.permission.list
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | stringpattern ^ses | No description |
Responses
200Successapplication/jsonobjectdataPermission.Request[]required400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundErrorapplication/jsonSessionNotFoundErrorEncodedpost/api/session/{sessionID}/permissionCreate permission request
Evaluate and, when approval is required, create a permission request for a session.
Operation IDsession.permission.create
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | stringpattern ^ses | No description |
Request body required
application/jsonobjectidstring | nullstringnullactionstringrequiredresourcesstring[]requiredstringsavestring[]stringmetadataobjectsourcePermission.Sourceagentstring | nullstringnullResponses
200Successapplication/jsonobjectdataobjectrequiredidstringrequiredeffectPermission.Effect400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundErrorapplication/jsonSessionNotFoundErrorEncoded | SessionNotFoundErrorEncodedget/api/session/{sessionID}/permission/{requestID}Get permission request
Retrieve a pending permission request owned by a session.
Operation IDsession.permission.get
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | stringpattern ^ses | No description |
requestIDrequired | path | stringpattern ^per | No description |
Responses
200Successapplication/jsonobject400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundError | PermissionNotFoundErrorapplication/jsonPermissionNotFoundErrorEncoded | SessionNotFoundErrorEncoded | SessionNotFoundErrorEncodedpost/api/session/{sessionID}/permission/{requestID}/replyReply to pending permission request
Respond to a pending permission request owned by a session.
Operation IDsession.permission.reply
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | stringpattern ^ses | No description |
requestIDrequired | path | stringpattern ^per | No description |
Request body required
application/jsonobjectreplyPermission.Replymessagestring | nullstringnullResponses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundError | PermissionNotFoundErrorapplication/jsonPermissionNotFoundErrorEncoded | SessionNotFoundErrorEncoded | SessionNotFoundErrorEncodedput/api/session/{sessionID}/permission/rulesReplace session permission rules
Replace the session-scoped permission rules. Rules are evaluated after the agent's rules, and the last matching rule wins.
Operation IDsession.permission.rules
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | stringpattern ^ses | No description |
Request body required
application/jsonobjectpermissionsPermission.RulesetResponses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundErrorapplication/jsonSessionNotFoundErrorEncoded | SessionNotFoundErrorEncodedResource
filesystem
Experimental location-scoped filesystem routes.
get/api/fs/read/*Read file
Serve one file relative to the requested location.
Operation IDfs.read
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Responses
200Successapplication/octet-streamstring<binary>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404FileNotFoundErrorapplication/jsonFileNotFoundErrorEncodedget/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.
Operation IDfs.list
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
path | query | string | nullAn absolute path or a path relative to the requested location. Defaults to the location directory. stringor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.PublicRefdataFileSystem.Entry[]required400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedget/api/fs/findFind files
Find recursively ranked filesystem entries relative to the requested location.
Operation IDfs.find
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
queryrequired | query | string | No description |
type | query | "file" | "directory"Values "file" | "directory" | No description |
limit | query | string | nullstringor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.PublicRefdataFileSystem.Entry[]required400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedResource
command
Experimental command routes.
get/api/commandList commands
Retrieve currently registered commands.
Operation IDcommand.list
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.PublicRefdataCommand.Info[]required400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedResource
skill
Experimental skill routes.
get/api/skillList skills
Retrieve currently registered skills.
Operation IDskill.list
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.PublicRefdataSkill.Info[]required400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedResource
rpc
Plugin RPC routes.
post/api/rpc/{rpcID}/{method}Call a plugin RPC
Dispatch a method to the currently registered RPC at the requested location.
Operation IDrpc.call
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
rpcIDrequired | path | string | No description |
methodrequired | path | string | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Request body required
application/jsonRpc.InputResponses
200Rpc.Outputapplication/jsonRpc.Output400RpcError | InvalidRequestErrorapplication/jsonRpcErrorEncoded | InvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded500RpcInternalErrorapplication/jsonRpcInternalErrorEncodedResource
event
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.
Operation IDevent.subscribe
Responses
200Successtext/event-streamobject400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedResource
pty
Experimental location-scoped PTY routes.
get/api/ptyList PTY sessions
List PTY sessions for a location, including exited sessions retained until removal.
Operation IDpty.list
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.PublicRefdataPty[]required400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedpost/api/ptyCreate PTY session
Create a pseudo-terminal session for a location.
Operation IDpty.create
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Request body required
application/jsonobjectcommandstringargsstring[]stringcwdstringtitlestringenvobjectstringResponses
200Successapplication/jsonobjectlocationLocation.PublicRefdataPty400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedget/api/pty/{ptyID}Get PTY session
Get one PTY session, including its exit code once exited.
Operation IDpty.get
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
ptyIDrequired | path | stringpattern ^pty | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.PublicRefdataPty400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404PtyNotFoundErrorapplication/jsonPtyNotFoundErrorEncodedput/api/pty/{ptyID}Update PTY session
Update the title or viewport size of one PTY session.
Operation IDpty.update
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
ptyIDrequired | path | stringpattern ^pty | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Request body required
application/jsonobjecttitlestringsizeobjectrowsintegerrequiredcolsintegerrequiredResponses
200Successapplication/jsonobjectlocationLocation.PublicRefdataPty400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404PtyNotFoundErrorapplication/jsonPtyNotFoundErrorEncodeddelete/api/pty/{ptyID}Remove PTY session
Terminate and remove one PTY session.
Operation IDpty.remove
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
ptyIDrequired | path | stringpattern ^pty | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Responses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404PtyNotFoundErrorapplication/jsonPtyNotFoundErrorEncodedpost/api/pty/{ptyID}/connect-tokenCreate PTY WebSocket token
Create a short-lived single-use ticket for opening a PTY WebSocket connection.
Operation IDpty.connect.token
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
ptyIDrequired | path | stringpattern ^pty | No description |
x-opencode-ticket | header | string | nullstringor null | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.PublicRef400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded403ForbiddenErrorapplication/jsonForbiddenErrorEncoded404PtyNotFoundErrorapplication/jsonPtyNotFoundErrorEncodedget/api/pty/{ptyID}/connectConnect to PTY session
Establish a WebSocket connection streaming PTY output and accepting terminal input.
Operation IDpty.connect
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
ptyIDrequired | path | stringpattern ^pty | No description |
location[directory] | query | string | No description |
cursor | query | string | No description |
ticket | query | string | No description |
Responses
200Successapplication/jsonboolean400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded403ForbiddenErrorapplication/jsonForbiddenErrorEncoded404PtyNotFoundErrorapplication/jsonPtyNotFoundErrorEncodedResource
persistentPty
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.
Operation IDserver.experimental.persistentPty.read
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | stringpattern ^ses | No description |
lines | query | PersistentPty.ReadLinesEncoded | null | No description |
Responses
200Successapplication/jsonobjectdataPersistentPty.ReadResult | nullrequirednull400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded503ServiceUnavailableErrorapplication/jsonServiceUnavailableErrorEncodedget/api/experimental/session/{sessionID}/terminal
Operation IDserver.experimental.persistentPty.list
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | stringpattern ^ses | No description |
Responses
200Successapplication/jsonobjectdataPersistentPty.Info[]required400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded | InvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded503ServiceUnavailableErrorapplication/jsonServiceUnavailableErrorEncodedpost/api/experimental/session/{sessionID}/terminal
Operation IDserver.experimental.persistentPty.create
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | stringpattern ^ses | No description |
Request body required
application/jsonPersistentPty.CreateInputResponses
200Successapplication/jsonobject400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded | InvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded503ServiceUnavailableErrorapplication/jsonServiceUnavailableErrorEncodedpost/api/experimental/persistent-pty/shutdown
Operation IDserver.experimental.persistentPty.shutdown
Responses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded503ServiceUnavailableErrorapplication/jsonServiceUnavailableErrorEncodedpost/api/experimental/persistent-pty/handoff
Operation IDserver.experimental.persistentPty.handoff
Responses
200Successapplication/jsonobjecthandoffPersistentPty.Handoff | nullrequirednull400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded503ServiceUnavailableErrorapplication/jsonServiceUnavailableErrorEncodedget/api/experimental/persistent-pty/{ptyID}
Operation IDserver.experimental.persistentPty.get
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
ptyIDrequired | path | stringpattern ^pty | No description |
Responses
200Successapplication/jsonobject400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404PtyNotFoundErrorapplication/jsonPtyNotFoundErrorEncoded503ServiceUnavailableErrorapplication/jsonServiceUnavailableErrorEncodedput/api/experimental/persistent-pty/{ptyID}
Operation IDserver.experimental.persistentPty.update
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
ptyIDrequired | path | stringpattern ^pty | No description |
Request body required
application/jsonPersistentPty.UpdateInputResponses
200Successapplication/jsonobject400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404PtyNotFoundErrorapplication/jsonPtyNotFoundErrorEncoded503ServiceUnavailableErrorapplication/jsonServiceUnavailableErrorEncodeddelete/api/experimental/persistent-pty/{ptyID}
Operation IDserver.experimental.persistentPty.remove
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
ptyIDrequired | path | stringpattern ^pty | No description |
Responses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404PtyNotFoundErrorapplication/jsonPtyNotFoundErrorEncoded503ServiceUnavailableErrorapplication/jsonServiceUnavailableErrorEncodedget/api/experimental/persistent-pty/{ptyID}/snapshot
Operation IDserver.experimental.persistentPty.snapshot
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
ptyIDrequired | path | stringpattern ^pty | No description |
Responses
200Successapplication/jsonobject400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404PtyNotFoundErrorapplication/jsonPtyNotFoundErrorEncoded503ServiceUnavailableErrorapplication/jsonServiceUnavailableErrorEncodedpost/api/experimental/persistent-pty/{ptyID}/connect-token
Operation IDserver.experimental.persistentPty.connectToken
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
ptyIDrequired | path | stringpattern ^pty | No description |
x-opencode-ticket | header | string | nullstringor null | No description |
Responses
200Successapplication/jsonobject400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded403ForbiddenErrorapplication/jsonForbiddenErrorEncoded404PtyNotFoundErrorapplication/jsonPtyNotFoundErrorEncoded503ServiceUnavailableErrorapplication/jsonServiceUnavailableErrorEncodedget/api/experimental/persistent-pty/{ptyID}/connectConnect to a persistent PTY
Stream persistent PTY output through the OpenCode server.
Operation IDpersistentPty.connect
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
ptyIDrequired | path | stringpattern ^pty | No description |
cursor | query | string | No description |
role | query | string | No description |
attachment_id | query | string | No description |
takeover | query | string | No description |
input_protocol | query | string | No description |
ticket | query | string | No description |
Responses
200Successapplication/jsonboolean400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded403ForbiddenErrorapplication/jsonForbiddenErrorEncoded404PtyNotFoundErrorapplication/jsonPtyNotFoundErrorEncoded503ServiceUnavailableErrorapplication/jsonServiceUnavailableErrorEncodedResource
shell
Experimental location-scoped shell command routes.
get/api/shellList running shell commands
List currently running shell commands for a location. Exited commands are not included.
Operation IDshell.list
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.PublicRefdataShell.Info[]required400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedpost/api/shellRun shell command
Spawn one non-interactive shell command for a location. Combined stdout/stderr is captured to a file pageable via output.
Operation IDshell.create
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Request body required
application/jsonobjectcommandstringrequiredcwdstringtimeoutintegerrequiredmetadataobjectResponses
200Successapplication/jsonobjectlocationLocation.PublicRefdataShell.Info400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedget/api/shell/{id}Get shell command
Get one shell command, including its status and exit code once exited.
Operation IDshell.get
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
idrequired | path | stringpattern ^sh_ | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.PublicRefdataShell.Info400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404ShellNotFoundErrorapplication/jsonShellNotFoundErrorEncodeddelete/api/shell/{id}Remove shell command
Terminate and remove one shell command and its retained output.
Operation IDshell.remove
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
idrequired | path | stringpattern ^sh_ | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Responses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404ShellNotFoundErrorapplication/jsonShellNotFoundErrorEncodedpatch/api/shell/{id}/timeoutUpdate shell timeout
Replace a running shell command's timeout from now, or clear it with zero.
Operation IDshell.timeout
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
idrequired | path | stringpattern ^sh_ | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Request body required
application/jsonobjecttimeoutintegerrequiredResponses
200Successapplication/jsonobjectlocationLocation.PublicRefdataShell.Info400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404ShellNotFoundErrorapplication/jsonShellNotFoundErrorEncodedget/api/shell/{id}/outputRead shell output
Page through captured combined output by absolute byte cursor.
Operation IDshell.output
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
idrequired | path | stringpattern ^sh_ | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
cursor | query | stringpattern ^[+-]?\d*\.?\d+(?:[Ee][+-]?\d+)?$ | No description |
limit | query | stringpattern ^[+-]?\d*\.?\d+(?:[Ee][+-]?\d+)?$ | No description |
Responses
200Successapplication/jsonobjectlocationLocation.PublicRefdataobjectrequiredoutputstringrequiredcursorintegerrequiredsizeintegerrequiredtruncatedbooleanrequired400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404ShellNotFoundErrorapplication/jsonShellNotFoundErrorEncodedResource
reference
Location-scoped project references.
get/api/referenceList references
List references available in the requested location.
Operation IDreference.list
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.PublicRefdataReference.Info[]required400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedResource
worktree
Location-scoped worktree management routes.
get/api/worktreeList worktrees
Discover worktrees through the requested location's strategies and return its project's inventory.
Operation IDworktree.list
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Responses
200Worktree.Listapplication/jsonWorktree.List400WorktreeError | InvalidRequestErrorapplication/jsonWorktreeErrorEncoded | InvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedpost/api/worktreeCreate worktree
Create a local worktree using the location's registered strategy and directory defaults, then run the project's setup script.
Operation IDworktree.create
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Request body required
application/jsonWorktree.CreateInputResponses
200Worktree.Infoapplication/jsonWorktree.Info400WorktreeError | InvalidRequestErrorapplication/jsonWorktreeErrorEncoded | InvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodeddelete/api/worktreeRemove worktree
Remove a managed worktree from the requested location's project using its recorded strategy.
Operation IDworktree.remove
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Request body required
application/jsonWorktree.RemoveInputResponses
204<No Content>400WorktreeError | InvalidRequestErrorapplication/jsonWorktreeErrorEncoded | InvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedpost/api/worktree/refreshRefresh worktrees
Discover worktrees from the requested location and reconcile the shared project inventory.
Operation IDworktree.refresh
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Responses
204<No Content>400WorktreeError | InvalidRequestErrorapplication/jsonWorktreeErrorEncoded | InvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedResource
vcs
Location-scoped version control routes.
get/api/vcsVCS info
Get current and default branch information for the requested location.
Operation IDvcs.get
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.PublicRefdataVcs.Info400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedget/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.
Operation IDvcs.base
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.PublicRefdataVcs.Base | nullrequirednull400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded503ServiceUnavailableErrorapplication/jsonServiceUnavailableErrorEncodedget/api/vcs/statusVCS status
List uncommitted working-copy changes relative to the requested location.
Operation IDvcs.status
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.PublicRefdataVcs.FileStatus[]required400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedget/api/vcs/branchesVCS branches
List local and remote branches available at the requested location.
Operation IDvcs.branches
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
search | query | string | nullstringor null | No description |
limit | query | string | nullstringor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.PublicRefdataVcs.BranchList400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedget/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.
Operation IDvcs.diff
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
moderequired | query | Vcs.Mode | No description |
base | query | string | No description |
context | query | string | nullstringor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.PublicRefdataFileDiff.Info[]required400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded503ServiceUnavailableErrorapplication/jsonServiceUnavailableErrorEncodedResource
debug
get/api/debug/locationList loaded locations
List locations currently loaded by the server.
Operation IDdebug.location.list
Responses
200Successapplication/jsonLocation.PublicRef[]400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodeddelete/api/debug/locationEvict a loaded location
Dispose the requested location's cached services so its next use boots them fresh.
Operation IDdebug.location.evict
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Responses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedResource
migration
get/api/experimental/migration/v1Get V1 migration status
Return the progress of the V1 to V2 session history migration.
Operation IDexperimental.migration.v1.status
Responses
200Successapplication/jsonobject | object | objectobjectstatus"required" | "completed"required"required" | "completed"objectstatus"running"required"running"progressobjectrequiredlabelstringrequirednumeratorinteger | nullintegernulldenominatorinteger | nullintegernullobjectstatus"error"required"error"errorstringrequired400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedResource
websearch
Location-scoped web search routes.
get/api/websearch/providerList web search providers
Return the registered web search providers.
Operation IDwebsearch.providers
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.PublicRefdataWebSearch.Provider[]required400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded503ServiceUnavailableErrorapplication/jsonServiceUnavailableErrorEncodedpost/api/websearchSearch the web
Run one web search through the selected provider. Specify a provider to override the configured default.
Operation IDwebsearch.query
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Request body required
application/jsonobjectquerystringrequiredproviderIDstringResponses
200Successapplication/jsonobjectlocationLocation.PublicRef400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded | InvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded503ServiceUnavailableErrorapplication/jsonServiceUnavailableErrorEncodedResource
config
Location-scoped configuration routes.
get/api/configGet configuration
Return configuration documents and discovery sources for the requested location, from lowest to highest priority.
Operation IDconfig.get
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonConfig.Entry[]400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedget/api/config/shellList available shells
Return shells available to terminal and agent execution.
Operation IDconfig.shells
Responses
200Successapplication/jsonConfigShell.Option[]400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedpatch/api/experimental/configUpdate global configuration
Patch supported fields in the highest-precedence global configuration document.
Operation IDexperimental.config.update
Request body required
application/jsonConfig.PatchResponses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedComponents
Schemas
Reusable data types referenced by API operations.
Agent.Colorstring
stringAgent.Infoobject
objectidstringrequirednamestringrequiredmodelModel.RefrequestProvider.Requestsystemstringdescriptionstringmode"subagent" | "primary" | "all"required"subagent" | "primary" | "all"hiddenbooleanrequiredcolorAgent.ColorstepsintegerpermissionsPermission.RulesetAgentNotFoundErrorEncodedobject
object_tag"AgentNotFoundError"required"AgentNotFoundError"agentIDstringrequiredmessagestringrequiredCommand.Infoobject
objectnamestringrequireddescriptionstringCommandExecutionErrorEncodedobject
object_tag"CommandExecutionError"required"CommandExecutionError"commandstringrequiredmessagestringrequiredCommandNotFoundErrorEncodedobject
object_tag"CommandNotFoundError"required"CommandNotFoundError"commandstringrequiredmessagestringrequiredConfig.AgentEncodedobject
objectmodelstring | objectstringobjectproviderIDstringrequiredmodelstringrequiredvariantstringrequestobjectheadersobjectstringbodyobjectsystemstringdescriptionstringmode"subagent" | "primary" | "all""subagent" | "primary" | "all"hiddenbooleancolorstringstepsintegerdisabledbooleanpermissionsPermission.RulesetConfig.CommandEncodedobject
objecttemplatestringrequireddescriptionstringagentstringmodelstring | objectstringobjectproviderIDstringrequiredmodelstringrequiredvariantstringsubagentbooleansubtaskbooleanDeprecated alias for subagent.
Config.DirectoryEncodedobject
objecttype"directory"required"directory"pathstringrequiredConfig.DocumentEncodedobject
objectConfig.EntryConfig.DocumentEncoded | Config.DirectoryEncoded
Config.DocumentEncoded | Config.DirectoryEncodedConfig.Formatter.EntryEncodedobject
objectdisabledbooleancommandstring[]stringenvironmentobjectstringextensionsstring[]stringConfig.InfoEncodedobject
object$schemastringshellstringmodelstring | objectstringobjectproviderIDstringrequiredmodelstringrequiredvariantstringdefault_agentstringupdate"disable" | "notify" | "auto""disable" | "notify" | "auto"share"manual" | "auto" | "disabled""manual" | "auto" | "disabled"enterpriseobjecturlstringusernamestringpermissionsPermission.Rulesetagentsobjectsnapshotsbooleanwatcherobjectignorestring[]stringformatterboolean | objectbooleanobjectlspboolean | objectbooleanobjectobject | Config.LSP.ServerEncodedobjectdisabledtruerequiredtruemediaobjectimageobjectauto_resizebooleanmax_widthintegermax_heightintegermax_base64_bytesintegertool_outputobjectmax_linesintegermax_bytesintegermcpobjecttimeoutobjectstartupintegercatalogintegerexecutionintegerserversobjectMcp.LocalConfigEncoded | Mcp.RemoteConfigEncodedcompactionobjectautobooleankeepobjecttokensintegerbufferintegerskillsstring[]stringcommandsobjectinstructionsstring[]stringreferencesobjectstring | Config.Reference.GitEncoded | Config.Reference.LocalEncodedwebsearchfalse | ConfigWebSearch.InfoEncodedfalsefalsepluginsstring | Config.Plugin.EntryEncoded[]string | Config.Plugin.EntryEncodedstringworktreeConfig.Worktreewarmingboolean | Config.WarmingEncodedbooleanprovidersobjectexperimentalobjectportable_shell_scannerbooleansubagent_depthintegerpoliciesobject[]objectaction"provider.use"required"provider.use"resourcestringrequiredeffect"allow" | "deny"required"allow" | "deny"Config.LSP.ServerEncodedobject
objectcommandstring[]requiredstringextensionsstring[]stringdisabledbooleanenvobjectstringinitializationobjectConfig.Model.CostEncodedobject
objecttierobjecttype"context"required"context"sizeintegerrequiredcacheobjectConfig.ModelEncodedobject
objectcompactionProvider.CompactionwebsocketbooleanmodelIDstringfamilystringnamestringcompatibilityModel.CompatibilitypackagestringsettingsobjectheadersobjectstringbodyobjectcapabilitiesModel.Capabilitiesvariantsobject[]objectidstringrequiredsettingsobjectheadersobjectstringbodyobjectcostConfig.Model.CostEncoded | Config.Model.CostEncoded[]Config.Model.CostEncoded[]disabledbooleanlimitobjectcontextintegerinputintegeroutputintegerConfig.Patchobject
objectshellstring | nullrequiredstringnullConfig.Plugin.EntryEncodedobject
objectpackagestringrequiredoptionsobjectConfig.ProviderEncodedobject
objectcompactionProvider.Compactionwebsocketbooleancanonicalstringnamestringenvstring[]stringpackagestringsettingsobjectheadersobjectstringbodyobjectmodelsobjectConfig.Reference.GitEncodedobject
objectrepositorystringrequiredbranchstringdescriptionstringhiddenbooleanConfig.Reference.LocalEncodedobject
objectpathstringrequireddescriptionstringhiddenbooleanConfig.WarmingEncodedobject
objectpromptstringintervalstringdurationstringConfig.Worktreeobject
objectdirectorystringrequiredConfigShell.Optionobject
objectpathstringrequirednamestringrequiredacceptablebooleanrequiredConfigWebSearch.InfoEncodedobject
objectprovider"random" | stringrequired"random"Reuse a randomly selected provider until it is rate limited, then switch to another available provider.
"random"stringConflictErrorEncodedobject
object_tag"ConflictError"required"ConflictError"messagestringrequiredresourcestring | nullstringnullConnection.CredentialInfoobject
objecttype"credential"required"credential"idstringrequiredlabelstringrequiredConnection.EnvInfoobject
objecttype"env"required"env"namestringrequiredConnection.InfoConnection.CredentialInfo | Connection.EnvInfo
Connection.CredentialInfo | Connection.EnvInfoFileDiff.Infoobject
objectfilestringrequiredpatchstringrequiredadditionsintegerrequireddeletionsintegerrequiredstatus"added" | "deleted" | "modified"required"added" | "deleted" | "modified"FileNotFoundErrorEncodedobject
object_tag"FileNotFoundError"required"FileNotFoundError"pathstringrequiredmessagestringrequiredFileSystem.Entryobject
objectpathstringrequiredtype"file" | "directory"required"file" | "directory"ForbiddenErrorEncodedobject
object_tag"ForbiddenError"required"ForbiddenError"messagestringrequiredForm.Answerobject
objectForm.BooleanFieldobject
objectkeystringrequiredtitlestringdescriptionstringrequiredbooleanwhenForm.When[]type"boolean"required"boolean"defaultbooleanForm.CreatePayloadobject
objectForm.ExternalFieldobject
objectkeystringrequiredtype"external"required"external"urlstringrequiredtitlestringdescriptionstringForm.FieldForm.StringField | Form.NumberField | Form.IntegerField | Form.BooleanField | Form.MultiselectField | Form.ExternalField
Form.StringField | Form.NumberField | Form.IntegerField | Form.BooleanField | Form.MultiselectField | Form.ExternalFieldForm.FieldsForm.Field[]
Form.Fields_1Form.Field[]
Form.Fields_2Form.Field[]
Form.Infoobject
objectidstringrequiredsessionIDstringrequiredtitlestringrequiredmetadataForm.MetadatafieldsForm.Fields_2Form.IntegerFieldobject
objectkeystringrequiredtitlestringdescriptionstringrequiredbooleanwhenForm.When[]type"integer"required"integer"minimumnumber | "Infinity" | "-Infinity" | "NaN"number"Infinity" | "-Infinity" | "NaN""Infinity" | "-Infinity" | "NaN"maximumnumber | "Infinity" | "-Infinity" | "NaN"number"Infinity" | "-Infinity" | "NaN""Infinity" | "-Infinity" | "NaN"defaultnumber | "Infinity" | "-Infinity" | "NaN"number"Infinity" | "-Infinity" | "NaN""Infinity" | "-Infinity" | "NaN"Form.Metadataobject
objectForm.MultiselectFieldobject
objectkeystringrequiredtitlestringdescriptionstringrequiredbooleanwhenForm.When[]type"multiselect"required"multiselect"optionsForm.Option[]requiredminItemsintegermaxItemsintegercustombooleandefaultstring[]stringForm.NumberFieldobject
objectkeystringrequiredtitlestringdescriptionstringrequiredbooleanwhenForm.When[]type"number"required"number"minimumnumber | "Infinity" | "-Infinity" | "NaN"number"Infinity" | "-Infinity" | "NaN""Infinity" | "-Infinity" | "NaN"maximumnumber | "Infinity" | "-Infinity" | "NaN"number"Infinity" | "-Infinity" | "NaN""Infinity" | "-Infinity" | "NaN"defaultnumber | "Infinity" | "-Infinity" | "NaN"number"Infinity" | "-Infinity" | "NaN""Infinity" | "-Infinity" | "NaN"Form.Optionobject
objectvaluestringrequiredlabelstringrequireddescriptionstringForm.Replyobject
objectanswerForm.AnswerForm.Stateobject | object | object
object | object | objectobjectstatus"pending"required"pending"objectstatus"answered"required"answered"answerForm.Answerobjectstatus"cancelled"required"cancelled"Form.StringFieldobject
objectkeystringrequiredtitlestringdescriptionstringrequiredbooleanwhenForm.When[]type"string"required"string"format"email" | "uri" | "date" | "date-time""email" | "uri" | "date" | "date-time"minLengthintegermaxLengthintegerpatternstringplaceholderstringdefaultstringoptionsForm.Option[]custombooleanForm.Valuestring | number | "Infinity" | "-Infinity" | "NaN" | boolean | string[]
string | number | "Infinity" | "-Infinity" | "NaN" | boolean | string[]stringnumber | "Infinity" | "-Infinity" | "NaN"number"Infinity" | "-Infinity" | "NaN""Infinity" | "-Infinity" | "NaN"booleanstring[]stringForm.Whenobject
objectkeystringrequiredop"eq" | "neq"required"eq" | "neq"valuestring | number | "Infinity" | "-Infinity" | "NaN" | booleanrequiredstringnumber | "Infinity" | "-Infinity" | "NaN"number"Infinity" | "-Infinity" | "NaN""Infinity" | "-Infinity" | "NaN"booleanFormAlreadySettledErrorEncodedobject
object_tag"FormAlreadySettledError"required"FormAlreadySettledError"idstringrequiredmessagestringrequiredFormInvalidAnswerErrorEncodedobject
object_tag"FormInvalidAnswerError"required"FormInvalidAnswerError"idstringrequiredmessagestringrequiredFormNotFoundErrorEncodedobject
object_tag"FormNotFoundError"required"FormNotFoundError"idstringrequiredmessagestringrequiredGenerateTextResponseobject
objectdataobjectrequiredtextstringrequiredInstructionEntry.Infoobject
objectvalueobjectrequiredJSON value attached to the session's instructions
InstructionEntry.Keystring
stringInstruction entry key (lowercase alphanumerics plus . _ -)
InstructionEntryValueTooLargeErrorEncodedobject
object_tag"InstructionEntryValueTooLargeError"required"InstructionEntryValueTooLargeError"actualBytesintegerrequiredmaxBytesintegerrequiredmessagestringrequiredIntegration.AttemptEncodedobject
objectattemptIDstringrequiredurlstringrequiredinstructionsstringrequiredmode"auto" | "code"required"auto" | "code"timeobjectrequiredcreatednumber | "Infinity" | "-Infinity" | "NaN"requirednumber"Infinity" | "-Infinity" | "NaN""Infinity" | "-Infinity" | "NaN"expiresnumber | "Infinity" | "-Infinity" | "NaN"requirednumber"Infinity" | "-Infinity" | "NaN""Infinity" | "-Infinity" | "NaN"Integration.AttemptStatusobject | object | object | object
object | object | object | objectobjectstatus"pending"required"pending"timeobjectrequiredcreatednumber | "Infinity" | "-Infinity" | "NaN"requirednumber"Infinity" | "-Infinity" | "NaN""Infinity" | "-Infinity" | "NaN"expiresnumber | "Infinity" | "-Infinity" | "NaN"requirednumber"Infinity" | "-Infinity" | "NaN""Infinity" | "-Infinity" | "NaN"objectstatus"complete"required"complete"timeobjectrequiredcreatednumber | "Infinity" | "-Infinity" | "NaN"requirednumber"Infinity" | "-Infinity" | "NaN""Infinity" | "-Infinity" | "NaN"expiresnumber | "Infinity" | "-Infinity" | "NaN"requirednumber"Infinity" | "-Infinity" | "NaN""Infinity" | "-Infinity" | "NaN"objectstatus"failed"required"failed"messagestringrequiredtimeobjectrequiredcreatednumber | "Infinity" | "-Infinity" | "NaN"requirednumber"Infinity" | "-Infinity" | "NaN""Infinity" | "-Infinity" | "NaN"expiresnumber | "Infinity" | "-Infinity" | "NaN"requirednumber"Infinity" | "-Infinity" | "NaN""Infinity" | "-Infinity" | "NaN"objectstatus"expired"required"expired"timeobjectrequiredcreatednumber | "Infinity" | "-Infinity" | "NaN"requirednumber"Infinity" | "-Infinity" | "NaN""Infinity" | "-Infinity" | "NaN"expiresnumber | "Infinity" | "-Infinity" | "NaN"requirednumber"Infinity" | "-Infinity" | "NaN""Infinity" | "-Infinity" | "NaN"Integration.CommandAttemptobject
objectattemptIDstringrequiredtimeobjectrequiredcreatednumber | "Infinity" | "-Infinity" | "NaN"requirednumber"Infinity" | "-Infinity" | "NaN""Infinity" | "-Infinity" | "NaN"expiresnumber | "Infinity" | "-Infinity" | "NaN"requirednumber"Infinity" | "-Infinity" | "NaN""Infinity" | "-Infinity" | "NaN"Integration.CommandAttemptStatusobject | object | object | object
object | object | object | objectobjectstatus"pending"required"pending"messagestringtimeobjectrequiredcreatednumber | "Infinity" | "-Infinity" | "NaN"requirednumber"Infinity" | "-Infinity" | "NaN""Infinity" | "-Infinity" | "NaN"expiresnumber | "Infinity" | "-Infinity" | "NaN"requirednumber"Infinity" | "-Infinity" | "NaN""Infinity" | "-Infinity" | "NaN"objectstatus"complete"required"complete"timeobjectrequiredcreatednumber | "Infinity" | "-Infinity" | "NaN"requirednumber"Infinity" | "-Infinity" | "NaN""Infinity" | "-Infinity" | "NaN"expiresnumber | "Infinity" | "-Infinity" | "NaN"requirednumber"Infinity" | "-Infinity" | "NaN""Infinity" | "-Infinity" | "NaN"objectstatus"failed"required"failed"messagestringrequiredtimeobjectrequiredcreatednumber | "Infinity" | "-Infinity" | "NaN"requirednumber"Infinity" | "-Infinity" | "NaN""Infinity" | "-Infinity" | "NaN"expiresnumber | "Infinity" | "-Infinity" | "NaN"requirednumber"Infinity" | "-Infinity" | "NaN""Infinity" | "-Infinity" | "NaN"objectstatus"expired"required"expired"timeobjectrequiredcreatednumber | "Infinity" | "-Infinity" | "NaN"requirednumber"Infinity" | "-Infinity" | "NaN""Infinity" | "-Infinity" | "NaN"expiresnumber | "Infinity" | "-Infinity" | "NaN"requirednumber"Infinity" | "-Infinity" | "NaN""Infinity" | "-Infinity" | "NaN"Integration.CommandMethodobject
objectidstringrequiredtype"command"required"command"labelstringrequiredcommandstring[]requiredstringIntegration.EnvMethodobject
objecttype"env"required"env"namesstring[]requiredstringIntegration.Infoobject
objectidstringrequirednamestringrequiredmetadataobjectmethodsIntegration.Method[]requiredconnectionsConnection.Info[]requiredIntegration.KeyMethodobject
objectIntegration.MethodIntegration.OAuthMethod | Integration.CommandMethod | Integration.KeyMethod | Integration.EnvMethod
Integration.OAuthMethod | Integration.CommandMethod | Integration.KeyMethod | Integration.EnvMethodIntegration.OAuthMethodobject
objectIntegrationAttemptNotFoundErrorEncodedobject
object_tag"IntegrationAttemptNotFoundError"required"IntegrationAttemptNotFoundError"integrationIDstringrequiredattemptIDstringrequiredmessagestringrequiredIntegrationMethodNotFoundErrorEncodedobject
object_tag"IntegrationMethodNotFoundError"required"IntegrationMethodNotFoundError"integrationIDstringrequiredmethodIDstringrequiredmessagestringrequiredIntegrationNotFoundErrorEncodedobject
object_tag"IntegrationNotFoundError"required"IntegrationNotFoundError"integrationIDstringrequiredmessagestringrequiredInvalidCursorErrorEncodedobject
object_tag"InvalidCursorError"required"InvalidCursorError"messagestringrequiredInvalidRequestErrorEncodedobject
object_tag"InvalidRequestError"required"InvalidRequestError"messagestringrequiredkindstring | nullstringnullfieldstring | nullstringnullLocation.PublicInfoobject
objectdirectorystringrequiredprojectobjectrequiredidstringrequireddirectorystringrequiredcanonicalstringrequiredLocation.PublicRefobject
objectdirectorystringrequiredMcp.LocalConfigEncodedobject
objecttype"local"required"local"commandstring[]requiredstringcwdstringenvironmentobjectstringdisabledbooleancodemodebooleantimeoutobjectstartupintegercatalogintegerexecutionintegerMcp.OAuthConfigEncodedobject
objectclient_idstringclient_secretstringscopestringcallback_portintegerredirect_uristringMcp.RemoteConfigEncodedobject
objecttype"remote"required"remote"urlstringrequiredheadersobjectstringoauthMcp.OAuthConfigEncoded | falsefalsefalsedisabledbooleancodemodebooleantimeoutobjectstartupintegercatalogintegerexecutionintegerMcp.Resourceobject
objectserverstringrequirednamestringrequireduristringrequireddescriptionstringmimeTypestringMcp.ResourceCatalogobject
objectresourcesMcp.Resource[]requiredtemplatesMcp.ResourceTemplate[]requiredMcp.ResourceTemplateobject
objectserverstringrequirednamestringrequireduriTemplatestringrequireddescriptionstringmimeTypestringMcp.Serverobject
objectnamestringrequiredstatusMcp.Status.Connected | Mcp.Status.Pending | Mcp.Status.Disabled | Mcp.Status.Failed | Mcp.Status.NeedsAuthrequiredintegrationIDstringMcp.Status.Connectedobject
objectstatus"connected"required"connected"Mcp.Status.Disabledobject
objectstatus"disabled"required"disabled"Mcp.Status.Failedobject
objectstatus"failed"required"failed"errorstringrequiredMcp.Status.NeedsAuthobject
objectstatus"needs_auth"required"needs_auth"Mcp.Status.Pendingobject
objectstatus"pending"required"pending"McpServerNotFoundErrorEncodedobject
object_tag"McpServerNotFoundError"required"McpServerNotFoundError"serverstringrequiredmessagestringrequiredMessageNotFoundErrorEncodedobject
object_tag"MessageNotFoundError"required"MessageNotFoundError"sessionIDstringrequiredmessageIDstringrequiredmessagestringrequiredModel.Capabilitiesobject
objecttoolsbooleanrequiredinputstring[]requiredstringoutputstring[]requiredstringresponsesWebsocketsbooleanModel.Compatibilityobject
objectreasoningFieldModel.ReasoningFieldrequireReasoningbooleanmaxTokensFieldModel.MaxTokensFieldrequireFinishReasonbooleanrequireAssistantAfterToolbooleanModel.Costobject
objecttierobjecttype"context"required"context"sizeintegerrequiredcacheobjectrequiredModel.Infoobject
objectidstringrequiredmodelIDstringrequiredproviderIDstringrequiredcanonicalstringfamilystringnamestringrequiredcompatibilityModel.CompatibilitypackagestringcompactionProvider.CompactionwebsocketbooleansettingsobjectheadersobjectstringbodyobjectcapabilitiesModel.CapabilitiesvariantsModel.Variant[]requiredtimeobjectrequiredreleasednumberrequiredcostModel.Cost[]requiredstatus"alpha" | "beta" | "deprecated" | "active"required"alpha" | "beta" | "deprecated" | "active"enabledbooleanrequiredlimitobjectrequiredcontextintegerrequiredinputintegeroutputintegerrequiredModel.MaxTokensField"max_completion_tokens" | "max_tokens"
"max_completion_tokens" | "max_tokens""max_completion_tokens" | "max_tokens"Model.ReasoningField"reasoning" | "reasoning_content" | "reasoning_text" | string
"reasoning" | "reasoning_content" | "reasoning_text" | string"reasoning" | "reasoning_content" | "reasoning_text""reasoning" | "reasoning_content" | "reasoning_text"stringModel.Refobject
objectidstringrequiredproviderIDstringrequiredvariantstringModel.Variantobject
objectidstringrequiredsettingsobjectheadersobjectstringbodyobjectMoney.USDnumber
numberMoney.USDPerMillionTokensnumber
numberPermission.Effect"allow" | "deny" | "ask"
"allow" | "deny" | "ask""allow" | "deny" | "ask"Permission.Reply"once" | "always" | "reject"
"once" | "always" | "reject""once" | "always" | "reject"Permission.Requestobject
objectidstringrequiredsessionIDstringrequiredactionstringrequiredresourcesstring[]requiredstringsavestring[]stringmetadataobjectsourcePermission.SourcemessagestringPermission.Ruleobject
objectPermission.RulesetPermission.Rule[]
Permission.Rule[]Permission.Sourceobject
objectobjecttype"tool"required"tool"messageIDstringrequiredidstringrequiredPermissionNotFoundErrorEncodedobject
object_tag"PermissionNotFoundError"required"PermissionNotFoundError"requestIDstringrequiredmessagestringrequiredPermissionSaved.Infoobject
objectidstringrequiredprojectIDstringrequiredactionstringrequiredresourcestringrequiredPersistentPty.CreateInputobject
objectcommandstringargsstring[]requiredstringcwdstringtitlestringrequiredenvobjectrequiredstringsizeobjectcolsintegerrequiredrowsintegerrequiredPersistentPty.Handoffobject
objectdirectorystringrequiredinstanceIDstringrequiredticketstringrequiredexpiresAtnumber | "Infinity" | "-Infinity" | "NaN"requirednumber"Infinity" | "-Infinity" | "NaN""Infinity" | "-Infinity" | "NaN"PersistentPty.Infoobject
objectidstringrequiredtitlestringrequiredcommandstringrequiredargsstring[]requiredstringcwdstringrequiredstatus"running" | "exited"required"running" | "exited"pidintegerrequiredexitCodeintegersessionIDstringrequiredforegroundProcessstring | nullrequiredstringnullsizeobjectrequiredcolsintegerrequiredrowsintegerrequiredoutputobjectrequiredheadintegerrequiredtailintegerrequiredPersistentPty.ReadLinesEncodedstring
stringPersistentPty.ReadResultobject
objectptyIDstringrequiredtitlestringrequiredcwdstringrequiredforegroundProcessstring | nullrequiredstringnullscreenobjectrequiredtextstringrequiredcolsintegerrequiredrowsintegerrequiredcursorobjectrequiredxintegerrequiredyintegerrequiredPersistentPty.Snapshotobject
objecttextstringrequiredcheckpointstring<byte>requiredcursorobjectrequiredxintegerrequiredyintegerrequiredPersistentPty.UpdateInputobject
objectattachmentIDstringsizeobjectrequiredcolsintegerrequiredrowsintegerrequiredPlugin.Featuresobject
objectservertruetruetuitruetruerpctruetruePlugin.Infoobject
objectPlugin.Sourceobject | object | object | object
object | object | object | objectobjecttype"builtin"required"builtin"objecttype"package"required"package"targetstringrequiredversionstringoutdatedtruetrueupdatingtruetrueobjecttype"local"required"local"pathstringrequiredobjecttype"sdk"required"sdk"Plugin.Stateobject | object
object | objectobjectstatus"active"required"active"objectstatus"failed"required"failed"errorstringrequiredrefstringProjectobject
objectidstringrequiredcanonicalstringrequiredvcsProject.VcsnamestringiconProject.IconcommandsProject.CommandstimeProject.Timesandboxesstring[]requiredstringProject.Commandsobject
objectstartstringStartup script to run when creating a new workspace (worktree)
Project.Iconobject
objecturlstringoverridestringcolorstringProject.Timeobject
objectcreatedintegerrequiredupdatedintegerrequiredProject.Vcsstring
stringProjectNotFoundErrorEncodedobject
object_tag"ProjectNotFoundError"required"ProjectNotFoundError"projectIDstringrequiredmessagestringrequiredPrompt.AgentAttachmentobject
objectnamestringrequiredmentionPrompt.MentionPrompt.Base64string
stringPrompt.FileAttachmentobject
objectdataPrompt.Base64mimestringrequiredsourcePrompt.FileSourcenamestringdescriptionstringmentionPrompt.MentionPrompt.FileSourceobject | object
object | objectobjecttype"inline"required"inline"objecttype"uri"required"uri"uristringrequiredPrompt.Mentionobject
objectstartnumberrequiredendnumberrequiredtextstringrequiredPrompt.SkillAttachmentobject
objectPromptInput.FileAttachmentobject
objectPromptInput.SkillAttachmentobject
objectidstringrequiredmentionPrompt.MentionProvider.Compactionobject | object
object | objectobjectmode"local"required"local"objectmode"provider"required"provider"thresholdintegerProvider.Infoobject
objectidstringrequiredcanonicalstringintegrationIDstringnamestringrequiredactivation"auto" | "enabled" | "disabled"required"auto" | "enabled" | "disabled"packagestringrequiredcompactionProvider.CompactionwebsocketbooleansettingsobjectheadersobjectstringbodyobjectProvider.Requestobject
objectProvider.Settingsobject
objectProviderNotFoundErrorEncodedobject
object_tag"ProviderNotFoundError"required"ProviderNotFoundError"providerIDstringrequiredmessagestringrequiredPtyobject
objectidstringrequiredtitlestringrequiredcommandstringrequiredargsstring[]requiredstringcwdstringrequiredstatus"running" | "exited"required"running" | "exited"pidintegerrequiredexitCodeintegerPtyNotFoundErrorEncodedobject
object_tag"PtyNotFoundError"required"PtyNotFoundError"ptyIDstringrequiredmessagestringrequiredPtyTicket.ConnectTokenobject
objectticketstringrequiredexpires_inintegerrequiredReference.GitSourceobject
objecttype"git"required"git"repositorystringrequiredbranchstringReference.Infoobject
objectReference.LocalSourceobject
objecttype"local"required"local"pathstringrequiredReference.SourceReference.LocalSource | Reference.GitSource
Reference.LocalSource | Reference.GitSourceRpc.Inputobject
objectinputobjectRpc.Outputobject
objectoutputobjectRpcErrorEncodedobject
object_tag"RpcError"required"RpcError"typestringrequiredmessagestringrequireddataobject | nullobjectnullRpcInternalErrorEncodedobject
object_tag"RpcInternalError"required"RpcInternalError"type"rpc.internal" | "rpc.invalid_output"required"rpc.internal" | "rpc.invalid_output"messagestringrequireddataobject | nullobjectnullServerStatusobject
objectversionstringrequiredpidintegerrequiredurlsstring[]requiredstringSession.ForkBoundaryobject | object
object | objectobjecttype"before"required"before"messageIDstringrequiredobjecttype"through"required"through"messageIDstringrequiredSession.Inbox.Compactionobject
objectidstringrequiredsessionIDstringrequiredtimeCreatednumberrequiredtype"compaction"required"compaction"deliverySession.Inbox.DeliverySession.Inbox.CompactionPayloadobject | empty[]
object | empty[]objectempty[]Session.Inbox.Delivery"steer" | "queue"
"steer" | "queue""steer" | "queue"Session.Inbox.InfoSession.Inbox.User | Session.Inbox.Synthetic | Session.Inbox.Compaction | Session.Inbox.Move
Session.Inbox.User | Session.Inbox.Synthetic | Session.Inbox.Compaction | Session.Inbox.MoveSession.Inbox.Moveobject
objectidstringrequiredsessionIDstringrequiredtimeCreatednumberrequiredtype"move"required"move"deliverySession.Inbox.DeliverypayloadSession.Inbox.MovePayloadSession.Inbox.MovePayloadobject
objectSession.Inbox.Syntheticobject
objectidstringrequiredsessionIDstringrequiredtimeCreatednumberrequiredtype"synthetic"required"synthetic"deliverySession.Inbox.DeliverySession.Inbox.SyntheticPayloadobject
objecttextstringrequireddescriptionstringmetadataobjectSession.Inbox.Userobject
objectidstringrequiredsessionIDstringrequiredtimeCreatednumberrequiredtype"user"required"user"payloadSession.Inbox.UserPayloaddeliverySession.Inbox.DeliverySession.Inbox.UserPayloadobject
objecttextstringrequiredfilesPrompt.FileAttachment[]agentsPrompt.AgentAttachment[]skillsPrompt.SkillAttachment[]metadataobjectSession.Infoobject
objectidstringrequiredparentIDstringforkobjectsessionIDstringrequiredboundarySession.ForkBoundaryprojectIDstringrequiredagentstringmodelModel.RefcostMoney.USDtokensTokenUsage.Infooutcome"succeeded" | "failed" | "interrupted""succeeded" | "failed" | "interrupted"timeobjectrequiredcreatednumberrequiredupdatednumberrequiredidlenumberviewednumberarchivednumbertitlestringsubpathstringmetadataSession.MetadatapermissionsPermission.RulesetrevertSession.RevertlocationLocation.PublicRefSession.Message.AgentSelectedobject
objectidstringrequiredmetadataobjecttimeobjectrequiredcreatednumberrequiredtype"agent-switched"required"agent-switched"agentstringrequiredpreviousstringSession.Message.Assistantobject
objectidstringrequiredmetadataobjecttimeobjectrequiredcreatednumberrequiredstreamednumbercompletednumbertype"assistant"required"assistant"agentstringrequiredmodelModel.RefcontentSession.Message.Assistant.Text | Session.Message.Assistant.Reasoning | Session.Message.Assistant.Tool[]requiredSession.Message.Assistant.Text | Session.Message.Assistant.Reasoning | Session.Message.Assistant.Toolsnapshotobjectstartstringendstringfilesstring[]stringfinish"stop" | "length" | "tool-calls" | "content-filter" | "error" | "unknown""stop" | "length" | "tool-calls" | "content-filter" | "error" | "unknown"rawFinishstringproviderStateSession.Message.ProviderState_4costMoney.USDtokensTokenUsage.InfoSession.Message.Assistant.Reasoningobject
objecttype"reasoning"required"reasoning"textstringrequiredtimeobjectcreatednumberrequiredcompletednumberSession.Message.Assistant.Retryobject
objectSession.Message.Assistant.Textobject
objectSession.Message.Assistant.Toolobject
objecttype"tool"required"tool"idstringrequirednamestringrequiredexecutedbooleanproviderStateSession.Message.ProviderState_2providerResultStateSession.Message.ProviderState_3stateSession.Message.ToolState.Streaming | Session.Message.ToolState.Running | Session.Message.ToolState.Completed | Session.Message.ToolState.ErrorrequiredtimeobjectrequiredcreatednumberrequiredrannumbercompletednumberSession.Message.CompactionSession.Message.Compaction.Running | Session.Message.Compaction.Completed | Session.Message.Compaction.Failed
Session.Message.Compaction.Running | Session.Message.Compaction.Completed | Session.Message.Compaction.FailedSession.Message.Compaction.Completedobject
objecttype"compaction"required"compaction"idstringrequiredmetadataobjecttimeobjectrequiredcreatednumberrequiredstatus"completed"required"completed"reason"auto" | "manual"required"auto" | "manual"modelModel.RefproviderStateSession.Message.ProviderState_5summarystringrequiredrecentstringrequiredproviderContextSession.ProviderContextcostMoney.USDtokensTokenUsage.InfoSession.Message.Compaction.Failedobject
objecttype"compaction"required"compaction"idstringrequiredmetadataobjecttimeobjectrequiredcreatednumberrequiredstatus"failed"required"failed"reason"auto" | "manual"required"auto" | "manual"costMoney.USDtokensTokenUsage.InfoSession.Message.Compaction.Runningobject
objecttype"compaction"required"compaction"idstringrequiredmetadataobjecttimeobjectrequiredcreatednumberrequiredstatus"running"required"running"reason"auto" | "manual"required"auto" | "manual"summarystringrequiredrecentstringrequiredSession.Message.Idleobject
objectidstringrequiredmetadataobjecttimeobjectrequiredcreatednumberrequiredtype"idle"required"idle"outcome"succeeded" | "failed" | "interrupted"required"succeeded" | "failed" | "interrupted"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.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.IdleSession.Message.LocationSwitchedobject
objectidstringrequiredmetadataobjecttimeobjectrequiredcreatednumberrequiredtype"location-switched"required"location-switched"projectIDstringsubpathstringlocationLocation.PublicRefpreviousobject | nullobjectnullSession.Message.ModelSelectedobject
Session.Message.ProviderStateobject
objectSession.Message.ProviderState_1object
objectSession.Message.ProviderState_2object
objectSession.Message.ProviderState_3object
objectSession.Message.ProviderState_4object
objectSession.Message.ProviderState_5object
objectSession.Message.Shellobject
objectidstringrequiredmetadataobjecttimeobjectrequiredcreatednumberrequiredcompletednumbertype"shell"required"shell"shellIDstringrequiredcommandstringrequiredstatus"running" | "exited" | "timeout" | "killed"required"running" | "exited" | "timeout" | "killed"exitnumber | "Infinity" | "-Infinity" | "NaN"number"Infinity" | "-Infinity" | "NaN""Infinity" | "-Infinity" | "NaN"outputobjectoutputstringrequiredcursorintegerrequiredsizeintegerrequiredtruncatedbooleanrequiredSession.Message.Skillobject
objectidstringrequiredmetadataobjecttimeobjectrequiredcreatednumberrequiredtype"skill"required"skill"skillstringrequirednamestringrequiredtextstringrequiredSession.Message.Syntheticobject
objectidstringrequiredmetadataobjecttimeobjectrequiredcreatednumberrequiredtextstringrequireddescriptionstringtype"synthetic"required"synthetic"Session.Message.Systemobject
objectidstringrequiredmetadataobjecttimeobjectrequiredcreatednumberrequiredtype"system"required"system"textstringrequireddescriptionstringSession.Message.ToolState.Completedobject
objectstatus"completed"required"completed"inputobjectrequiredcontentmetadataobjectSession.Message.ToolState.Errorobject
objectstatus"error"required"error"inputobjectrequiredcontentmetadataobjectSession.Message.ToolState.Runningobject
objectstatus"running"required"running"inputobjectrequiredmetadataobjectrequiredSession.Message.ToolState.Streamingobject
objectstatus"streaming"required"streaming"inputstringrequiredSession.Message.Userobject
objectidstringrequiredmetadataobjecttimeobjectrequiredcreatednumberrequiredtextstringrequiredfilesPrompt.FileAttachment[]agentsPrompt.AgentAttachment[]skillsPrompt.SkillAttachment[]type"user"required"user"Session.Metadataobject
objectSession.ProviderContextobject
objectSession.ProviderContext.Provenanceobject
objectproviderIDstringrequiredproviderstringrequiredmodelIDstringrequiredroutestringrequiredprotocolstringrequiredendpointstringrequiredSession.Revertobject
objectmessageIDstringrequiredpartIDstringsnapshotstringfilesFileDiff.Info[]Session.StructuredErrorobject
objecttypestringrequiredmessagestringrequiredstatusintegerSessionActiveobject
objecttype"running"required"running"SessionBusyErrorEncodedobject
object_tag"SessionBusyError"required"SessionBusyError"sessionIDstringrequiredmessagestringrequiredSessionGenerateResponseobject
objectdataobjectrequiredtextstringrequiredSessionInterruptResponseobject
objectinterruptedbooleanrequiredWhether an active execution owned by this OpenCode process was interrupted.
SessionLogItemEncodedstring
stringSessionMessagesResponseobject
objectdataSession.Message.Info[]requiredcursorobjectrequiredpreviousstring | nullstringnullnextstring | nullstringnullSessionNotFoundErrorEncodedobject
object_tag"SessionNotFoundError"required"SessionNotFoundError"sessionIDstringrequiredmessagestringrequiredSessionStats.Activityobject
objectdatestringrequiredstepsintegerrequiredSessionStats.Infoobject
objectrangeobjectrequiredfromnumberrequiredtonumberrequiredsessionsintegerrequiredsubagentsintegerrequiredpromptsintegerrequiredstepsintegerrequiredtokensTokenUsage.InfocostMoney.USDtoolsSessionStats.ToolsactiveDaysintegerrequiredstreakintegerrequiredactivitySessionStats.Activity[]requiredmodelsSessionStats.ModelUsage[]requiredSessionStats.ModelUsageobject
objectSessionStats.ToolTotalsobject
objectcallsintegerrequiredsucceededintegerrequiredfailedintegerrequiredunfinishedintegerrequiredSessionStats.ToolUsageobject
objectnamestringrequiredcallsintegerrequiredsucceededintegerrequiredfailedintegerrequiredunfinishedintegerrequireddurationP50numberSessionStats.Toolsobject | object | object
object | object | objectobjectmode"none"required"none"objectmode"summary"required"summary"totalsSessionStats.ToolTotalsobjectmode"detail"required"detail"totalsSessionStats.ToolTotalsusageSessionStats.ToolUsage[]requiredSessionTransfer.Dataobject
objectinfoSession.InfomessagesSession.Message.Info[]requiredSessionsResponseobject
objectdataSession.Info[]requiredcursorobjectrequiredpreviousstring | nullstringnullnextstring | nullstringnullShell.Infoobject
objectidstringrequiredstatus"running" | "exited" | "timeout" | "killed"required"running" | "exited" | "timeout" | "killed"commandstringrequiredcwdstringrequiredshellstringrequiredfilestringrequiredpidintegerexitnumbermetadataobjectrequiredtimeobjectrequiredstartednumberrequiredcompletednumberShellNotFoundErrorEncodedobject
object_tag"ShellNotFoundError"required"ShellNotFoundError"idstringrequiredmessagestringrequiredSkill.Infoobject
objectidstringrequirednamestringrequireddescriptionstringautoinvokebooleanpathstringrequiredcontentstringrequiredSkillNotFoundErrorEncodedobject
object_tag"SkillNotFoundError"required"SkillNotFoundError"skillstringrequiredmessagestringrequiredTokenUsage.Infoobject
objectinputnumberrequiredoutputnumberrequiredreasoningnumberrequiredcacheobjectrequiredreadnumberrequiredwritenumberrequiredTool.ContentTool.TextContent | Tool.FileContent
Tool.TextContent | Tool.FileContentTool.FileContentobject
objecttype"file"required"file"uristringrequiredmimestringrequirednamestring | nullstringnullTool.TextContentobject
objecttype"text"required"text"textstringrequiredUnauthorizedErrorEncodedobject
object_tag"UnauthorizedError"required"UnauthorizedError"messagestringrequiredUnknownErrorEncodedobject
object_tag"UnknownError"required"UnknownError"messagestringrequiredrefstring | nullstringnullV2EventEncodedstring
stringVcs.Baseobject
objectnamestringrequiredrefstringrequiredsource"reflog" | "default"required"reflog" | "default"Vcs.Branchobject
objectcurrentstringdefaultstringVcs.BranchListstring[]
string[]stringVcs.FileStatusobject
objectfilestringrequiredadditionsintegerrequireddeletionsintegerrequiredstatus"added" | "deleted" | "modified"required"added" | "deleted" | "modified"Vcs.Infoobject
objectbranchVcs.BranchVcs.Mode"working" | "branch" | "committed"
"working" | "branch" | "committed""working" | "branch" | "committed"WebSearch.Providerobject
objectidstringrequirednamestringrequiredWebSearch.ResponseEncodedobject
objectproviderIDstringrequiredresultsWebSearch.Result[]requiredWebSearch.Resultobject
objecturlstringrequiredtitlestringcontentstringtimeobjectrequiredpublishednumberWorktree.CreateInputobject
objectstrategystringfromstringbranchstringdirectorystringnamestringWorktree.Directoryobject
objectdirectorystringrequiredstrategystringWorktree.Infoobject
objectdirectorystringrequiredWorktree.ListWorktree.Directory[]
Worktree.Directory[]Worktree.RemoveInputobject
objectdirectorystringrequiredforcebooleanrequiredWorktreeErrorEncodedobject
objectname"WorktreeError"required"WorktreeError"dataobjectrequiredmessagestringrequiredforceRequiredboolean | nullbooleannull