Skip to main content

Bossanova Orchestrator API (2026-08-25)

Download OpenAPI specification:Download

License: Proprietary

OpenAPI reference for the bossanova.v1 OrchestratorService, the Connect API served by bosso. Callers select a date-based API version with the Bossanova-Version request header; see the API changelog for version history.

bossanova.v1.OrchestratorService

OrchestratorService is the cloud-hosted service that coordinates multiple daemons, provides remote CLI access, and handles webhook routing.

CompleteGitHubAppSetup

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
installationId
integer or string <int64> (installation_id)
state
string (state)

Server-issued setup state returned by GetGitHubAppInstallURL.

githubCode
string (github_code)

GitHub OAuth code returned by the GitHub App setup callback. Exchanged once for a user access token to verify the caller can access installation_id.

Responses

Request samples

Content type
application/json
{
  • "installationId": 0,
  • "state": "string",
  • "githubCode": "string"
}

Response samples

Content type
application/json
{
  • "repos": [
    ]
}

CreateBillingPortalSession

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
returnUrl
string (return_url)

Responses

Request samples

Content type
application/json
{
  • "returnUrl": "string"
}

Response samples

Content type
application/json
{
  • "url": "string"
}

CreateCheckoutSession

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
returnUrl
string (return_url)
cancelUrl
string (cancel_url)

Responses

Request samples

Content type
application/json
{
  • "returnUrl": "string",
  • "cancelUrl": "string"
}

Response samples

Content type
application/json
{
  • "url": "string",
  • "status": {
    }
}

CreateWebhookConfig

Webhook configuration management

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
repoOriginUrl
string (repo_origin_url)
provider
string (provider)
secret
string (secret)

If empty, a random secret will be generated.

Responses

Request samples

Content type
application/json
{
  • "repoOriginUrl": "string",
  • "provider": "string",
  • "secret": "string"
}

Response samples

Content type
application/json
{
  • "config": {
    }
}

DeleteWebhookConfig

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
id
string (id)

Responses

Request samples

Content type
application/json
{
  • "id": "string"
}

Response samples

Content type
application/json
{ }

DisconnectGitHubAppRepo

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
repoOriginUrl
string (repo_origin_url)

Responses

Request samples

Content type
application/json
{
  • "repoOriginUrl": "string"
}

Response samples

Content type
application/json
{ }

GetCloudAccessStatus

Cloud billing and access. User-authenticated.

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
object (GetCloudAccessStatusRequest)

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "status": {
    }
}

GetGitHubAppInstallURL

GitHub App repository registration. User-authenticated.

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
returnUrl
string (return_url)

Optional absolute URL to return to after GitHub setup. Empty uses bosso default.

Responses

Request samples

Content type
application/json
{
  • "returnUrl": "string"
}

Response samples

Content type
application/json
{
  • "installUrl": "string"
}

IssueAttachToken

IssueAttachToken returns a short-lived JWT bound to (user, session, chat, scope) that the browser uses to authenticate the /ws/attach WebSocket handshake. TTL ~5 minutes.

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
sessionId
string (session_id)
chatId
string (chat_id)
scope
string (bossanova.v1.AttachScope)
Enum: "ATTACH_SCOPE_UNSPECIFIED" "ATTACH_SCOPE_EDITOR" "ATTACH_SCOPE_VIEWER"

EDITOR or VIEWER. Only EDITOR is used in v1 — VIEWER is accepted and behaves identically for now (see the plan's deferred items).

Responses

Request samples

Content type
application/json
{
  • "sessionId": "string",
  • "chatId": "string",
  • "scope": "ATTACH_SCOPE_UNSPECIFIED"
}

Response samples

Content type
application/json
{
  • "token": "string",
  • "expiresAt": "2023-01-15T01:30:15.01Z"
}

ListDaemons

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
object (ListDaemonsRequest)

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "daemons": [
    ]
}

ListGitHubAppRepos

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
object (ListGitHubAppReposRequest)

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "repos": [
    ]
}

ListWebhookConfigs

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
object (ListWebhookConfigsRequest)

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "configs": [
    ]
}

ProxyAddAccount

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
daemonId
string (daemon_id)
provider
string (provider)

"claude" | "codex"

label
string (label)
priority
integer <int32> (priority)

sort order; lower = preferred

credential
string <byte> (credential)

inbound only; consumed into the keyring, never echoed

Responses

Request samples

Content type
application/json
{
  • "daemonId": "string",
  • "provider": "string",
  • "label": "string",
  • "priority": 0,
  • "credential": "string"
}

Response samples

Content type
application/json
{
  • "account": {
    }
}

ProxyArchiveSession

Archives a session via the owning daemon's reverse stream.

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
id
string (id)

Responses

Request samples

Content type
application/json
{
  • "id": "string"
}

Response samples

Content type
application/json
{
  • "session": {
    }
}

ProxyCloseSession

Destructive-tier MCP gateway parity (BOS-404). Session-scoped destructive ops route to the owning daemon via FindSessionDaemon (NotFound for a missing/foreign session); empty_trash is daemon-wide and aggregates across the caller's Ready daemons via the shared resolver. ProxyCloseSession closes (abandons) a session, returning the updated Session.

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
id
string (id)

Responses

Request samples

