tell

Delegate tasks to other agents - pi sessions or external agents (claude, opencode, aider). Non-blocking with task tracking and completion notifications.

215 stars

Best use case

tell is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Delegate tasks to other agents - pi sessions or external agents (claude, opencode, aider). Non-blocking with task tracking and completion notifications.

Teams using tell should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/tell/SKILL.md --create-dirs "https://raw.githubusercontent.com/megalithic/dotfiles/main/home/common/programs/ai/pi-coding-agent/skills/tell/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/tell/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How tell Compares

Feature / AgenttellStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Delegate tasks to other agents - pi sessions or external agents (claude, opencode, aider). Non-blocking with task tracking and completion notifications.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# 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/ai/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:
1. **ntfy** - Push notification to your devices
2. **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:

```bash
# 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:

```bash
~/.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:
1. If `session:window` specified → use that socket directly
2. Otherwise try socket first (cleaner, no shell pollution)
3. Prefer the `agent` window socket, then window `0`, then any available
4. Fall back to tmux `send-keys` if no socket available

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:

```bash
~/.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` - 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

```bash
~/.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:
```bash
~/.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:

```bash
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`):

1. **ntfy notification** sent with task summary
2. **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

```bash
# 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
```

Related Skills

writing-clearly-and-concisely

215
from megalithic/dotfiles

Apply Strunk's timeless writing rules to ANY prose humans will read - documentation, commit messages, error messages, explanations, reports, or UI text. Makes your writing clearer, stronger, and more professional.

web-search

215
from megalithic/dotfiles

Web search using DuckDuckGo (free, unlimited). Falls back to pi-web-access extension for content extraction.

web-browser

215
from megalithic/dotfiles

Interact with web pages using agent-browser CLI. MUST run 'browser connect 9222' FIRST to use existing browser with authenticated sessions.

tmux

215
from megalithic/dotfiles

Remote control tmux sessions for interactive CLIs (python, gdb, etc.) by sending keystrokes and scraping pane output.

ticket-worker

215
from megalithic/dotfiles

Work on a single tk ticket end-to-end. Use when the user says 'work on ticket X' or when spawned by work-tickets.sh.

ticket-creator

215
from megalithic/dotfiles

Create and refine tickets for the tk ticket system. Use when the user says 'create tickets for X', 'refine ticket X', 'break this into tickets', 'seed tickets from plan', or anything about creating or refining tk tickets.

task-pipeline

215
from megalithic/dotfiles

Structured workflow for research → plan → tickets → work. Use when starting or continuing a task with /task, /plan, or /tickets commands.

preview

215
from megalithic/dotfiles

Display code, diffs, images, and other content in a tmux pane or popup. Auto-detects nvim/megaterm for floating popups.

mcpctl

215
from megalithic/dotfiles

Manage MCP server configurations — add, remove, list, inspect, troubleshoot. Use when asked to "add mcp server", "remove mcp", "list mcp servers", "mcp status", "configure mcp", "troubleshoot mcp", or any MCP server management task.

handoff

215
from megalithic/dotfiles

Save session state for later pickup. Use /handoff when context is degrading, /pickup to resume in a new session.

github

215
from megalithic/dotfiles

Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.

git-worktrees

215
from megalithic/dotfiles

Git worktree conventions and commands. Use when creating, switching to, or cleaning up git worktrees for branch work.