cyberine
UsageRun recipes

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, then CYBERINE_RUN_ID, then a cyberine-<run8>-* worktree directory. It works directly with cyberine digest, apply and stop.
  • <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 to claude --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-kt becomes kt), or the lane id for a lane.
  • A name never ends in _<digits> or -<3+ digits>: an all-digit id gets an x appended.
SpawnName
fleet claude worker or seat (cyberine run, plan, ask, research advisors)cy-worker-<run8>-<session8>[-<seat>]
LLM judge on a Claude seatcy-judge-...
web search on a Claude seatcy-search-<session8>[-<seat>]
harvest judge, autopilot lanescy-harvest-..., cy-lane-..., cy-plan-...
cyberine master with --cli claudecy-master-[<run8>-]<session8>
/cyberine:end and cyberine tasks end --handoff long writercy-handoff-<session8>
autopilot turns and quota probecy-ap-<run8>-s<N>, cy-ap-<run8>-probe
cyberine run --bg fleet rowcy-run-<run8>
CYBERINE_CLAUDE_WORKER_MODE=bg worker rowcy-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.