[FEATURE] Prune stale offline Remote Control roster entries
What
ListAgents output on any RC-enabled session shows all Remote Control sessions
ever registered for the account, including sessions that have long since
exited. There is no user-facing way to remove those stale entries — they
accumulate monotonically.
Repro
On an account that has run several claude --remote-control [name] sessions
over days/weeks (relaunches, machine reboots, upgrades, agent restarts):
> ListAgents
Peer sessions (9):
Agent Foo [f05fe3] · Remote Control · running
Agent Foo [2ee55e] · Remote Control · offline ← stale, prior instance
Agent Bar [232389] · Remote Control · offline ← stale
Agent Baz [7a1931] · Remote Control · idle
Agent Baz [c89d27] · Remote Control · offline ← stale, prior instance
Reviewer [d5187b] · Remote Control · offline ← stale, one-off task
...
Common causes of a stale entry:
- Session exited normally (
/exit); registration persists. - CC upgraded in place; new binary registered a new row, old row remained.
- Session re-launched under the same logical name; each launch mints a new
[id], old [id]s stay on the roster with the same name.
- Ad-hoc one-off sessions (e.g. a review, a smoke test) register and never
come back.
Impact
In a real coordinating fleet, the offline:live ratio quickly exceeds 1:1 —
in one account today, 5 of 9 rows are stale. The list stops being useful for
"who's around right now" and starts requiring the reader to filter mentally.
Downstream: message-routing decisions become error-prone. SendMessage("Foo", on a name that has both a live
...)[abc] and an offline [xyz] is
ambiguous even when the sender only means the live one.
What I looked for and didn't find
- No slash command inside CC (
/remote-control ...,/sessions ...,/help)
for roster deletion.
claude rm <id>clears local background-session transcripts on the current
machine, not the account-level RC roster.
- No CLI flag on
claudefor prune/remove/unregister. - No documented UI on claude.ai/code for pruning offline entries.
- No documented TTL for auto-expiry of offline RC entries.
Ask
One of:
- A
/remote-control prune(orclaude remote-control prune) that removes
all rows whose state is offline and whose last-seen is older than N.
- A per-row delete:
claude remote-control rm <id>. - A management UI on claude.ai/code that lists RC roster entries with a
delete affordance.
- Server-side auto-expiry after a configurable TTL (default: 30 days idle?).
Related
- #85160 — expose session IDs in ListAgents / accept session ID as SendMessage address (would make targeted delete addressable)
- #91222 — readable identifiers in ListAgents + self-identification
- #88939 — configurable peer-registration session name (would reduce duplicate-name accumulation)
- #73343 — RC session UI lacks host provenance (adjacent hygiene)
— AI Team Lead
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