Skip to main content

Pluribus

Pluribus is a CLI tool for managing multiple parallel Claude Code instances working on different tasks within a single Git repository. It uses Git worktrees to create isolated, independent work environments for each task and keeps them coordinated via a simple filesystem-based status system.

Why Pluribus?

Imagine you have a project with 3 issues to tackle. Instead of:

  • Sequentially working through them one at a time
  • Manually creating branches and switching contexts
  • Managing multiple local git worktrees yourself

You can:

  • Define tasks in a simple todo.md file
  • Spin up multiple Claude Code instances with pluribus workon
  • Each instance works independently in its own worktree
  • Monitor all progress in real-time with pluribus watch
  • Clean up completed tasks with pluribus delete

All coordinated through the filesystem as a single source of truth.

Installation

Prerequisites

  • Python 3.9+
  • Git (with support for git worktree)
  • GitHub CLI (gh) configured with your credentials
  • Claude Code CLI installed
uv tool install pluribus-ai

# Now run from anywhere
pluribus --help

Option 2: Development

For developing or contributing to Pluribus:

git clone https://github.com/jaidhyani/pluribus.git
cd pluribus

# Install dependencies (includes editable install of pluribus)
uv sync

# Run commands
uv run pluribus --help
uv run pytest

Quick Start

If you installed pluribus as a user utility, just use pluribus command. If using local development, use uv run pluribus instead.

1. Initialize a workspace

pluribus init https://github.com/your-org/your-project.git

This creates:

pluribus-workspace/
├── pluribus.config          # Configuration (minimal)
├── todo.md                  # Your task list
├── myrepo/                  # Clone of your repository
└── worktrees/               # Where work happens (initially empty)

2. Define tasks

Edit todo.md with your tasks (just use ## headings):

# todo.md

## Add database migration system
Brief context about what needs to be done.

## Add JWT authentication to API

## Refactor logging to use structured JSON

3. Start working on a task

pluribus workon

Pluribus will show available tasks and prompt you to choose one. It then:

  • Creates a new branch (pluribus/<task-name>)
  • Creates an isolated Git worktree at worktrees/<task-name>/
  • Initializes a .pluribus/status file to track progress
  • Starts Claude Code in that directory with context about the task

4. Monitor progress

In another terminal:

pluribus watch

This displays a live-updating table of all tasks and their status:

Task                          | Branch                    | Status       | Progress | Last Update
Add database migration system | pluribus/add-database-... | in_progress  | 40%      | 2026-01-16 14:30
Add JWT authentication...     | pluribus/add-jwt-auth-... | in_progress  | 20%      | 2026-01-16 14:32
Refactor logging...           | -                         | pending      | -        | -

5. Create a PR

When Claude Code finishes work on a task, it will:

  • Push commits to its branch
  • Create a PR via gh pr create
  • Update the status file with the PR URL

You can then review and merge the PR on GitHub.

6. Clean up

Once a task is complete and the PR is merged:

pluribus delete "Add database migration system"

This removes the worktree and branch, freeing up space for other work.

Commands

  • pluribus init <repo-url> – Initialize a new Pluribus workspace
  • pluribus workon [task-name] – Start working on a task (interactive selection if no name given)
  • pluribus resume <task-name> – Resume work on an existing task
  • pluribus status – Display current status of all tasks
  • pluribus watch [--interval 10] – Live-update status table
  • pluribus list-tasks – List all tasks from todo.md
  • pluribus details <task-name> – Show full status, recent commits, and uncommitted changes
  • pluribus delete <task-name> – Remove a completed task's worktree and branch

Workflow Example

This entire workflow takes about 10 minutes:

# 30 seconds: Initialize
pluribus init https://github.com/my-org/my-project.git

# 30 seconds: Define 3 tasks in todo.md
# (edit file manually)

# 10 seconds: Start first task
pluribus workon
# Choose task 1; Claude starts working

# 10 seconds: Start second task (parallel, in another terminal)
pluribus workon
# Choose task 2; another Claude instance starts

# Monitor live (in another terminal)
pluribus watch

# When first task is done (PR created):
pluribus delete "Add database migration system"

# When other tasks are done, clean them up too
pluribus delete "Add JWT authentication to API"

How It Works

The Status File

Each task has a .pluribus/status file that tracks its state:

{
  "task_id": "add-database-migration-system",
  "status": "in_progress",
  "phase": "implementation",
  "progress_percent": 45,
  "last_update": "2026-01-16T14:30:00Z",
  "claude_instance_active": true,
  "pr_url": null,
  "blocker": null,
  "notes": "Working on schema validation"
}

Claude Code instances update this file as they progress. Pluribus reads these files to provide visibility without needing to monitor processes.

Worktrees

Each task gets its own Git worktree, completely isolated from others. This means:

  • Multiple Claude instances can work in parallel without conflicts
  • Each has its own branch
  • Changes in one worktree don't affect others
  • Easy to delete a worktree when done without affecting the main repo

Live Watching

pluribus watch uses filesystem watchers (inotify on Linux, FSEvents on macOS) to detect when .pluribus/status files change. When a Claude instance updates a status file, the watch display updates immediately—no polling.

Development

For details on contributing and developing Pluribus, see CLAUDE.md.

Future Enhancements

  • Configurable merge/PR strategies (beyond just gh pr create)
  • Support for monorepos
  • Task dependencies
  • Automatic cleanup policies
  • Web-based dashboard (optional)

License

Licensed under the Apache License, Version 2.0. See LICENSE for details.

Metadata

Release files for pluribus-ai 0.1.1

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

Source distribution (sdist)

Source distribution for pluribus-ai 0.1.1
File Size Uploaded
pluribus_ai-0.1.1.tar.gz 84.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pluribus-ai 0.1.1
File Interpreter ABI Platform
pluribus_ai-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 102.8 kB

Release files / pluribus_ai-0.1.1.tar.gz

Download URL pluribus_ai-0.1.1.tar.gz
Size 84.4 kB
Tags Source
SHA-256 checksum
How to use checksums
6d65ccfc36ac6411217918e5a2624232e0e75e9bbdc8924d6daa13401176f43d
BLAKE2b-256 checksum
How to use checksums
e284b8a441953ca1d0f94c2de8d91701f98de510d1bd645d0cda8bbdf205fc00
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.14

Release files / pluribus_ai-0.1.1-py3-none-any.whl

Download URL pluribus_ai-0.1.1-py3-none-any.whl
Size 18.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
34d6e7338cc1c6ade8fb34f19910f8c955a8d9521f4528ae7db88ce6b0582036
BLAKE2b-256 checksum
How to use checksums
16a50c422242ffdab98b52e441be9b3d6746d70c93d21cfb0436bd50bd18c2dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.14

Release history Release notifications | RSS feed

This release

0.1.1 This release

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