From remote-tasks
Use when delegating tasks to remote machines (Pi, Pironman) over Tailscale, checking worker status, or retrieving task results. Triggers on "delegate to pi", "run on pironman", "remote task", "check worker status", "get task result", or any async cross-machine delegation workflow.
How this skill is triggered — by the user, by Claude, or both
Slash command
/remote-tasks:remote-tasksThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Async cross-machine task delegation via SSH and Beads. Delegates work to Raspberry Pi and Pironman workers over Tailscale VPN.
Async cross-machine task delegation via SSH and Beads. Delegates work to Raspberry Pi and Pironman workers over Tailscale VPN.
| Alias | Hostname | Tailscale IP | Capabilities |
|---|---|---|---|
pi | raspberrypi | 100.120.127.35 | task-worker |
pironman | pironman | 100.75.2.44 | task-worker, ntfy-server |
See config/machines.json for the full registry.
./scripts/delegate.sh <machine> <task description>
# Example:
./scripts/delegate.sh pi "Check all Docker containers on Pironman and report status"
./scripts/delegate.sh pironman "Run database backup and upload to Seafile"
Creates a Beads task, syncs to remote, and sends ntfy notification to wake the worker.
./scripts/status.sh
Shows all machine online/offline status and pending tasks grouped by machine.
./scripts/get-result.sh <task-id> [machine]
# machine defaults to 'pi' if omitted
./scripts/get-result.sh abc-123
./scripts/get-result.sh abc-123 pironman
Fetches full task output from the worker's Beads database.
./scripts/ssh-exec.sh <machine> <command>
./scripts/ssh-exec.sh pi "df -h"
./scripts/ssh-exec.sh pironman "docker ps --format 'table {{.Names}}\t{{.Status}}'"
./scripts/analyze-complexity.sh "<task description>"
# Outputs: "opus", "sonnet", or "haiku"
Heuristic: security/architecture/audit → opus; refactor/test/implement → sonnet; everything else → haiku (based on word count).
./scripts/health-check.sh
Checks Tailscale connectivity, SSH auth, Beads CLI availability, and worker daemon status on each machine.
Before using remote-tasks, ensure:
tailscale status shows both raspberrypi and pironman as connectedssh raspberrypi and ssh pironman must workbd) — installed on this machine AND on both workersbrew install jq)worker/ directory)http://pironman:8080/remote-tasksDelegation for long-running work:
# Delegate, don't wait
./scripts/delegate.sh pi "Regenerate Pi-hole blocklists and restart gravity"
# Check back later
./scripts/status.sh
# Get output when done
./scripts/get-result.sh <task-id>
Quick remote execution (when result needed immediately):
./scripts/ssh-exec.sh pi "docker ps --filter status=running"
Before delegating complex tasks:
./scripts/analyze-complexity.sh "implement feature X" # → sonnet or opus
| Symptom | Cause | Fix |
|---|---|---|
ssh: connect to host raspberrypi | Tailscale down | tailscale up |
bd sync timed out | Worker offline | Check machine with status.sh |
| Task created but not picked up | Worker daemon not running | SSH to machine, check worker process |
jq: command not found | Missing dep | brew install jq |
| ntfy notification fails | Pironman unreachable | Delegate still succeeds — task created |
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub mattwag05/mw-plugins --plugin remote-tasks