Branch a session
A new session with the conversation up to atSeq, and the files as they were then.
bearerAuthorizationBearer <token>An API token
id*stringA session id
application/json- body
atSeq*integerThe last entry to keep
1 <= valuerequestId?stringThe new session
application/json- response
sessionId*stringrequestId*stringThe caller's key, as given
principal*stringWhose session it is
meta*Labels fixed at creation: up to 16, key ^[a-z][a-z0-9_]{0,31}$, value up to 256 characters. agent picks an agent, agent_revision pins one, repo picks repositories (<connection>:<path>, comma-separated, up to 10), pool picks a pool of your machines. Keys starting with slack_ or flow are Pistis's own and refused.
skills*createdAt*integerCreated (milliseconds since the epoch)
endedAt?integerEnded: sandbox deleted, input refused, conversation kept (milliseconds since the epoch)
model*parent?||curl -X POST 'http://127.0.0.1:7777/sessions/ses_6c1f2a0b9d3e4f5a6b7c/branch' \ -H 'Content-Type: application/json' \ -d '{ "atSeq": 1}'{ "sessionId": "string", "requestId": "string", "principal": "string", "meta": { "property1": "string", "property2": "string" }, "skills": { "property1": "string", "property2": "string" }, "createdAt": 0, "endedAt": 0, "model": { "id": "string", "thinking": "off" }, "parent": { "kind": "branch", "sessionId": "string", "atSeq": 0 }}Run a step again POST
Runs one earlier tool call again, with the same tool and arguments, as a step of its own; the model sees its result on the next turn. Only while the session is idle. The same `toolCallId` and `idempotencyKey` run it once.
Switch a session's model POST
From its next model call on. Without `thinking`, the level stays if the model takes it, else `off`.