Content type
application/json
{
  • "id": "string"
}

Response samples

Content type
application/json
{
  • "session": {
    }
}

ProxyCreateCronJob

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
daemonId
string (daemon_id)
repoId
string (repo_id)
name
string (name)
prompt
string (prompt)
schedule
string (schedule)
timezone
string (timezone)
isEnabled
boolean (is_enabled)
agentName
string (agent_name)
model
string (model)
gateCommand
string (gate_command)
shouldRunSetupCommand
boolean or null (should_run_setup_command)
isZeroOutput
boolean or null (is_zero_output)

Responses

Request samples

Content type
application/json
{
  • "daemonId": "string",
  • "repoId": "string",
  • "name": "string",
  • "prompt": "string",
  • "schedule": "string",
  • "timezone": "string",
  • "isEnabled": true,
  • "agentName": "string",
  • "model": "string",
  • "gateCommand": "string",
  • "shouldRunSetupCommand": true,
  • "isZeroOutput": true
}

Response samples

Content type
application/json
{
  • "job": {
    }
}

ProxyCreateGithubCallback

GitHub-callback proxies for remote-CLI callback management (BOS-469). All route to the owning daemon by target_chat_id via FindDaemonForChat, reusing the caller's own auth — a foreign chat resolves to NotFound so no cross-user registration can dispatch. Create/Delete require target_chat_id; List routes by target_chat_id when set, else aggregates across the caller's Ready daemons.

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
groupId
string or null (group_id)
targetChatId
string (target_chat_id)
repoOwner
string (repo_owner)
repoName
string (repo_name)
prNumber
integer <int32> (pr_number)
trigger
string (trigger)
message
string (message)
google.protobuf.Timestamp (string) or expires_at (null) (expires_at)
shouldRequireTransition
boolean or null (should_require_transition)

Responses

Request samples

Content type
application/json
{
  • "groupId": "string",
  • "targetChatId": "string",
  • "repoOwner": "string",
  • "repoName": "string",
  • "prNumber": 0,
  • "trigger": "string",
  • "message": "string",
  • "expiresAt": "2023-01-15T01:30:15.01Z",
  • "shouldRequireTransition": true
}

Response samples

Content type
application/json
{
  • "githubCallback": {
    }
}

ProxyCreateNote

Notes proxies for remote-CLI and hosted-gateway note management (BOS-552). A note is repo-scoped, so all five route to the owning daemon by repo_id, reusing the caller's own auth — a foreign repo resolves to NotFound so no cross-user note access can dispatch. Create/Get/Update/Delete require repo_id; List routes by repo_id when set, else aggregates across the caller's Ready daemons.

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
repoId
string (repo_id)

Owning repository (daemon-local repos.id). Required — also the routing key.

sessionId
string or null (session_id)

Optional provenance: which run recorded this note.

chatId
string or null (chat_id)
body
string (body)

Stored verbatim. Must be non-empty after trimming and within the 64 KiB cap, else InvalidArgument.

tags
Array of strings (tags)

Trimmed, lowercased and de-duplicated before storage. At most 32 tags of at most 64 bytes each (measured after trimming), else InvalidArgument.

idempotencyKey
string or null (idempotency_key)

Optional repo-scoped key for an atomic idempotent create. A retry with the same key returns the original note without changing it.

Responses

Request samples

Content type
application/json
{
  • "repoId": "string",
  • "sessionId": "string",
  • "chatId": "string",
  • "body": "string",
  • "tags": [
    ],
  • "idempotencyKey": "string"
}

Response samples

Content type
application/json
{
  • "note": {
    }
}

ProxyDeleteChat

Deletes a chat via the owning daemon's reverse stream.

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
sessionId
string (session_id)

for authz scoping (mirror ProxyWakeChat)

agentSessionId
string (agent_session_id)

Responses

Request samples

Content type
application/json
{
  • "sessionId": "string",
  • "agentSessionId": "string"
}

Response samples

Content type
application/json
{ }

ProxyDeleteCronJob

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
daemonId
string (daemon_id)
id
string (id)

Responses

Request samples

Content type
application/json
{
  • "daemonId": "string",
  • "id": "string"
}

Response samples

Content type
application/json
{ }

ProxyDeleteGithubCallback

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
targetChatId
string (target_chat_id)

routing key (FindDaemonForChat)

id
string (id)
expectTargetChatId
string or null (expect_target_chat_id)

Responses

Request samples

Content type
application/json
{
  • "targetChatId": "string",
  • "id": "string",
  • "expectTargetChatId": "string"
}

Response samples

Content type
application/json
{
  • "outcome": "string"
}

ProxyDeleteNote

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
repoId
string (repo_id)

routing key only; the daemon resolves by id alone

id
string (id)

Responses

Request samples

Content type
application/json
{
  • "repoId": "string",
  • "id": "string"
}

Response samples

Content type
application/json
{ }

ProxyEmptyTrash

ProxyEmptyTrash permanently deletes archived sessions across the caller's Ready daemons, summing each daemon's deleted_count.

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
google.protobuf.Timestamp (string) or older_than (null) (older_than)
One of
string <date-time> (google.protobuf.Timestamp)

