From fleet
Find sessions in the multi-session command center whose PRs have already merged on GitHub, and kill+cleanup each (with confirmation). Closes the loop on "spawn → ship → tidy up" without manual bookkeeping. Use when the user says "fleet cleanup", "/fleet:cleanup", "kill the merged sessions", "tidy up", "sweep done agents", or any phrasing about reclaiming finished sessions.
npx claudepluginhub bytedeskai/bytedesk-marketplace --plugin fleet[--dry-run] # show what would be killed without doing itThis skill is limited to using the following tools:
Walks every active session in the dashboard, checks each session's branch on GitHub via `gh pr list`, and identifies sessions whose PR has merged. Offers to `claude-sessions kill` each merged one (confirms once for the whole batch, not per session).
Prevents silent decimal mismatch bugs in EVM ERC-20 tokens via runtime decimals lookup, chain-aware caching, bridged-token handling, and normalization. For DeFi bots, dashboards using Python/Web3, TypeScript/ethers, Solidity.
Share bugs, ideas, or general feedback.
Walks every active session in the dashboard, checks each session's branch on GitHub via gh pr list, and identifies sessions whose PR has merged. Offers to claude-sessions kill each merged one (confirms once for the whole batch, not per session).
Implements roadmap item #2.2 (auto-cleanup on PR merge) but invoked manually rather than via webhook. Safe to run any time — read-only until the final confirm.
--dry-run if present.claude-sessions output for ticket names + branch names.gh pr list --head <branch> --state all --json number,state,mergedAt,url --limit 1
state == "MERGED". Eligible for cleanup.CLOSED. Eligible (work was abandoned).OPEN. Skip.--dry-run, stop here.claude-sessions kill <ticket> for each eligible session, answering y to its confirmation prompt automatically (since the user already confirmed the batch).Discovery table:
PR-status sweep across 5 sessions:
STATUS TICKET BRANCH PR URL
MERGED BDP-360 feature/BDP-360-project-dns-host-ui #340 https://github.com/ByteDeskAI/bytedesk-platform/pull/340
MERGED BDP-361 feature/BDP-361-deploy-tab-redesign #342 https://github.com/ByteDeskAI/bytedesk-platform/pull/342
OPEN BDP-364 feature/BDP-364-react-arborist-postmerge #346 https://github.com/ByteDeskAI/bytedesk-platform/pull/346
CLOSED BDP-380 feature/BDP-380-experimental-thing #348 https://github.com/ByteDeskAI/bytedesk-platform/pull/348
NO_PR BDP-401 feature/BDP-401-deploy-tab-grid - -
Eligible for cleanup: 3 (BDP-360, BDP-361, BDP-380)
Confirmation:
Kill and cleanup these 3 sessions? [y/N] _
After cleanup:
✓ Cleanup complete:
BDP-360 ✓ killed, workspace removed, branch deleted
BDP-361 ✓ killed, workspace removed, branch deleted
BDP-380 ✓ killed, workspace removed, branch deleted
Remaining sessions: BDP-364 (open PR), BDP-401 (no PR yet).
--dry-run removed, always show the table first.gh pr list fails (auth, network), report the error and skip cleanup; do NOT assume "no PR" means "safe to kill".claude-sessions kill fails for one session (e.g. uncommitted changes in the workspace), continue with the others and report the failure./fleet:cleanup calls claude-sessions kill <TICKET> for each eligible session, and kill does three destructive things in order: tmux kill, git worktree remove, branch delete.
If git worktree remove aborts, it's because the spawned session has uncommitted work in the worktree — the agent produced output that wasn't pushed. The fleet plugin will refuse to force-clean a worktree with uncommitted changes; this is intentional. Investigate before forcing:
cd into the worktree path (<repo>/.claude/worktrees/<TICKET>-<slug>/) and run git status to see what's unsaved./fleet:cleanup.git worktree remove --force <path> manually, then re-run /fleet:cleanup for the rest.Don't bypass the safety by editing the kill flow. The friction is the feature.
/fleet:cleanup
/fleet:cleanup --dry-run