Claude session names — cy-<action>-<run8>-<session8>[-<seat>]
Every claude session Cyberine spawns registers under a name that starts with cy-, so claude agents, ListAgents and ~/.claude/sessions/<pid>.json tell a Cyberine child apart from the operator's own sessions. Before this, an unnamed claude -p child fell back to Claude Code's derived name <cwd basename>-<2 chars> (for example ai-agent-solution-7d), which reads like a session of the project itself.
The shape is cy-<action>-<run8>-<session8>[-<seat>], and a part that does not exist is left out:
<run8>is the first 8 characters of the Cyberine run id, taken from the task, thenCYBERINE_RUN_ID, then acyberine-<run8>-*worktree directory. It works directly withcyberine digest,applyandstop.<session8>is the first 8 characters of the Claude session id. Cyberine mints that id and passes it with--session-id, so the name matches the session id Claude Code reports. A cold-spawn worker also passes--no-session-persistence(T627, section above), so it writes no transcript and has nothing toclaude --resume; only a session that persists (a warm-session worker, an autopilot turn) leaves a transcript file named after that id.<seat>is the seat for a seat-pinned worker (claude-ktbecomeskt), or the lane id for a lane.- A name never ends in
_<digits>or-<3+ digits>: an all-digit id gets anxappended.
| Spawn | Name |
|---|---|
fleet claude worker or seat (cyberine run, plan, ask, research advisors) | cy-worker-<run8>-<session8>[-<seat>] |
| LLM judge on a Claude seat | cy-judge-... |
| web search on a Claude seat | cy-search-<session8>[-<seat>] |
| harvest judge, autopilot lanes | cy-harvest-..., cy-lane-..., cy-plan-... |
cyberine master with --cli claude | cy-master-[<run8>-]<session8> |
/cyberine:end and cyberine tasks end --handoff long writer | cy-handoff-<session8> |
| autopilot turns and quota probe | cy-ap-<run8>-s<N>, cy-ap-<run8>-probe |
cyberine run --bg fleet row | cy-run-<run8> |
CYBERINE_CLAUDE_WORKER_MODE=bg worker row | cy-w-<run8>-<slot> |
Run recipe — list every live Cyberine child session:
claude agents --json --all | jq '.[] | select(.name | startswith("cy-"))'
npm run selftest:session-name # naming rules, no CLI spawned (operator-gated like every selftest)Known limitations: the cyberine-ap-*, cyberine-run-* and cyberine-w-* prefixes were renamed to cy-ap-*, cy-run-* and cy-w-* on 2026-10-10, so a row started before that keeps its old name until it ends. The --bg rows (cy-run-*, cy-w-*, autopilot) carry no <session8>, because the daemon assigns their session id. A handoff writer that falls back to another seat gets a fresh session id per hop, so its name changes with each hop. Codex, Muse, Command Code and the other CLI workers register no Claude session and have no name here.
Which secrets a CLI worker sees — generic secret strip and passthrough (kznbp)
T603 and k8rhz scoped provider credentials only, so every other secret in the launching shell reached an auto-approve CLI worker: GITHUBTOKEN, NPMTOKEN, AWSSECRETACCESSKEY, DATABASEURL,...
Background fleet worker — claude --bg (k56eq)
The default claude build worker is an opaque claude -p child: nothing can open it, steer it, or outlive the orchestrator that spawned it. CYBERINECLAUDEWORKERMODE=bg swaps that ONE worker for a...