A Timestamp represents a point in time independent of any time zone or local calendar, encoded as a count of seconds and fractions of seconds at nanosecond resolution. The count is relative to an epoch at UTC midnight on January 1, 1970, in the proleptic Gregorian calendar which extends the Gregorian calendar backwards to year one.

All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap second table is needed for interpretation, using a 24-hour linear smear.

The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings.

Examples

Example 1: Compute Timestamp from POSIX time().

 Timestamp timestamp;
 timestamp.set_seconds(time(NULL));
 timestamp.set_nanos(0);

Example 2: Compute Timestamp from POSIX gettimeofday().

 struct timeval tv;
 gettimeofday(&tv, NULL);

 Timestamp timestamp;
 timestamp.set_seconds(tv.tv_sec);
 timestamp.set_nanos(tv.tv_usec * 1000);

Example 3: Compute Timestamp from Win32 GetSystemTimeAsFileTime().

 FILETIME ft;
 GetSystemTimeAsFileTime(&ft);
 UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;

 // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z
 // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.
 Timestamp timestamp;
 timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
 timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));

Example 4: Compute Timestamp from Java System.currentTimeMillis().

 long millis = System.currentTimeMillis();

 Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
     .setNanos((int) ((millis % 1000) * 1000000)).build();

Example 5: Compute Timestamp from Java Instant.now().

 Instant now = Instant.now();

 Timestamp timestamp =
     Timestamp.newBuilder().setSeconds(now.getEpochSecond())
         .setNanos(now.getNano()).build();

Example 6: Compute Timestamp from current time in Python.

 timestamp = Timestamp()
 timestamp.GetCurrentTime()

JSON Mapping

In JSON format, the Timestamp type is encoded as a string in the RFC 3339 format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required. A proto3 JSON serializer should always use UTC (as indicated by "Z") when printing the Timestamp type and a proto3 JSON parser should be able to accept both UTC and other timezones (as indicated by an offset).

For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.

In JavaScript, one can convert a Date object to this format using the standard toISOString() method. In Python, a standard datetime.datetime object can be converted to this format using strftime with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's ISODateTimeFormat.dateTime() to obtain a formatter capable of generating timestamps in this format.

Responses

Request samples

Content type
application/json
{
  • "olderThan": "2023-01-15T01:30:15.01Z"
}

Response samples

Content type
application/json
{
  • "deletedCount": 0
}

ProxyGetChatStatuses

ProxyGetChatStatuses reads one session's per-chat statuses (routes by session_id, exactly as ProxyListChats does). Not interchangeable with ProxyGetSessionStatuses: that aggregates across a session's chats, so it cannot say whether one specific chat has settled.

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
sessionId
string (session_id)

Responses

Request samples

Content type
application/json
{
  • "sessionId": "string"
}

Response samples

Content type
application/json
{
  • "statuses": [
    ]
}

ProxyGetChatTranscript

Reads a chat's transcript via the owning daemon's reverse stream. Routes by session_id (FindSessionDaemon) with a GetChat authz check, like ProxyWakeChat.

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
sessionId
string (session_id)

for authz scoping (mirror ProxyWakeChat)

agentSessionId
string (agent_session_id)
maxMessages
integer <int32> (max_messages)

0 = all; otherwise the most recent N

Responses

Request samples

Content type
application/json
{
  • "sessionId": "string",
  • "agentSessionId": "string",
  • "maxMessages": 0
}

Response samples

Content type
application/json
{
  • "messages": [
    ],
  • "finalAssistantText": "string",
  • "exists": true,
  • "reason": "string"
}

ProxyGetCronJob

ProxyGetCronJob returns the first Ready daemon that owns the id (NotFound if none).

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
id
string (id)

Responses

Request samples

Content type
application/json
{
  • "id": "string"
}

Response samples

Content type
application/json
{
  • "cronJob": {
    }
}

ProxyGetNote

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
repoId
string (repo_id)

routing key only; the daemon resolves by id alone

id
string (id)

Responses

Request samples

Content type
application/json
{
  • "repoId": "string",
  • "id": "string"
}

Response samples

Content type
application/json
{
  • "note": {
    }
}

ProxyGetRepo

Per-repo proxies for web repo management. Route to the daemon named by daemon_id and address the repo by repo_id. Reads/updates are secret-masked (RepoSettings); writes carry tri-state SecretUpdate + expected_updated_at.

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
daemonId
string (daemon_id)
repoId
string (repo_id)

Responses

Request samples

Content type
application/json
{
  • "daemonId": "string",
  • "repoId": "string"
}

Response samples

Content type
application/json
{
  • "settings": {
    }
}

ProxyGetSession

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
id
string (id)

Responses

Request samples

Content type
application/json
{
  • "id": "string"
}

Response samples

Content type
application/json
{
  • "session": {
    }
}

ProxyGetSessionStatuses

ProxyGetSessionStatuses fans out per session_id (FindSessionDaemon), skipping unknown ids, and unions the returned SessionStatusEntry values.

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
sessionIds
Array of strings (session_ids)

Responses

Request samples

Content type
application/json
{
  • "sessionIds": [
    ]
}

Response samples

Content type
application/json
{
  • "statuses": [
    ]
}

ProxyLinkSessionPR

