Dotfiles tell
Delegate tasks to other agents - pi sessions or external agents (claude, opencode, aider). Non-blocking with task tracking and completion notifications.
git clone https://github.com/megalithic/dotfiles
T=$(mktemp -d) && git clone --depth=1 https://github.com/megalithic/dotfiles "$T" && mkdir -p ~/.claude/skills && cp -r "$T/home/common/programs/ai/pi-coding-agent/skills/tell" ~/.claude/skills/megalithic-dotfiles-tell && rm -rf "$T"
home/common/programs/ai/pi-coding-agent/skills/tell/SKILL.mdTell / 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/ai/pi-coding-agent/skills/tell/scripts/tell.sh
Note: All commands below use
for brevity. Always use the full path above when executing.tell.sh
Auto-notification: When a delegated task completes, you'll be notified via:
- ntfy - Push notification to your devices
- Session message -
sent to your pi session[TASK_RESULT:id]
Tell a pi agent
Send a task to another pi agent running in a tmux session:
# Use full path (recommended) ~/.dotfiles/home/common/programs/ai/pi-coding-agent/skills/tell/scripts/tell.sh mega "fix the failing tests in src/auth" ~/.dotfiles/home/common/programs/ai/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/ai/pi-coding-agent/skills/tell/scripts/tell.sh rx:agent "do something" # Target rx session, agent window ~/.dotfiles/home/common/programs/ai/pi-coding-agent/skills/tell/scripts/tell.sh mega:0 "do something" # Target mega session, window 0
Multi-instance support: If a session has multiple pi instances (e.g.,
mega:0 and mega:agent), the tell skill will:
- If
specified → use that socket directlysession:window - Otherwise try socket first (cleaner, no shell pollution)
- Prefer the
window socket, then windowagent
, then any available0 - Fall back to tmux
if no socket availablesend-keys
Socket pattern:
/tmp/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/ai/pi-coding-agent/skills/tell/scripts/tell.sh --agent claude "run the user-story-sync skill" ~/.dotfiles/home/common/programs/ai/pi-coding-agent/skills/tell/scripts/tell.sh --agent opencode "fix the failing tests in src/auth" ~/.dotfiles/home/common/programs/ai/pi-coding-agent/skills/tell/scripts/tell.sh --agent aider "refactor the database module"
Supported agents:
- Claude Code (runs withclaude
)--dangerously-skip-permissions
- OpenCodeopencode
- Aider (runs withaider
)--yes-always
- Codex CLI (runs withcodex
)--full-auto
Returns immediately. The agent runs in a background tmux session.
Task management
~/.dotfiles/home/common/programs/ai/pi-coding-agent/skills/tell/scripts/tell.sh --list # List all tasks ~/.dotfiles/home/common/programs/ai/pi-coding-agent/skills/tell/scripts/tell.sh --status TASK_ID # Check task status & output ~/.dotfiles/home/common/programs/ai/pi-coding-agent/skills/tell/scripts/tell.sh --watch TASK_ID # Watch external task live ~/.dotfiles/home/common/programs/ai/pi-coding-agent/skills/tell/scripts/tell.sh --kill TASK_ID # Kill a running external task
When you receive a task (pi agents)
You'll see:
[TASK:abc123 from mega] do the thing
Send updates:
~/.dotfiles/home/common/programs/ai/pi-coding-agent/skills/tell/scripts/tell.sh --update abc123 "halfway done" ~/.dotfiles/home/common/programs/ai/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 /tmp/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
# Define shorthand for readability TELL="~/.dotfiles/home/common/programs/ai/pi-coding-agent/skills/tell/scripts/tell.sh" # Tell specific window in a session $TELL rx:agent "review the changes and suggest improvements" # Auto-select best window (prefers 'agent', then '0') $TELL mega "run the test suite" # Delegate to Claude Code $TELL --agent claude "run the user-story-sync skill" # Check what's happening $TELL --list $TELL --status abc123