Supervisor sessions
IPC-only routes for registering, listing, and killing supervised sessions.
| Method | Path | Summary | Flags |
|---|---|---|---|
| GET | /ipc/sessions | List active supervisor sessions. | IPC |
| POST | /ipc/sessions | Register a new session. | IPC |
| GET | /ipc/sessions/{id} | Fetch session details. | IPC |
| PUT | /ipc/sessions/{id} | Update session metadata. | IPC |
| DELETE | /ipc/sessions/{id} | Unregister a session. | IPC |
| POST | /ipc/sessions/{id}/kill | Terminate a session and its process tree. | IPC |
All routes in this group are IPC-only — they reject non-loopback callers at the
listener. The thin-client supervisor (grith exec when a daemon is running) uses
these to register itself and report session state.
Session shape
{
"id": "uuid-...",
"profile": "claude-code",
"zone": "dayjob",
"started_at": "2026-05-14T09:02:13Z",
"root_pid": 17421,
"root_command": "claude",
"tree_pids": [17421, 17430, 17440],
"decisions": { "allow": 781, "queue": 38, "deny": 15 },
"last_activity": "2026-05-14T09:14:32Z",
"frozen": false
}
Lifecycle
A thin client typically:
POST /ipc/sessions— register itself. Daemon assigns an id and returns the active config snapshot.GET /ipc/sessions/{id}— periodically pull current config (in case of config-reload events).PUT /ipc/sessions/{id}— update activity heartbeat.DELETE /ipc/sessions/{id}— unregister at exit.
POST /ipc/sessions/{id}/kill is callable from any local origin (it's how
grith supervisor kill and the dashboard's terminate button work) but still
requires loopback.
See also
Last updated: 2026-05-14Edit this page on GitHub →