ProxyLinkSessionPR attaches an existing PR to a session (routes by session_id).

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
id
string (id)
pr
string (pr)

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "pr": "string"
}

Response samples

Content type
application/json
{
  • "session": {
    }
}

ProxyListAccounts

Lists the rotation accounts on the daemon owning session_id (web account-switch picker). Routes by session_id (FindSessionDaemon) for authz scope, like ProxySwitchSessionAccount. Accounts are metadata only — never credentials. Optional provider filter ("" = all).

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
sessionId
string (session_id)
provider
string (provider)

Responses

Request samples

Content type
application/json
{
  • "sessionId": "string",
  • "provider": "string"
}

Response samples

Content type
application/json
{
  • "accounts": [
    ]
}

ProxyListAgents

Lists the installed agents on a single named daemon via its reverse stream.

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
daemonId
string (daemon_id)

Responses

Request samples

Content type
application/json
{
  • "daemonId": "string"
}

Response samples

Content type
application/json
{
  • "agents": [
    ]
}

ProxyListAgentsAggregated

ProxyListAgentsAggregated aggregates installed agents across the caller's Ready daemons (session-less; distinct from the daemon-scoped ProxyListAgents).

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
object (ProxyListAgentsAggregatedRequest)

ProxyListAgentsAggregatedRequest aggregates installed agents across the caller's Ready daemons (session-less). Distinct from the daemon-scoped ProxyListAgents, which takes a daemon_id.

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "agents": [
    ]
}

ProxyListChats

Read-tier MCP gateway parity (BOS-401). Session-scoped reads route to the owning daemon via FindSessionDaemon; session-less reads aggregate across the caller's Ready daemons via the shared resolver. ProxyListChats reads a session's chats (routes by session_id).

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
sessionId
string (session_id)

Responses

Request samples

Content type
application/json
{
  • "sessionId": "string"
}

Response samples

Content type
application/json
{
  • "chats": [
    ]
}

ProxyListCheckSnapshots

ProxyListCheckSnapshots reads a session's recent CI check snapshots (routes by session_id).

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
sessionId
string (session_id)
limit
integer <int32> (limit)

Responses

Request samples

Content type
application/json
{
  • "sessionId": "string",
  • "limit": 0
}

Response samples

Content type
application/json
{
  • "snapshots": [
    ]
}

ProxyListCronJobs

Cron-job proxies for web cron-job management. ProxyListCronJobs aggregates across all of the caller's live daemons; the mutating proxies route to the daemon named by daemon_id and address the job by id.

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
object (ProxyListCronJobsRequest)

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "jobs": [
    ]
}

ProxyListGithubCallbacks

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
targetChatId
string or null (target_chat_id)
repoOwner
string or null (repo_owner)
repoName
string or null (repo_name)
prNumber
integer or null <int32> (pr_number)
trigger
string or null (trigger)
state
string or null (state)

Responses

Request samples

Content type
application/json
{
  • "targetChatId": "string",
  • "repoOwner": "string",
  • "repoName": "string",
  • "prNumber": 0,
  • "trigger": "string",
  • "state": "string"
}

Response samples

Content type
application/json
{
  • "githubCallbacks": [
    ]
}

ProxyListNotes

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
repoId
string or null (repo_id)

Applied whenever the field is SET, including when set to the empty string: the value is trimmed and compared with =, and blank provenance is stored as NULL, so a set-but-blank filter matches NOTHING. Leave the field unset to leave that column unconstrained; there is no way to ask for "notes with no session".

sessionId
string or null (session_id)
chatId
string or null (chat_id)
tags
Array of strings (tags)

Matches notes carrying ANY of these tags (OR), not all of them. Entries are trimmed and lowercased to match the normalisation applied on write, and blank entries are dropped. A non-empty list whose entries ALL normalise away matches nothing rather than everything — the filter fails closed, so a stray empty tag can never widen the result set.

search
string or null (search)

Substring match on the body. SQL wildcards are matched literally, not as patterns. Case-insensitivity is ASCII-only. A term that is blank after trimming means NO search, unlike a blank tag entry, which matches nothing.

limit
integer <int32> (limit)

Caps the rows returned; zero or negative means unlimited. On an unfiltered fan-out it is passed through to every daemon AND re-applied to the merged list, so a caller asking for N always receives at most N — never N per daemon. Because each daemon returns its own oldest limit notes, the merged list truncated after the (created_at, id) sort is exactly the oldest limit notes ACROSS THE DAEMONS THAT ANSWERED: the fan-out is fail-soft, so a daemon that is offline or times out contributes nothing and is skipped rather than failing the call.

Responses

Request samples

Content type
application/json
{
  • "repoId": "string",
  • "sessionId": "string",
  • "chatId": "string",
  • "tags": [
    ],
  • "search": "string",
  • "limit": 0
}

Response samples

Content type
application/json
{
  • "notes": [
    ]
}

ProxyListPlugins

ProxyListPlugins aggregates configured plugins across the caller's Ready daemons.

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
object (ProxyListPluginsRequest)

ProxyListPluginsRequest aggregates configured plugins across the caller's Ready daemons.

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "plugins": [
    ]
}

ProxyListRepoPRs

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
daemonId
string (daemon_id)
repoId
string (repo_id)

Responses

Request samples

