POST /api/sessions/:id/permissions/:requestId/approve
Approve a permission request from the agent. Authentication: RequiredPath Parameters
Session ID
Permission request ID (from session’s agentState.requests)
Request Body
Permission mode to apply for future requests. 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
Array of tool names to allow
Approval decision type:
approved, approved_for_session, denied, or abortUser answers to agent questions. Format varies:
- Flat:
{"question1": ["answer1", "answer2"]} - Nested:
{"question1": {"answers": ["answer1", "answer2"]}}
Response
Example: Simple Approval
Example: Approve with Mode Change
Example: Approve with Tool Restrictions
Example: Approve with Answers
Errors
400- Invalid body or permission mode403- Access denied404- Session or request not found409- Session not active503- Hub not connected
POST /api/sessions/:id/permissions/:requestId/deny
Deny a permission request from the agent. Authentication: RequiredPath Parameters
Session ID
Permission request ID
Request Body
Denial decision type:
denied or abortResponse
Example: Simple Denial
Example: Deny and Abort
Errors
400- Invalid body403- Access denied404- Session or request not found409- Session not active503- Hub not connected
Permission Request Flow
- Agent requests permission - Request appears in session’s
agentState.requests - Client receives notification - Via SSE or WebSocket update
- User reviews request - View pending requests in
GET /api/sessions/:id - User responds - Call approve or deny endpoint
- Agent receives response - Via Socket.IO RPC
- Request moves to completed - Stored in
agentState.completedRequests
Permission Request Structure
Requests insession.agentState.requests have this structure:
Completed Request Structure
After approval/denial, requests move tosession.agentState.completedRequests:
Decision Types
approved- Approve this request onlyapproved_for_session- Approve and apply mode for future requestsdenied- Deny this request, agent continuesabort- Deny and abort the agent’s current task