[FEATURE] Let me mark an agent session as completed / dismiss it from the agents view
What I'm running into
When I have several background agents going, some of them end up stuck on "Ready for review" or "Needs input" that I'm simply done with. I don't want to answer them or review them anymore — I no longer need that session.
Right now there's no way to just mark one as completed or dismiss it. So they pile up in the agents view and I can't tell the sessions I still care about apart from the ones I've already abandoned. The list keeps growing with things I'll never come back to.
What would fix it
A simple action to mark an agent session as done / dismiss it from the view — without having to respond to it or interact with it further. Ideally:
- A "mark as completed" or "dismiss" action on a session
- Dismissed sessions drop out of the active list (archived, not necessarily deleted)
- Bonus: being able to dismiss several at once
Why it matters
The agents view is only useful if it reflects what I actually still need to deal with. A way to clear out abandoned sessions would keep it readable and let me focus on the agents that genuinely need my attention.
Showing cached comments. Read the full discussion on GitHub ↗
5 Comments
+1. The "mark as completed / dismiss" framing here covers the most common case (sessions stuck in "Needs input" / "Working" forever), and the underlying ask shows up across many issues under different framings:
/archiveand/deleteconversation commands (cites Codex CLI parity)claude agents attach <id|name>Each is closed-without-fix or open-without-engagement, and the inactivity-bot has now started reaping them (#58966 hit it 2026-06-15). Meanwhile the community has improvised: the Agent Sessions Mac app, claude-picker, the
~/.claude/projects/<encoded-cwd>/<uuid>.jsonlfile-move trick, themcp__ccd_session_mgmt__archive_sessionMCP tool that exists in Claude Code Desktop but not the CLI, and at least one user-built/foregroundskill (gist) — but the CLI Agents view itself still has onlyCtrl+X Ctrl+X, which destroys the worktree, jobs dir, and session metadata.@bogini — could one of these (this issue or another) be picked as the canonical tracking issue, the rest close-linked into it, and locked against the inactivity-bot? Each closure scatters the signal across new dupe filings instead of consolidating it. Happy to consolidate language across the open ones if it helps.
Still reproduces on 2.1.218. Adding a root-cause detail I don't think has been stated on any of the linked threads, because it rules out the obvious workaround.
There is no user-side way to clear these, and there can't be: no hook event fires when you open or read a session.
The hooks reference documents 30 events. The only session-lifecycle ones are
SessionStart(begins or resumes) andSessionEnd(terminates). There is noSessionView/SessionRead/ transcript-opened / focus event. Every event that can move a session out of "Needs input" implies a new turn:UserPromptSubmit,Stop/StopFailure,PermissionRequest/PermissionDenied,Elicitation/ElicitationResult.Consequence: opening a session, reading it, and deciding you have nothing to say is invisible to the runtime. The indicator clears only if you send a message. So "just open the stale ones to reconcile them" is not a workaround, and neither is a hook-based one. That is why every improvised fix in the ecosystem (the
.jsonlfile-move trick, third-party session managers, Desktop'smcp__ccd_session_mgmt__archive_session) reaches around the CLI rather than through it.Where this bites hardest: long-lived background slots. A persistent bg agent that finishes a turn and parks awaiting input is by design idle-awaiting-input. Its steady resting state is the attention indicator. It re-lights after every use and never clears until the next prompt, so the signal is permanently on for exactly the sessions you keep around longest.
Two newer threads for @awreccan's consolidation list, both filed after that comment:
claude agentsfleet view (stop/close/rmdon't clear them); confirmed on 2.1.210.Flagging that this is labeled
stalewhile still reproducing.This has got to be THE most aggravating problem in Claude Code!
Even when I yell at the agent to "be done", "complete", "there's effing nothing left to review! Exit!" the darn things remain in the "ready to review" section of Claude Code. The only way to clear them is to CTRL+X them out. I do not want to do this. Some agents I want to reopen and engage w/ again.
The root cause ajeenkya identified is the crux of why improvised solutions keep falling short. There is no hook that fires when you read a session and decide you have nothing to say -- so every external tool has to reach around the CLI rather than through it.
The practical consequence is that the "stale sessions pile up" problem is not solvable from outside. The file-move trick, third-party session managers, Desktop's archive MCP -- they all work around a missing affordance rather than filling it cleanly. The only path that does not require hacks is a first-party "dismiss / archive" action exposed at the CLI level.
One thing worth noting for the implementation: the two most common cases where sessions pile up are (1) long-lived background agents that park after every turn by design, and (2) abandoned sessions where the task is done but the session was never explicitly closed. These have different remedies -- case 1 needs a "I saw this, nothing to do" acknowledgment that does not end the session; case 2 needs a soft close that archives without destroying the session data. A single "mark as done" action that differs from Ctrl+X Ctrl+X would cover both if it archives rather than destroys.
The
stalelabel is still on this while it reproduces on 2.1.228 -- flagging that so the bot does not close it again before there is a fix.You can already clear these out of the agents view: select the session and press
Ctrl+Xtwice (within two seconds) to stop it and remove it from the list. PressingCtrl+Xon a group header (e.g.Ready for review) removes every session in that group after a confirmation, andclaude rm <id>does the same from the shell.Removing a session doesn't delete the conversation — the transcript stays on your machine and you can bring it back with
/resumein the dispatch input orclaude --resume. Docs: https://code.claude.com/docs/en/agent-view#organize-the-listClosing since this covers the request; if you're seeing something different, let us know.
🤖 Generated with Claude Code