Content type
application/json
{
  • "daemonId": "string",
  • "repoId": "string"
}

Response samples

Content type
application/json
{
  • "pullRequests": [
    ]
}

ProxyListReposAggregated

Aggregates repos across all of the caller's live daemons, deduped by origin URL, with the serving daemon IDs unioned per repo.

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
object (ProxyListReposAggregatedRequest)

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "repos": [
    ]
}

ProxyListSessions

Proxied daemon RPCs (remote CLI → orchestrator → daemon)

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
repoId
string or null (repo_id)
states
Array of strings (states)
Items Enum: "SESSION_STATE_UNSPECIFIED" "SESSION_STATE_CREATING_WORKTREE" "SESSION_STATE_STARTING_AGENT" "SESSION_STATE_PUSHING_BRANCH" "SESSION_STATE_OPENING_DRAFT_PR" "SESSION_STATE_IMPLEMENTING_PLAN" "SESSION_STATE_AWAITING_CHECKS" "SESSION_STATE_FIXING_CHECKS" "SESSION_STATE_GREEN_DRAFT" "SESSION_STATE_READY_FOR_REVIEW" "SESSION_STATE_BLOCKED" "SESSION_STATE_MERGED" "SESSION_STATE_CLOSED" "SESSION_STATE_FINALIZING" "SESSION_STATE_ORPHANED"
includeArchived
boolean (include_archived)
daemonId
string or null (daemon_id)

Target daemon, if known. Otherwise orchestrator queries all.

Responses

Request samples

Content type
application/json
{
  • "repoId": "string",
  • "states": [
    ],
  • "includeArchived": true,
  • "daemonId": "string"
}

Response samples

Content type
application/json
{
  • "sessions": [
    ]
}

ProxyListTrackerIssues

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
daemonId
string (daemon_id)
repoId
string (repo_id)
query
string (query)
source
string or null (source)

"linear" (default) | "sentry"

Responses

Request samples

Content type
application/json
{
  • "daemonId": "string",
  • "repoId": "string",
  • "query": "string",
  • "source": "string"
}

Response samples

Content type
application/json
{
  • "issues": [
    ]
}

ProxyManageListAccounts

Daemon-scoped account-management proxies for the web Settings > Accounts section. Unlike ProxyListAccounts (session-scoped, switch picker) these route to the daemon named by daemon_id, since a Settings-level manager is not session-scoped. Accounts stay metadata only on the wire — the add / refresh requests carry an inbound-only credential blob (consumed straight into the daemon keyring, never echoed back). Each proxy forwards 1:1 to the existing daemon account.go handler via a reverse-stream OrchestratorCommand.

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
daemonId
string (daemon_id)
provider
string (provider)
shouldRefresh
boolean (should_refresh)

Responses

Request samples

Content type
application/json
{
  • "daemonId": "string",
  • "provider": "string",
  • "shouldRefresh": true
}

Response samples

Content type
application/json
{
  • "accounts": [
    ],
  • "hasRefreshed": true
}

ProxyMergeSession

Merges a session's PR via the owning daemon's reverse stream.

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
id
string (id)

Responses

Request samples

Content type
application/json
{
  • "id": "string"
}

Response samples

Content type
application/json
{
  • "session": {
    }
}

ProxyPauseSession

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
id
string (id)

Responses

Request samples

Content type
application/json
{
  • "id": "string"
}

Response samples

Content type
application/json
{
  • "session": {
    }
}

ProxyRecordChat

Records or resumes a chat via the owning daemon's reverse stream.

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
sessionId
string (session_id)
agentSessionId
string (agent_session_id)
title
string (title)
resume
boolean (resume)
agentName
string (agent_name)

Responses

Request samples

Content type
application/json
{
  • "sessionId": "string",
  • "agentSessionId": "string",
  • "title": "string",
  • "resume": true,
  • "agentName": "string"
}

Response samples

Content type
application/json
{
  • "chat": {
    }
}

ProxyRefreshAccount

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
daemonId
string (daemon_id)
id
string (id)
credential
string <byte> (credential)

inbound only; never echoed

testAfterSave
boolean (test_after_save)

run the TestAccount validation path after saving

Responses

Request samples

Content type
application/json
{
  • "daemonId": "string",
  • "id": "string",
  • "credential": "string",
  • "testAfterSave": true
}

Response samples

Content type
application/json
{
  • "account": {
    },
  • "liveSmokeRan": true,
  • "detail": "string"
}

ProxyRemoveAccount

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
daemonId
string (daemon_id)
id
string (id)

Responses

Request samples

Content type
application/json
{
  • "daemonId": "string",
  • "id": "string"
}

Response samples

Content type
application/json
{ }

ProxyRemoveRepo

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
daemonId
string (daemon_id)
repoId
string (repo_id)

Responses

Request samples

Content type
application/json
{
  • "daemonId": "string",
  • "repoId": "string"
}

Response samples

Content type
application/json
{ }

ProxyRemoveSession

ProxyRemoveSession permanently removes a session and its worktree (Ok-only).

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
id
string (id)

Responses

Request samples

Content type
application/json
{
  • "id": "string"
}

Response samples

Content type
application/json
{ }

ProxyRepairDoctor

