Worker Commands¶
Worker commands are run by Claude inside a worker session. When you spawn a worker, it operates autonomously—you rarely need to know these commands.
When workers use these: Claude running inside a worker session uses these commands to signal status, complete work, and communicate with the hub. You observe the results from your hub session.
This page documents what happens inside workers for reference.
Session Info¶
wt status¶
Show current session information.
Output:
Session: toast
Bead: myproject-abc123
Title: Add user authentication
Worktree: ~/worktrees/toast
Branch: myproject-abc123
Port offset: 1
Status: working
Created: 2026-01-19 08:30
Last activity: 2026-01-19 10:45
Completing Work¶
wt done¶
Mark work complete, commit, push, and create PR.
What it does:
- Stages all changes
- Commits with descriptive message
- Pushes branch to remote
- Creates PR (based on merge mode)
- Updates bead status to
awaiting_review
Options:
| Flag | Description |
|---|---|
--merge-mode |
Override project merge mode |
--no-pr |
Skip PR creation |
-m |
Custom commit message |
wt close¶
Same as wt done plus cleanup.
What it does:
- Everything
wt donedoes - Removes worktree
- Terminates tmux session
wt abandon¶
Discard uncommitted changes and close session.
Warning
This discards all uncommitted work. Use with caution.
What it does:
- Resets all changes (
git reset --hard) - Removes worktree
- Terminates tmux session
- Does NOT update bead status
Status Signaling¶
wt signal <status> [message]¶
Update session status for the hub to see.
wt signal ready "Implementation complete, tests passing"
wt signal blocked "Need API credentials"
wt signal error "Build failing on line 42"
wt signal working "Refactoring auth module"
wt signal idle
Statuses:
| Status | Meaning |
|---|---|
working |
Actively making changes |
idle |
Waiting, not working |
ready |
Work complete, ready for review |
blocked |
Cannot proceed, needs help |
error |
Something went wrong |
The message is optional but helpful for context:
Environment¶
Inside a worker session, these environment variables are available:
| Variable | Description | Example |
|---|---|---|
BEADS_DIR |
Path to main repo's beads | /Users/you/myproject/.beads |
PORT_OFFSET |
Port offset for test isolation | 1 |
Using BEADS_DIR¶
All bd commands automatically use the main repo's beads:
# These work from the worktree
bd list
bd show myproject-abc123
bd update myproject-abc123 --status=in_progress
Using PORT_OFFSET¶
Configure your services to use the offset:
# Start test database
docker run -d -p ${PORT_OFFSET}5432:5432 postgres
# Or in your .env
DATABASE_URL=postgres://localhost:${PORT_OFFSET}5432/mydb
Git Operations¶
The worktree is a full git checkout. Normal git commands work:
However, prefer using wt done for completing work as it handles:
- Proper commit message formatting
- Branch pushing
- PR creation
- Bead status updates