OpenAPI 3.1.0
HTTP API
Experimental HttpApi surface for selected instance routes.
Resource
health
get/api/healthCheck server health
Report the owning server process and its application status.
Operation IDv2.health.get
Responses
200ServiceHealthapplication/jsonServiceHealth400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedResource
server
get/api/serverGet server information
Return the URLs that can be used to connect to this server.
Operation IDv2.server.get
Responses
200Successapplication/jsonobjecturlsstring[]requiredstring400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedResource
location
get/api/locationGet location
Resolve the requested location or the server default location.
Operation IDv2.location.get
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Responses
200Location.Infoapplication/jsonLocation.InfoEncoded400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedResource
agent
get/api/agentList agents
Retrieve currently registered agents.
Operation IDv2.agent.list
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.InfoEncodeddataAgent.Info[]required400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedget/api/agent/{agentID}Get agent
Retrieve a single currently registered agent.
Operation IDv2.agent.get
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
agentIDrequired | path | string | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.InfoEncodeddataAgent.Info400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404AgentNotFoundErrorapplication/jsonAgentNotFoundErrorEncodedResource
plugin
Experimental plugin routes.
get/api/pluginList plugins
Retrieve enabled server plugins and their current status.
Operation IDv2.plugin.list
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.InfoEncodeddataPlugin.Info[]required400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedpost/api/plugin/await-activationWait for plugin activation
Wait for configured plugin activation at a Location to settle, including missing-package installs. Completion does not imply every plugin succeeded or background resource discovery finished. Cancelling this wait does not cancel activation.
Operation IDv2.plugin.awaitActivation
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Responses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedpost/api/plugin/checkCheck plugin updates
Check one or all package plugins for available updates.
Operation IDv2.plugin.check
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Request body required
application/jsonobjecttargetstring | nullstringnullResponses
200Successapplication/jsonobjectlocationLocation.InfoEncodeddataPlugin.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 IDv2.plugin.update
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | 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 IDv2.session.list
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
workspace | query | string | nullstringpattern ^wrk or null | No 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 IDv2.session.create
Request body required
application/jsonobjectidstring | nullstringnulltitlestring | nullstringnullagentstring | nullstringnullmodelModel.Ref | nullnulllocationLocation.Ref | nullnullmetadataSession.Metadata | nullnullResponses
200Successapplication/jsonobjectdataSession.Info400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedget/api/session/statsGet session statistics
Aggregate local session activity, usage, and tool reliability for a time range.
Operation IDv2.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 IDv2.session.import
Request body required
application/jsonobjectinfoSession.InfomessagesSession.Message.Info[]requiredlocationLocation.Ref | nullnullResponses
200Successapplication/jsonobjectdataSession.Info400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404SessionNotFoundErrorapplication/jsonSessionNotFoundErrorEncoded409ConflictErrorapplication/jsonConflictErrorEncodedget/api/session/{sessionID}/exportExport session
Export a complete projected session transcript.
Operation IDv2.session.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 IDv2.session.active
Responses
200Successapplication/jsonobjectdataobjectrequired400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedget/api/session/{sessionID}Get session
Retrieve a session by ID.
Operation IDv2.session.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 IDv2.session.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 through or before a message boundary.
Operation IDv2.session.fork
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | stringpattern ^ses | No description |
Request body required
application/jsonobjectboundarySession.ForkRequestBoundaryResponses
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 IDv2.session.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 IDv2.session.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 IDv2.session.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 IDv2.session.move
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
sessionIDrequired | path | stringpattern ^ses | No description |
Request body required
application/jsonobjectdirectorystringrequiredworkspaceIDstringdeliverySession.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 IDv2.session.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 IDv2.session.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 IDv2.session.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 IDv2.session.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 IDv2.session.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 IDv2.session.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 IDv2.session.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 IDv2.session.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 IDv2.session.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 IDv2.session.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 IDv2.session.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}/inboxList session inbox
List durable enqueued session work not yet delivered, ordered by enqueue sequence. Includes user, synthetic, compaction, and move items.
Operation IDv2.session.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 IDv2.session.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 IDv2.session.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 IDv2.session.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 IDv2.session.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 IDv2.session.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 IDv2.session.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 IDv2.session.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 IDv2.session.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 IDv2.session.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 IDv2.session.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 IDv2.session.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 IDv2.session.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 IDv2.session.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 IDv2.message.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 IDv2.model.list
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.InfoEncodeddataModel.Info[]required400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded503ServiceUnavailableErrorapplication/jsonServiceUnavailableErrorEncodedget/api/model/defaultGet default model
Retrieve the model used when a session has no explicit model selection.
Operation IDv2.model.default
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.InfoEncodeddataModel.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 IDv2.generate.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 IDv2.provider.list
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.InfoEncodeddataProvider.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 IDv2.provider.get
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
providerIDrequired | path | string | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.InfoEncodeddataProvider.Info400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404ProviderNotFoundErrorapplication/jsonProviderNotFoundErrorEncoded503ServiceUnavailableErrorapplication/jsonServiceUnavailableErrorEncodedResource
integration
Integration discovery and authentication routes.
get/api/integrationList integrations
Retrieve available integrations and their authentication methods.
Operation IDv2.integration.list
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.InfoEncodeddataIntegration.Info[]required400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedget/api/integration/{integrationID}Get integration
Retrieve one integration and its authentication methods.
Operation IDv2.integration.get
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
integrationIDrequired | path | string | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.InfoEncodeddataIntegration.Info | nullrequirednull400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedpost/api/experimental/integration/wellknownAdd wellknown integration
Discover and persist an experimental wellknown integration source.
Operation IDv2.experimental.integration.wellknown.add
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | 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 IDv2.integration.connect.key
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
integrationIDrequired | path | string | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Request body required
application/jsonobjectResponses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded | InvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedpost/api/integration/{integrationID}/connect/oauthBegin OAuth connection
Start an OAuth attempt and return the authorization details.
Operation IDv2.integration.oauth.connect
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
integrationIDrequired | path | string | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Request body required
application/jsonobjectResponses
200Successapplication/jsonobjectlocationLocation.InfoEncoded400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded | InvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedget/api/integration/{integrationID}/connect/oauth/{attemptID}Get OAuth attempt status
Poll the current status of an OAuth attempt.
Operation IDv2.integration.oauth.status
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
integrationIDrequired | path | string | No description |
attemptIDrequired | path | string | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.InfoEncoded400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodeddelete/api/integration/{integrationID}/connect/oauth/{attemptID}Cancel OAuth connection
Cancel an OAuth attempt and release its resources.
Operation IDv2.integration.oauth.cancel
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
integrationIDrequired | path | string | No description |
attemptIDrequired | path | string | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | 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 IDv2.integration.oauth.complete
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
integrationIDrequired | path | string | No description |
attemptIDrequired | path | string | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Request body required
application/jsonobjectcodestring | nullstringnullResponses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded | InvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedpost/api/integration/{integrationID}/connect/commandBegin command connection
Start a command authentication attempt.
Operation IDv2.integration.command.connect
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
integrationIDrequired | path | string | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Request body required
application/jsonobjectmethodIDstringrequiredlabelstring | nullstringnullResponses
200Successapplication/jsonobjectlocationLocation.InfoEncoded400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded | InvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedget/api/integration/{integrationID}/connect/command/{attemptID}Get command attempt status
Poll the current status and output of a command authentication attempt.
Operation IDv2.integration.command.status
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
integrationIDrequired | path | string | No description |
attemptIDrequired | path | string | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobject400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodeddelete/api/integration/{integrationID}/connect/command/{attemptID}Cancel command connection
Cancel a command authentication attempt and terminate its process.
Operation IDv2.integration.command.cancel
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
integrationIDrequired | path | string | No description |
attemptIDrequired | path | string | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | 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 IDv2.mcp.list
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.InfoEncodeddataMcp.Server[]required400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedput/api/mcp/{server}Add MCP server
Add an MCP server at runtime or replace an existing one, connecting it immediately.
Operation IDv2.mcp.add
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
serverrequired | path | string | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Request body required
application/jsonobjectconfigMcp.LocalConfigEncoded | Mcp.RemoteConfigEncodedrequiredResponses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodeddelete/api/mcp/{server}Remove MCP server
Stop an MCP server and remove it from the runtime set until restart.
Operation IDv2.mcp.remove
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
serverrequired | path | string | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Responses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404McpServerNotFoundErrorapplication/jsonMcpServerNotFoundErrorEncodedpost/api/mcp/{server}/connectConnect MCP server
Connect an MCP server at runtime, overriding a disabled configuration until restart.
Operation IDv2.mcp.connect
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
serverrequired | path | string | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Responses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404McpServerNotFoundErrorapplication/jsonMcpServerNotFoundErrorEncodedpost/api/mcp/{server}/disconnectDisconnect MCP server
Disconnect an MCP server at runtime, removing its tools until reconnected.
Operation IDv2.mcp.disconnect
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
serverrequired | path | string | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | 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 IDv2.mcp.resource.catalog
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.InfoEncoded400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedResource
credential
patch/api/credential/{credentialID}Update credential
Update a stored credential label.
Operation IDv2.credential.update
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
credentialIDrequired | path | string | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Request body required
application/jsonobjectlabelstringrequiredResponses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodeddelete/api/credential/{credentialID}Remove credential
Remove a stored integration credential.
Operation IDv2.credential.remove
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
credentialIDrequired | path | string | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Responses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedpost/api/credential/{credentialID}/activateActivate credential
Activate a stored integration credential.
Operation IDv2.credential.activate
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
credentialIDrequired | path | string | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Responses
204<No Content>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedResource
project
Project routes.
get/api/projectList projects
List known projects.
Operation IDv2.project.list
Responses
200Successapplication/jsonProject[]400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedpatch/api/project/{projectID}Update project
Update the project canonical directory, display metadata, and workspace commands.
Operation IDv2.project.update
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
projectIDrequired | path | string | No description |
Request body required
application/jsonobjectResponses
200Projectapplication/jsonProject400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404ProjectNotFoundErrorapplication/jsonProjectNotFoundErrorEncodedget/api/project/currentGet current project
Resolve the project for the requested location.
Operation IDv2.project.current
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Responses
200Project.Currentapplication/jsonProject.Current400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedResource
form
Session form routes.
get/api/form/requestList pending form requests
Retrieve pending forms for a location.
Operation IDv2.form.request.list
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.InfoEncodeddataForm.Info[]required400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedget/api/session/{sessionID}/formList session forms
Retrieve pending forms for a session.
Operation IDv2.session.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 IDv2.session.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 IDv2.session.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 IDv2.session.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 IDv2.session.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 IDv2.session.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 IDv2.permission.request.list
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.InfoEncodeddataPermission.Request[]required400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedget/api/permission/savedList saved permissions
Retrieve saved permissions, optionally filtered by project.
Operation IDv2.permission.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 IDv2.permission.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 IDv2.session.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 IDv2.session.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 IDv2.session.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 IDv2.session.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 | SessionNotFoundErrorEncodedResource
filesystem
Experimental location-scoped filesystem routes.
get/api/fs/read/*Read file
Serve one file relative to the requested location.
Operation IDv2.fs.read
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Responses
200Successapplication/octet-streamstring<binary>400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedget/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 IDv2.fs.list
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | 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.InfoEncodeddataFileSystem.Entry[]required400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedget/api/fs/findFind files
Find recursively ranked filesystem entries relative to the requested location.
Operation IDv2.fs.find
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | 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.InfoEncodeddataFileSystem.Entry[]required400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedResource
command
Experimental command routes.
get/api/commandList commands
Retrieve currently registered commands.
Operation IDv2.command.list
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.InfoEncodeddataCommand.Info[]required400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedResource
skill
Experimental skill routes.
get/api/skillList skills
Retrieve currently registered skills.
Operation IDv2.skill.list
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.InfoEncodeddataSkill.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 IDv2.rpc.call
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
rpcIDrequired | path | string | No description |
methodrequired | path | string | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | 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 IDv2.event.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 IDv2.pty.list
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.InfoEncodeddataPty[]required400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedpost/api/ptyCreate PTY session
Create a pseudo-terminal session for a location.
Operation IDv2.pty.create
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Request body required
application/jsonobjectcommandstringargsstring[]stringcwdstringtitlestringenvobjectstringResponses
200Successapplication/jsonobjectlocationLocation.InfoEncodeddataPty400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedget/api/pty/{ptyID}Get PTY session
Get one PTY session, including its exit code once exited.
Operation IDv2.pty.get
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
ptyIDrequired | path | stringpattern ^pty | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.InfoEncodeddataPty400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404PtyNotFoundErrorapplication/jsonPtyNotFoundErrorEncodedput/api/pty/{ptyID}Update PTY session
Update the title or viewport size of one PTY session.
Operation IDv2.pty.update
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
ptyIDrequired | path | stringpattern ^pty | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Request body required
application/jsonobjecttitlestringsizeobjectrowsintegerrequiredcolsintegerrequiredResponses
200Successapplication/jsonobjectlocationLocation.InfoEncodeddataPty400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404PtyNotFoundErrorapplication/jsonPtyNotFoundErrorEncodeddelete/api/pty/{ptyID}Remove PTY session
Terminate and remove one PTY session.
Operation IDv2.pty.remove
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
ptyIDrequired | path | stringpattern ^pty | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | 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 IDv2.pty.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 nullworkspacestring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.InfoEncoded400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded403ForbiddenErrorapplication/jsonForbiddenErrorEncoded404PtyNotFoundErrorapplication/jsonPtyNotFoundErrorEncodedget/api/pty/{ptyID}/connectConnect to PTY session
Establish a WebSocket connection streaming PTY output and accepting terminal input.
Operation IDv2.pty.connect
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
ptyIDrequired | path | stringpattern ^pty | No description |
location[directory] | query | string | No description |
location[workspace] | 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 IDv2.persistentPty.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 IDv2.shell.list
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.InfoEncodeddataShell.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 IDv2.shell.create
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Request body required
application/jsonobjectcommandstringrequiredcwdstringtimeoutintegerrequiredmetadataobjectResponses
200Successapplication/jsonobjectlocationLocation.InfoEncodeddataShell.Info400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedget/api/shell/{id}Get shell command
Get one shell command, including its status and exit code once exited.
Operation IDv2.shell.get
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
idrequired | path | stringpattern ^sh_ | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.InfoEncodeddataShell.Info400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404ShellNotFoundErrorapplication/jsonShellNotFoundErrorEncodeddelete/api/shell/{id}Remove shell command
Terminate and remove one shell command and its retained output.
Operation IDv2.shell.remove
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
idrequired | path | stringpattern ^sh_ | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | 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 IDv2.shell.timeout
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
idrequired | path | stringpattern ^sh_ | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Request body required
application/jsonobjecttimeoutintegerrequiredResponses
200Successapplication/jsonobjectlocationLocation.InfoEncodeddataShell.Info400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404ShellNotFoundErrorapplication/jsonShellNotFoundErrorEncodedget/api/shell/{id}/outputRead shell output
Page through captured combined output by absolute byte cursor.
Operation IDv2.shell.output
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
idrequired | path | stringpattern ^sh_ | No description |
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | 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.InfoEncodeddataobjectrequiredoutputstringrequiredcursorintegerrequiredsizeintegerrequiredtruncatedbooleanrequired400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404ShellNotFoundErrorapplication/jsonShellNotFoundErrorEncodedResource
reference
Location-scoped project references.
get/api/referenceList references
List references available in the requested location.
Operation IDv2.reference.list
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.InfoEncodeddataReference.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 IDv2.worktree.list
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | 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 IDv2.worktree.create
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | 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 IDv2.worktree.remove
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | 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 IDv2.worktree.refresh
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Responses
204<No Content>400WorktreeError | InvalidRequestErrorapplication/jsonWorktreeErrorEncoded | InvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedResource
workspace
Workspace lifecycle routes.
post/api/workspaceCreate workspace
Create a logical workspace. A caller-supplied ID is idempotent when retried with the same provider; reusing it with another provider returns a conflict.
Operation IDv2.workspace.create
Request body required
application/jsonobjectidstring | nullstringnullproviderstringrequiredResponses
200Successapplication/jsonobjectdatastringrequired400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded404ProviderNotFoundErrorapplication/jsonProviderNotFoundErrorEncoded409ConflictErrorapplication/jsonConflictErrorEncodeddelete/api/workspace/{workspaceID}Destroy workspace
Make a workspace not exist. This operation is idempotent: an already-missing workspace succeeds with `destroyed: false`, while a workspace removed by this request returns `destroyed: true`.
Operation IDv2.workspace.destroy
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
workspaceIDrequired | path | stringpattern ^wrk | No description |
Responses
200Reports whether this request destroyed an existing workspace.application/jsonWorkspaceDestroyResult400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded500UnknownErrorapplication/jsonUnknownErrorEncodedResource
vcs
Location-scoped version control routes.
get/api/vcsVCS info
Get current and default branch information for the requested location.
Operation IDv2.vcs.get
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.InfoEncodeddataVcs.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 IDv2.vcs.base
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.InfoEncodeddataVcs.Base | nullrequirednull400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded503ServiceUnavailableErrorapplication/jsonServiceUnavailableErrorEncodedget/api/vcs/statusVCS status
List uncommitted working-copy changes relative to the requested location.
Operation IDv2.vcs.status
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.InfoEncodeddataVcs.FileStatus[]required400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodedget/api/vcs/branchesVCS branches
List local and remote branches available at the requested location.
Operation IDv2.vcs.branches
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
search | query | string | nullstringor null | No description |
limit | query | string | nullstringor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.InfoEncodeddataVcs.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 IDv2.vcs.diff
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | 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.InfoEncodeddataFileDiff.Info[]required400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncoded503ServiceUnavailableErrorapplication/jsonServiceUnavailableErrorEncodedResource
debug
get/api/debug/locationList loaded locations
List locations currently loaded by the server.
Operation IDv2.debug.location.list
Responses
200Successapplication/jsonLocation.Ref[]400InvalidRequestErrorapplication/jsonInvalidRequestErrorEncoded401UnauthorizedErrorapplication/jsonUnauthorizedErrorEncodeddelete/api/debug/locationEvict a loaded location
Dispose the requested location's cached services so its next use boots them fresh.
Operation IDv2.debug.location.evict
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | 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 IDv2.experimental.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 IDv2.websearch.providers
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonobjectlocationLocation.InfoEncodeddataWebSearch.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 IDv2.websearch.query
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Request body required
application/jsonobjectquerystringrequiredproviderIDstringResponses
200Successapplication/jsonobjectlocationLocation.InfoEncoded400InvalidRequestErrorapplication/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 IDv2.config.get
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
location | query | object | nullobjectdirectorystring | nullstringor nullworkspacestring | nullstringor nullor null | No description |
Responses
200Successapplication/jsonConfig.Entry[]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.AgentsDirectoryEncodedobject
objecttype"agents"required"agents"pathstringrequiredConfig.ClaudeDirectoryEncodedobject
objecttype"claude"required"claude"pathstringrequiredConfig.CommandEncodedobject
objecttemplatestringrequireddescriptionstringagentstringmodelstring | objectstringobjectproviderIDstringrequiredmodelstringrequiredvariantstringsubagentbooleansubtaskbooleanDeprecated alias for subagent.
Config.DirectoryEncodedobject
objecttype"directory"required"directory"pathstringrequiredConfig.DocumentEncodedobject
objectConfig.EntryConfig.DocumentEncoded | Config.DirectoryEncoded | Config.AgentsDirectoryEncoded | Config.ClaudeDirectoryEncoded
Config.DocumentEncoded | Config.DirectoryEncoded | Config.AgentsDirectoryEncoded | Config.ClaudeDirectoryEncodedConfig.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.Plugin.EntryEncodedobject
objectpackagestringrequiredoptionsobjectConfig.ProviderEncodedobject
objectcompactionProvider.Compactionwebsocketbooleancanonicalstringnamestringenvstring[]stringpackagestringsettingsobjectheadersobjectstringbodyobjectmodelsobjectConfig.Reference.GitEncodedobject
objectrepositorystringrequiredbranchstringdescriptionstringhiddenbooleanConfig.Reference.LocalEncodedobject
objectpathstringrequireddescriptionstringhiddenbooleanConfig.WarmingEncodedobject
objectpromptstringintervalstringdurationstringConfig.Worktreeobject
objectdirectorystringrequiredConfigWebSearch.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"FileSystem.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
objectInvalidCursorErrorEncodedobject
object_tag"InvalidCursorError"required"InvalidCursorError"messagestringrequiredInvalidRequestErrorEncodedobject
object_tag"InvalidRequestError"required"InvalidRequestError"messagestringrequiredkindstring | nullstringnullfieldstring | nullstringnullLocation.InfoEncodedobject
objectdirectorystringrequiredworkspaceIDstringprojectobjectrequiredidstringrequireddirectorystringrequiredcanonicalstringrequiredLocation.Refobject
objectdirectorystringrequiredworkspaceIDstringMcp.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.Currentobject
objectidstringrequireddirectorystringrequiredcanonicalstringrequiredProject.Iconobject
objecturlstringoverridestringcolorstringProject.Timeobject
objectcreatedintegerrequiredupdatedintegerrequiredinitializedintegerProject.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"repositorystringrequiredbranchstringdescriptionstringhiddenbooleanReference.Infoobject
objectReference.LocalSourceobject
objecttype"local"required"local"pathstringrequireddescriptionstringhiddenbooleanReference.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 | nullobjectnullServiceHealthobject
objecthealthytruerequiredtrueversionstringrequiredpidintegerrequiredSession.ForkBoundaryobject | object
object | objectobjecttype"before"required"before"messageIDstringrequiredobjecttype"through"required"through"messageIDstringrequiredSession.ForkRequestBoundaryobject | object
object | objectobjecttype"before"required"before"messageIDstringrequiredobjecttype"through"required"through"Session.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"payloadSession.Inbox.MovePayloaddeliverySession.Inbox.DeliverySession.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"timeobjectrequiredcreatednumberrequiredupdatednumberrequiredidlenumberviewednumberarchivednumbertitlestringlocationLocation.RefsubpathstringmetadataSession.MetadatarevertSession.RevertSession.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.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.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.CompactionSession.Message.LocationSwitchedobject
objectidstringrequiredmetadataobjecttimeobjectrequiredcreatednumberrequiredtype"location-switched"required"location-switched"locationLocation.RefprojectIDstringsubpathstringpreviousobjectSession.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
objectidstringrequirednamestringrequireddescriptionstringslashbooleanautoinvokebooleanlocationstringrequiredcontentstringrequiredSkillNotFoundErrorEncodedobject
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
objecturlstringrequiredtitlestringcontentstringtimeobjectrequiredpublishednumberWorkspaceDestroyResultobject
objectReports whether this request destroyed an existing workspace.
destroyedbooleanrequiredTrue when this request transitioned the workspace from existing to destroyed.
Worktree.CreateInputobject
objectstrategystringfromstringbranchstringdirectorystringnamestringWorktree.Directoryobject
objectdirectorystringrequiredstrategystringWorktree.Infoobject
objectdirectorystringrequiredWorktree.ListWorktree.Directory[]
Worktree.Directory[]Worktree.RemoveInputobject
objectdirectorystringrequiredforcebooleanrequiredWorktreeErrorEncodedobject
objectname"WorktreeError"required"WorktreeError"dataobjectrequiredmessagestringrequiredforceRequiredboolean | nullbooleannull