ProxyRepairDoctor merges repair-doctor reports across the caller's Ready daemons.

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
object (ProxyRepairDoctorRequest)

ProxyRepairDoctorRequest merges repair-doctor reports across the caller's Ready daemons; when the caller has >1 Ready daemon, bosso prefixes each check name and log path with the daemon hostname for provenance.

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "checks": [
    ],
  • "recentLogs": [
    ]
}

ProxyReportChatStatus

ProxyReportChatStatus forwards chat status heartbeats. All reports must resolve to the caller's own chats on a single daemon.

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
Array of objects (reports)
Array
agentSessionId
string (agent_session_id)

Agent session UUID

status
string (bossanova.v1.ChatStatus)
Enum: "CHAT_STATUS_UNSPECIFIED" "CHAT_STATUS_WORKING" "CHAT_STATUS_IDLE" "CHAT_STATUS_STOPPED" "CHAT_STATUS_QUESTION" "CHAT_STATUS_LIMITED" "CHAT_STATUS_WAITING"

Current process status

lastOutputAt
string <date-time> (google.protobuf.Timestamp)

Last PTY output time

Responses

Request samples

Content type
application/json
{
  • "reports": [
    ]
}

Response samples

Content type
application/json
{ }

ProxyResumeSession

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
id
string (id)

Responses

Request samples

Content type
application/json
{
  • "id": "string"
}

Response samples

Content type
application/json
{
  • "session": {
    }
}

ProxyResurrectSession

ProxyResurrectSession restores an archived session, returning the updated Session.

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
id
string (id)

Responses

Request samples

Content type
application/json
{
  • "id": "string"
}

Response samples

Content type
application/json
{
  • "session": {
    }
}

ProxyRetrySession

Mutating MCP gateway parity (BOS-402). Session-scoped mutations route to the owning daemon via FindSessionDaemon; chat-scoped mutations via FindDaemonForChat(agent_session_id). A foreign entity resolves to NotFound, so no cross-user mutation can dispatch. ProxyRetrySession retries a failed session (routes by session_id).

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
id
string (id)

Responses

Request samples

Content type
application/json
{
  • "id": "string"
}

Response samples

Content type
application/json
{
  • "session": {
    }
}

ProxyRunCronJobNow

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
daemonId
string (daemon_id)
id
string (id)

Responses

Request samples

Content type
application/json
{
  • "daemonId": "string",
  • "id": "string"
}

Response samples

Content type
application/json
{
  • "session": {
    },
  • "skippedReason": "string"
}

ProxySendChatMessage

Sends a user message into a chat via the owning daemon's reverse stream. Routes by agent_session_id (FindDaemonForChat) since the MCP send tool carries no session_id.

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
agentSessionId
string (agent_session_id)
message
string (message)
wakeIfAsleep
boolean (wake_if_asleep)
submit
boolean or null (submit)

when true, submit the message (BOS-242); when false, prefill only. optional so an omitting (pre-BOS-242) client is treated as submit=true server-side, preserving the prior always-submit proxy behavior.

Responses

Request samples

Content type
application/json
{
  • "agentSessionId": "string",
  • "message": "string",
  • "wakeIfAsleep": true,
  • "submit": true
}

Response samples

Content type
application/json
{
  • "tmuxSessionName": "string",
  • "delivered": true,
  • "noticeText": "string",
  • "deliveryState": "DELIVERY_STATE_UNSPECIFIED"
}

ProxyStopSession

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
id
string (id)

Responses

Request samples

Content type
application/json
{
  • "id": "string"
}

Response samples

Content type
application/json
{
  • "session": {
    }
}

ProxySwitchSessionAccount

Switches a session's live chat to a different account (stop+swap+resume) via the owning daemon's reverse stream. Routes by session_id (FindSessionDaemon) with an optional GetChat authz check, like ProxyWakeChat.

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
sessionId
string (session_id)

for authz scoping (mirror ProxyWakeChat)

agentSessionId
string (agent_session_id)

optional; empty => session's primary live chat

accountId
string (account_id)

"" = system default

force
boolean (force)

Responses

Request samples

Content type
application/json
{
  • "sessionId": "string",
  • "agentSessionId": "string",
  • "accountId": "string",
  • "force": true
}

Response samples

Content type
application/json
{
  • "resumed": true,
  • "targetLabel": "string",
  • "noticeText": "string"
}

ProxyTestAccount

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
daemonId
string (daemon_id)
id
string (id)

Responses

Request samples

Content type
application/json
{
  • "daemonId": "string",
  • "id": "string"
}

Response samples

Content type
application/json
{
  • "account": {
    },
  • "liveSmokeRan": true,
  • "detail": "string"
}

ProxyUpdateAccount

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
daemonId
string (daemon_id)
id
string (id)
label
string or null (label)
priority
integer or null <int32> (priority)
status
string or null (status)

"active" | "disabled"

allowedModels
Array of strings (allowed_models)

Responses

Request samples

Content type
application/json
{
  • "daemonId": "string",
  • "id": "string",
  • "label": "string",
  • "priority": 0,
  • "status": "string",
  • "allowedModels": [
    ]
}

Response samples

Content type
application/json
{
  • "account": {
    }
}

ProxyUpdateChatTitle

