GET /api/sessions
List all sessions in the authenticated user’s namespace. Authentication: RequiredResponse
Array of session summaries, sorted by active status and updated time.
Example
GET /api/sessions/:id
Get full details for a specific session. Authentication: RequiredPath Parameters
Session ID
Response
Full session object with all metadata and state
Example
Errors
403- Access denied (session belongs to different namespace)404- Session not found503- Hub not connected
POST /api/sessions/:id/abort
Abort a running session. Authentication: RequiredPath Parameters
Session ID
Response
Example
Errors
403- Access denied404- Session not found409- Session not active
POST /api/sessions/:id/switch
Switch an active session to remote mode (web-controlled). Authentication: RequiredPath Parameters
Session ID
Response
Example
Errors
403- Access denied404- Session not found409- Session not active
POST /api/sessions/:id/resume
Resume an inactive session on an available machine. Authentication: RequiredPath Parameters
Session ID
Response
“success”
The resumed session ID
Example
Errors
403- Access denied404- Session not found503- No machine online
POST /api/sessions/:id/upload
Upload a file to an active session (max 50MB). Authentication: RequiredPath Parameters
Session ID
Request Body
Filename (max 255 chars)
Base64-encoded file content
MIME type (max 255 chars)
Response
Whether upload succeeded
Path where file was saved
Error message if failed
Example
Errors
400- Invalid body403- Access denied404- Session not found409- Session not active413- File too large (max 50MB)500- Upload failed
POST /api/sessions/:id/upload/delete
Delete a previously uploaded file. Authentication: RequiredPath Parameters
Session ID
Request Body
Path to the uploaded file
Response
Whether deletion succeeded
Example
POST /api/sessions/:id/archive
Archive an active session. Authentication: RequiredResponse
Example
PATCH /api/sessions/:id
Rename a session. Authentication: RequiredRequest Body
New session name (1-255 chars)
Response
Example
Errors
400- Invalid body409- Version conflict (session modified concurrently)500- Failed to rename
DELETE /api/sessions/:id
Delete an inactive session. Authentication: RequiredResponse
Example
Errors
409- Cannot delete active session (archive first)
GET /api/sessions/:id/slash-commands
List available slash commands for a session. Authentication: RequiredResponse
Whether the request succeeded
Array of slash command names
Example
GET /api/sessions/:id/skills
List available skills for a session. Authentication: RequiredResponse
Whether the request succeeded
Array of skill objects
Example
POST /api/sessions/:id/permission-mode
Set the permission mode for an active session. Authentication: RequiredRequest Body
Permission mode. Valid values depend on agent flavor:
- Claude:
default,acceptEdits,bypassPermissions,plan - Codex/Gemini:
default,read-only,safe-yolo,yolo - OpenCode:
default,yolo - Cursor:
default,plan,ask,yolo
Response
Example
Errors
400- Invalid permission mode for session flavor409- Failed to apply mode
POST /api/sessions/:id/model
Set the model mode for an active Claude session. Authentication: RequiredRequest Body
Model mode:
default, sonnet, or opus (Claude only)Response
Example
Errors
400- Model mode only supported for Claude sessions409- Failed to apply mode