Claude Code Plugin

Spawn autonomous agents that run in the background.

Taskpilot launches long-running Claude Code sessions in tmux. Each task gets its own channel for real-time communication. Crash recovery built in.

Some tasks take hours. You shouldn't have to watch.

Research projects, monitoring jobs, multi-step workflows -- they need an agent that can run autonomously, report back, and recover from crashes without your intervention.

Taskpilot spawns each task in its own tmux session with a dedicated channel MCP. Send it an operating brief and walk away. Check status, send messages, or kill tasks from your main session.

/taskpilot:spawn

what should this agent do?

> research competitor pricing for B2B invoicing tools

creating task: competitor-pricing-research

allocating port 9102, registering channel...

agent spawned. running autonomously.

use /taskpilot:status to check progress.

How autonomous tasks work.

1

Create

Define the task with objectives, workflows, success criteria, and boundaries. An operating brief gives the agent everything it needs to work independently.

2

Spawn

Launches a tmux session running Claude with its own channel MCP. The initial prompt is posted to the channel. The agent starts working immediately.

3

Monitor

Check status dashboards and send messages with verified delivery. Status is reconciled against tmux ground truth on every read — a crashed agent reads as crashed, never as running.

Capabilities declared in the operating brief are auto-resolved via softwaresoftware. The agent's instructions are dynamically generated.

Built for reliability.

Idempotent lifecycle

Define with PUT, then start and stop are convergent: start means “ensure running”, stop means “ensure stopped”. Every call is safe to retry.

One-call revival

If an agent dies — crash, reboot, context exhaustion — one idempotent start call respawns it, with an optional resume prompt so it picks up from its saved state.

Real-time channels

Messages route through the session mesh with end-to-end verified delivery — a message that never reached the agent never reads as sent.

Truthful status

Every read reconciles the stored status against tmux ground truth: defined, running, crashed, stopped. No zombie “running” rows, ever.

Your full environment

Each spawned agent inherits your real Claude setup — global CLAUDE.md, rules, installed plugins, and MCPs — plus a per-task brief generated into its working directory.

Reusable task ids

Stop keeps the row for a later restart; delete frees the id entirely. Define, start, stop, message, delete — every verb is idempotent.

Persistent pane logs

Tmux pane output is teed to ~/.taskpilot/<id>/pane.log via tmux pipe-pane. Read agent history with get_task_log long after the session has ended. Soft size cap with head-truncation; configurable via TASKPILOT_PANE_LOG_MAX_BYTES.

SQLite + local storage

Task database, configs, and state files all live in ~/.taskpilot/. Everything on your machine, nothing in the cloud.

Install

Requires Claude Code, Python 3.11+, Node.js, and tmux.

1

Add the marketplace

claude plugin marketplace add softwaresoftware-dev/softwaresoftware-plugins

Run in your terminal.

2

Install the installer

claude plugin install softwaresoftware@softwaresoftware-plugins

Run in your terminal.

3

Launch Claude Code

claude

Start a new session so the installer is available.

4

Install taskpilot + dependencies

/softwaresoftware:install taskpilot

Run inside Claude Code. Run /reload-plugins when done.

5

Spawn your first agent

/taskpilot:spawn

Run inside Claude Code after reloading plugins.