ProxyUpdateChatTitle renames a chat (routes by agent_session_id).

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
agentSessionId
string (agent_session_id)
title
string (title)

Responses

Request samples

Content type
application/json
{
  • "agentSessionId": "string",
  • "title": "string"
}

Response samples

Content type
application/json
{ }

ProxyUpdateCronJob

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
daemonId
string (daemon_id)
id
string (id)
name
string or null (name)
prompt
string or null (prompt)
schedule
string or null (schedule)
timezone
string or null (timezone)
isEnabled
boolean or null (is_enabled)
agentName
string or null (agent_name)
model
string or null (model)
gateCommand
string or null (gate_command)
shouldRunSetupCommand
boolean or null (should_run_setup_command)
isZeroOutput
boolean or null (is_zero_output)

Responses

Request samples

Content type
application/json
{
  • "daemonId": "string",
  • "id": "string",
  • "name": "string",
  • "prompt": "string",
  • "schedule": "string",
  • "timezone": "string",
  • "isEnabled": true,
  • "agentName": "string",
  • "model": "string",
  • "gateCommand": "string",
  • "shouldRunSetupCommand": true,
  • "isZeroOutput": true
}

Response samples

Content type
application/json
{
  • "job": {
    }
}

ProxyUpdateNote

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
repoId
string (repo_id)

routing key only; the daemon resolves by id alone

id
string (id)
body
string or null (body)

Unset = leave the body alone.

NoteTagSet (object) or tags (null) (tags)

Unset = leave the tags alone. SET = REPLACE the entire tag set with this list, including replacing it with nothing when the list is empty.

Responses

Request samples

Content type
application/json
{
  • "repoId": "string",
  • "id": "string",
  • "body": "string",
  • "tags": {
    }
}

Response samples

Content type
application/json
{
  • "note": {
    }
}

ProxyUpdateRepo

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
daemonId
string (daemon_id)
repoId
string (repo_id)
displayName
string or null (display_name)
setupScript
string or null (setup_script)
MergeStrategy (string) or merge_strategy (null) (merge_strategy)
canAutoMerge
boolean or null (can_auto_merge)
canAutoMergeDependabot
boolean or null (can_auto_merge_dependabot)
canAutoRepair
boolean or null (can_auto_repair)
shouldArchiveSessionsAfterMerge
boolean or null (should_archive_sessions_after_merge)
sentryOrg
string or null (sentry_org)
object (bossanova.v1.SecretUpdate)

SecretUpdate carries a secret mutation. value is required iff action == SET and is ignored otherwise. Never populated on read/aggregate responses.

object (bossanova.v1.SecretUpdate)

SecretUpdate carries a secret mutation. value is required iff action == SET and is ignored otherwise. Never populated on read/aggregate responses.

expectedUpdatedAt
string <date-time> (google.protobuf.Timestamp)

A Timestamp represents a point in time independent of any time zone or local calendar, encoded as a count of seconds and fractions of seconds at nanosecond resolution. The count is relative to an epoch at UTC midnight on January 1, 1970, in the proleptic Gregorian calendar which extends the Gregorian calendar backwards to year one.

All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap second table is needed for interpretation, using a 24-hour linear smear.

The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By restricting to that range, we ensure that we can convert to and from RFC 3339 date strings.

Examples

Example 1: Compute Timestamp from POSIX time().

 Timestamp timestamp;
 timestamp.set_seconds(time(NULL));
 timestamp.set_nanos(0);

Example 2: Compute Timestamp from POSIX gettimeofday().

 struct timeval tv;
 gettimeofday(&tv, NULL);

 Timestamp timestamp;
 timestamp.set_seconds(tv.tv_sec);
 timestamp.set_nanos(tv.tv_usec * 1000);

Example 3: Compute Timestamp from Win32 GetSystemTimeAsFileTime().

 FILETIME ft;
 GetSystemTimeAsFileTime(&ft);
 UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime;

 // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z
 // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z.
 Timestamp timestamp;
 timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL));
 timestamp.set_nanos((INT32) ((ticks % 10000000) * 100));

Example 4: Compute Timestamp from Java System.currentTimeMillis().

 long millis = System.currentTimeMillis();

 Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
     .setNanos((int) ((millis % 1000) * 1000000)).build();

Example 5: Compute Timestamp from Java Instant.now().

 Instant now = Instant.now();

 Timestamp timestamp =
     Timestamp.newBuilder().setSeconds(now.getEpochSecond())
         .setNanos(now.getNano()).build();

Example 6: Compute Timestamp from current time in Python.

 timestamp = Timestamp()
 timestamp.GetCurrentTime()

JSON Mapping

