Skip to main content

taskpods: Parallel AI Task Pods via Git Worktrees

CI Codecov PyPI Python License Code style: black
GitHub Sponsors ko-fi


taskpods is a lightweight CLI that lets you spin up disposable AI pods inside your Git repo.
Each pod is an isolated Git worktree/branch — perfect for running AI coding agents in parallel without polluting main.
When done, you can merge, PR, or nuke the pod entirely.

Works with any agent or editor: Claude Code, Codex CLI, Gemini CLI, opencode, aider, Cursor, VS Code, Zed, Vim, and anything else on your PATH.


✨ Features

  • Instant sandbox: taskpods start <name> → creates .taskpods/<name> and pods/<name> from main.
  • Agent launcher: taskpods start <name> --agent claude -p "fix the typos" → runs any coding agent inside the new pod.
  • Parallel-safe: the pods directory is auto-excluded from git status, so you can run many pods at once.
  • Clean exit: taskpods done <name> → commit, push, open a PR (via [gh CLI]), then remove the worktree.
  • Abort button: taskpods abort <name> → deletes an unpushed pod safely.
  • Status overview: taskpods list → see all active pods and paths.
  • Housekeeping: taskpods prune → removes pods already merged upstream.
  • Zero config: no TUI, no daemon, no session manager — one Python file over plain git worktree.

🚀 Installation

Quick Install

pip install taskpods

Alternatives

From GitHub (latest dev):

pip install git+https://github.com/yanairon/taskpods.git

Manual:

curl -O https://raw.githubusercontent.com/yanairon/taskpods/main/taskpods.py
chmod +x taskpods.py
sudo mv taskpods.py /usr/local/bin/taskpods

Requirements:

  • Python 3.9+
  • Git 2.5+ with worktree support
  • A Git repo with a remote named origin

📖 Usage

Start a new pod

taskpods start fix-typos

Run an AI agent inside the pod

Everything after --agent runs as-is inside the pod's worktree, so any agent CLI works:

# Claude Code (headless)
taskpods start fix-typos --agent claude -p "fix the typos" --permission-mode acceptEdits

# Codex CLI (non-interactive)
taskpods start fix-typos --agent codex exec --sandbox workspace-write "fix the typos"

# Gemini CLI (headless)
taskpods start fix-typos --agent gemini -p "fix the typos"

# opencode
taskpods start fix-typos --agent opencode run "fix the typos"

# aider
taskpods start fix-typos --agent aider --message "fix the typos"

The agent runs in the foreground with your terminal attached, exactly as if you had cd'd into the pod yourself. Interactive agents work too (--agent claude). When --agent is used, no editor is opened unless you also pass --editor.

Flags after --agent belong to the agent; put taskpods' own flags (--base, --editor) before it.

Set a default agent and plain taskpods start <name> launches it every time:

export TASKPODS_AGENT="claude -p"

When the agent exits, the pod stays put. Review the diff, then finish:

git -C .taskpods/fix-typos diff main
taskpods done fix-typos -m "Fix docs typos" --remove

Finish & PR

taskpods done fix-typos -m "Fix docs typos" --remove

Abort

taskpods abort fix-typos

List pods

taskpods list

Prune merged

taskpods prune

🤖 Where taskpods fits

Some agent CLIs grew their own worktree support — Claude Code has -w/--worktree, and tools like vibe-kanban or claude-squad wrap agents in TUIs and session daemons. taskpods stays the small unix-y lane:

  • Agent-agnostic: one tool for Claude, Codex, Gemini, opencode, aider, or whatever ships next month — no per-agent plugin.
  • Zero config, no daemon: a single Python file over git worktree. Nothing runs in the background.
  • Composable: plain stdout and exit codes, so it drops into scripts, CI, and your own aliases.
  • Full lifecycle: start → agent runs → done commits, pushes and opens the PR → prune cleans up.

⚙️ Configuration

  • Env vars:
export TASKPODS_EDITOR="vim"
export TASKPODS_EDITOR="code"
export TASKPODS_EDITOR="cursor"
export TASKPODS_AGENT="claude -p"
  • Config file ~/.taskpodsrc:
{
  "editor": "vim",
  "default_base": "main",
  "agent": "claude -p"
}
  • CLI flags (highest priority):
taskpods start my-feature --editor vim --base develop --agent claude -p "..."

Supported editors: Cursor, VS Code, Zed, Sublime, Atom, Vim/Neovim, Emacs, or any in your PATH.


❤️ Support

If taskpods saves you time, please consider supporting:

Your support helps keep the project maintained and evolving for the community!


📜 License

MIT – see LICENSE.


🤔 Why worktrees?

Git worktrees let you check out multiple branches in separate dirs without cloning. They’re fast, disk-light, and easy to clean up.
taskpods wraps the common git worktree operations with sensible defaults and quality-of-life features like agent launching, PR creation and safe aborts.


👩‍💻 Development

git clone https://github.com/yanairon/taskpods.git
cd taskpods
pip install -e ".[dev]"
pre-commit install

Run tests:

make test
make test-cov
make check

Tools used: Black, Flake8, MyPy, Pre-commit.


🤝 Contributing

Contributions, bug reports, and feature requests are welcome!
Open an issue or submit a PR.

Metadata

Release files for taskpods 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for taskpods 0.4.0
File Size Uploaded
taskpods-0.4.0.tar.gz 23.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for taskpods 0.4.0
File Interpreter ABI Platform
taskpods-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 37.0 kB

Release files / taskpods-0.4.0.tar.gz

Download URL taskpods-0.4.0.tar.gz
Size 23.7 kB
Tags Source
SHA-256 checksum
How to use checksums
109264ad1b9f2c3bebfc349a18447d0eb5461ff26650110c0e1619d5ad84ff8b
BLAKE2b-256 checksum
How to use checksums
6d9da9147e58dbb87db6b6f8c163bab45b825d845c65f2c2b9b79845fd45ba50
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / taskpods-0.4.0-py3-none-any.whl

Download URL taskpods-0.4.0-py3-none-any.whl
Size 13.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
adea53b825b9eba5b1a0437548d0a74e1f1f7b1134f34a4ef8a489437b211af1
BLAKE2b-256 checksum
How to use checksums
7dae06d785b4b10b692bcb5faf63689c2211531ceb5dbae9a0bf4e20dfbd7a56
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 release files

0.3.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page