| name | tell |
| description | Delegate tasks to other agents - pi sessions or external agents (claude, opencode, aider). Non-blocking with task tracking and completion notifications. |
| script | scripts/tell.sh |
Tell / Delegate
Delegate tasks to other agents. Works with both pi agent sessions and external agents (Claude Code, opencode, aider).
Script location: ~/.dotfiles/home/common/programs/pi-coding-agent/skills/tell/scripts/tell.sh
Note: All commands below use tell.sh for brevity. Always use the full path above when executing.
Auto-notification: When a delegated task completes, you'll be notified via:
- ntfy - Push notification to your devices
- Session message -
[TASK_RESULT:id] sent to your pi session
Tell a pi agent
Send a task to another pi agent running in a tmux session:
~/.dotfiles/home/common/programs/pi-coding-agent/skills/tell/scripts/tell.sh mega "fix the failing tests in src/auth"
~/.dotfiles/home/common/programs/pi-coding-agent/skills/tell/scripts/tell.sh rx "review PR #42 and leave comments"
Explicit window targeting with session:window syntax:
~/.dotfiles/home/common/programs/pi-coding-agent/skills/tell/scripts/tell.sh rx:agent "do something"
~/.dotfiles/home/common/programs/pi-coding-agent/skills/tell/scripts/tell.sh mega:0 "do something"
Modern /tell and tell_pi routing: Prefer the Pi extension over this legacy script. It discovers live Pi manifests and sockets, excludes the originating instance from implicit selection, and hard-errors when an explicit target is missing, ambiguous, or busy/unreachable. In non-interactive tool calls, it never opens selector UI or falls back to the current instance; errors list reachable non-current candidates.
Multi-instance support: If a session has multiple pi instances (e.g., mega:0 and mega:agent), the tell skill will:
- If
session:window specified → use that socket directly
- Otherwise try socket first (cleaner, no shell pollution)
- Prefer the
agent window socket, then window 0, then any available
- Fall back to tmux
send-keys if no socket available
Socket pattern: ${PI_STATE_DIR:-~/.local/state/pi}/sockets/pi-{session}-{window}.sock
Delegate to external agents (yolo mode)
Spawn an external agent in a tmux session to handle a task:
~/.dotfiles/home/common/programs/pi-coding-agent/skills/tell/scripts/tell.sh --agent claude "run the user-story-sync skill"
~/.dotfiles/home/common/programs/pi-coding-agent/skills/tell/scripts/tell.sh --agent opencode "fix the failing tests in src/auth"
~/.dotfiles/home/common/programs/pi-coding-agent/skills/tell/scripts/tell.sh --agent aider "refactor the database module"
Supported agents:
claude - Claude Code (runs with --dangerously-skip-permissions)
opencode - OpenCode
aider - Aider (runs with --yes-always)
codex - Codex CLI (runs with --full-auto)
Returns immediately. The agent runs in a background tmux session.
Task management
~/.dotfiles/home/common/programs/pi-coding-agent/skills/tell/scripts/tell.sh --list
~/.dotfiles/home/common/programs/pi-coding-agent/skills/tell/scripts/tell.sh --status TASK_ID
~/.dotfiles/home/common/programs/pi-coding-agent/skills/tell/scripts/tell.sh --watch TASK_ID
~/.dotfiles/home/common/programs/pi-coding-agent/skills/tell/scripts/tell.sh --kill TASK_ID
When you receive a task (pi agents)
You'll see: [TASK:abc123 from mega] do the thing
Send updates:
~/.dotfiles/home/common/programs/pi-coding-agent/skills/tell/scripts/tell.sh --update abc123 "halfway done"
~/.dotfiles/home/common/programs/pi-coding-agent/skills/tell/scripts/tell.sh --done abc123 "finished, all tests pass"
Attach to external agent session
For interactive debugging, attach directly:
tmux -S ~/.local/state/pi/agent-sockets/tasks.sock attach -t task-abc123-claude
Detach with Ctrl+b d.
Completion notifications
When a task completes (either external agent or pi agent calling --done):
- ntfy notification sent with task summary
- Message sent to delegator's session:
[TASK_RESULT:abc123] claude completed: Task finished successfully
Original task: run the user-story-sync skill...
This lets you fire-and-forget tasks and get notified when they're done.
Examples
TELL="~/.dotfiles/home/common/programs/pi-coding-agent/skills/tell/scripts/tell.sh"
$TELL rx:agent "review the changes and suggest improvements"
$TELL mega "run the test suite"
$TELL --agent claude "run the user-story-sync skill"
$TELL --list
$TELL --status abc123