In JSON format, the Timestamp type is encoded as a string in the RFC 3339 format. That is, the format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where {year} is always expressed using four digits while {month}, {day}, {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone is required. A proto3 JSON serializer should always use UTC (as indicated by "Z") when printing the Timestamp type and a proto3 JSON parser should be able to accept both UTC and other timezones (as indicated by an offset).

For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past 01:30 UTC on January 15, 2017.

In JavaScript, one can convert a Date object to this format using the standard toISOString() method. In Python, a standard datetime.datetime object can be converted to this format using strftime with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use the Joda Time's ISODateTimeFormat.dateTime() to obtain a formatter capable of generating timestamps in this format.

Responses

Request samples

Content type
application/json
{
  • "daemonId": "string",
  • "repoId": "string",
  • "displayName": "string",
  • "setupScript": "string",
  • "mergeStrategy": "MERGE_STRATEGY_UNSPECIFIED",
  • "canAutoMerge": true,
  • "canAutoMergeDependabot": true,
  • "canAutoRepair": true,
  • "shouldArchiveSessionsAfterMerge": true,
  • "sentryOrg": "string",
  • "linearKey": {
    },
  • "sentryKey": {
    },
  • "expectedUpdatedAt": "2023-01-15T01:30:15.01Z"
}

Response samples

Content type
application/json
{
  • "settings": {
    }
}

ProxyUpdateSession

ProxyUpdateSession updates a session's title/tracker (routes by session_id).

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
id
string (id)
title
string or null (title)
trackerUrl
string or null (tracker_url)
trackerId
string or null (tracker_id)

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "title": "string",
  • "trackerUrl": "string",
  • "trackerId": "string"
}

Response samples

Content type
application/json
{
  • "session": {
    }
}

ProxyWakeChat

Wakes a stopped chat's tmux+claude. Routes to the owning daemon via the reverse stream and waits for CommandResult{WakeChatResult}.

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
sessionId
string (session_id)
agentSessionId
string (agent_session_id)
forceFresh
boolean (force_fresh)

If true, the daemon will skip --resume even when a transcript exists.

Responses

Request samples

Content type
application/json
{
  • "sessionId": "string",
  • "agentSessionId": "string",
  • "forceFresh": true
}

Response samples

Content type
application/json
{
  • "outcome": "OUTCOME_UNSPECIFIED",
  • "tmuxSessionName": "string",
  • "reason": "string"
}

PublishDaemonSnapshot

PublishDaemonSnapshot is a unary fallback for networks that proxy normal HTTPS but do not support Connect bidirectional streaming end-to-end. Daemons authenticate with their RegisterDaemon session token and publish the same snapshot shape used as the first DaemonStream event.

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
object (bossanova.v1.DaemonSnapshot)

DaemonSnapshot is the required first event on every stream connect. It carries slim metadata only (IDs, state, timestamps, preview strings) — full chat transcripts are fetched on demand via AttachSessionCommand (decision #5).

daemonId
string (daemon_id)
hostname
string (hostname)
repoIds
Array of strings (repo_ids)
Array of objects (sessions)

Slim: no full transcripts, just session state + display fields.

Array of objects (chats)

Metadata only — see ClaudeChatMetadata.

Array of objects (statuses)

Live chat statuses keyed by agent_session_id (reuses ChatStatusEntry from daemon.proto).

Array of objects (callback_interests)

The daemon's GitHub callback interests at connect time (repo + PR). Carried on the snapshot so a (re)connect reconciles interests atomically with the rest of the read model; steady-state changes arrive as CallbackInterestSet deltas (DaemonEvent field 10).

Responses

Request samples

Content type
application/json
{
  • "snapshot": {
    }
}

Response samples

Content type
application/json
{ }

RefreshCloudEntitlements

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
object (RefreshCloudEntitlementsRequest)

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "status": {
    }
}

RegisterDaemon

Daemon registry

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
daemonId
string (daemon_id)
hostname
string (hostname)
repoIds
Array of strings (repo_ids)

Repos this daemon manages.

endpoint
string or null (endpoint)

Optional endpoint URL where the daemon's DaemonService is reachable. Required for proxy RPC support. Daemons behind NAT may omit this.

email
string (email)

User email from the WorkOS device code response. Used for JIT user creation when the user doesn't exist in the DB yet.

Responses

Request samples

Content type
application/json
{
  • "daemonId": "string",
  • "hostname": "string",
  • "repoIds": [
    ],
  • "endpoint": "string",
  • "email": "string"
}

Response samples

Content type
application/json
{
  • "daemonId": "string",
  • "sessionToken": "string"
}

ReportBug

Bug reporting (ctrl+g in TUI; ctrl+b is a deprecated alias). Unauthenticated; optionally resolves the caller's identity when a bearer token is present.

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
comment
string (comment)
object (bossanova.v1.ReportContext)

ReportContext bundles everything the TUI attaches to a bug report. All fields are optional; the server tolerates empty values.

Responses

Request samples

Content type
application/json
{
  • "comment": "string",
  • "context": {
    }
}

Response samples

Content type
application/json
{
  • "reportId": "string"
}

TransferSession

Session transfer between daemons

header Parameters
Connect-Protocol-Version
required
number (Connect-Protocol-Version)
Value: 1

Define the version of the Connect protocol

Value: 1
Connect-Timeout-Ms
number (Connect-Timeout-Ms)

Define the timeout, in ms

Request Body schema: application/json
required
sessionId
string (session_id)
sourceDaemonId
string (source_daemon_id)

Daemon to transfer FROM.

targetDaemonId
string (target_daemon_id)

Daemon to transfer TO.

Responses

Request samples

Content type
application/json
{
  • "sessionId": "string",
  • "sourceDaemonId": "string",
  • "targetDaemonId": "string"
}

Response samples

Content type
application/json
{
  • "session": {
    },
  • "targetDaemonId": "string"
}