Synopsis
Transfer ball ownership without adding an entry. Directly updates thread metadata.Usage
Arguments
Thread topic identifier
New ball owner. Common values:
codex, human, or custom agent nameOptions
Threads directory path. Defaults to
./watercooler or $WATERCOOLER_DIR.Examples
Transfer to human
Transfer to codex
Transfer to custom agent
Update ball in custom directory
Common Ball Values
| Ball Value | Typical Use |
|---|---|
codex | AI agent has control |
human | Human developer has control |
planner-agent | Specific named agent |
reviewer | Waiting for review |
pm | Project manager has ball |
Expected Output
The command prints the path to the updated thread file:Side Effects
Metadata Updates
- Updates
ballfield in YAML frontmatter - Updates
last_updatedtimestamp to current time - Rewrites thread projection file
Git Sync
- Triggers automatic git commit (if threads directory is a git repository)
- Commit message:
"Update ball: feature-auth -> human"
Ball Transfer Methods
Different ways to change ball ownership:1. set-ball (silent transfer)
- No entry added
- Direct metadata update
- Quick ownership change
2. say (auto-flip)
- Adds entry
- Automatically flips ball to counterpart
- Documents the handoff
3. handoff (explicit transfer with message)
- Adds handoff entry
- Explicit ball transfer
- Best for clear transitions
4. ack (keep ball)
- Adds entry
- Ball stays with current owner
- No transfer
Comparison Table
| Method | Adds Entry | Ball Change | Use Case |
|---|---|---|---|
set-ball | ✗ | Direct | Quick correction |
say | ✓ | Auto-flip | Complete work, pass ball |
handoff | ✓ | Explicit | Clean transition |
ack | ✓ | None | Keep working |
Workflows
Correct ball ownership
Multi-agent coordination
Emergency takeover
Batch ball updates
Query Ball Status
Ball Mechanics
The ball represents who should act next:- Ball with codex: AI agent should respond or take action
- Ball with human: Human developer should respond or take action
- Ball with specific agent: That agent is responsible for next action
Best Practices
Use handoff for documented transfers
Use set-ball for corrections
Use say for natural workflow
Error Handling
Thread not found
watercooler list.
Related Commands
- handoff - Explicit ball transfer with entry
- say - Add entry with auto ball-flip
- ack - Add entry without ball change
- set-status - Update thread status
- list - List threads with ball ownership