worker-cleanup
Remove completed or abandoned worker worktrees and their branches. Use to clean up after workers finish their tasks.
Installation
Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.
View source ↗GuidesSkill instructions
Worker Cleanup Skill
Remove completed or abandoned worker worktrees.
Usage
/worker-cleanup [worktree-path-or-branch]
/worker-cleanup --all-merged
/worker-cleanup --all
Examples
/worker-cleanup ../artemis-issue-42
/worker-cleanup feat/issue-42-retry
/worker-cleanup --all-merged
Instructions
Single Worktree Cleanup
When given a specific worktree or branch:
-
Check for uncommitted changes
cd <worktree> && git status --porcelainIf dirty, warn user and ask for confirmation.
-
Check if branch was merged
git branch --merged main | grep <branch>If not merged, warn user about unmerged commits.
-
Remove worktree
git worktree remove <worktree-path> -
Delete branch if merged
git branch -d <branch> # Safe delete (fails if unmerged)
Cleanup All Merged (--all-merged)
Find and remove all worktrees whose branches are merged to main:
# Get merged branches
MERGED=$(git branch --merged main | grep -v main)
# For each, remove worktree and branch
for branch in $MERGED; do
worktree=$(git worktree list | grep "$branch" | awk '{print $1}')
if [ -n "$worktree" ]; then
git worktree remove "$worktree"
git branch -d "$branch"
fi
done
Cleanup All (--all)
DANGEROUS - Removes all non-main worktrees:
- List all worktrees
- Show uncommitted/unmerged status for each
- Require explicit confirmation
- Remove each worktree and optionally delete branches
Output
Show cleanup summary:
Cleaned up 3 worktrees:
- ../artemis-issue-42 (feat/issue-42-retry) - merged, deleted
- ../artemis-feat-logging (feat/add-logging) - merged, deleted
- ../artemis-old-experiment (test/old) - unmerged, branch kept
Remaining worktrees: 1
- ../artemis-wip (feat/work-in-progress) - has uncommitted changes
Safety
- Never remove main worktree
- Warn before removing worktrees with uncommitted changes
- Keep unmerged branches by default (use
-Dflag to force) - Always show what will be deleted before confirming
Examples
Read the usage examples in the source repository.
View source ↗Source history
- Indexed on
- 2026-01-20
- Index updated
- 2026-01-26
- Branch
- main
Index and sync dates describe this directory. View the source repository for code history.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!