Skip to main content

Local-first orchestrator for AI coding agents — one window over your fleet

Project description

Rubberduck

Shadow companion across multiple agents and sessions — a second brain looking over your shoulder.

Local-first orchestrator for AI coding agents. Launches agents (Claude Code, Codex, any CLI agent) into isolated git worktrees, supervises them, lets you fork a running session into a tree of parallel attempts, and keeps durable history with an intention → outcome summary per session.

Design: rubberduck-design.md.

Install

pip install rubberduckhq

Requires Python 3.11+. Bring your own agent (Claude Code, Codex, any CLI agent) and your own API key — Rubberduck never sees your code or credentials.

Use it

There are two commands, and they do different things:

rubberduck install-hooks --global   # ONCE: wire Claude Code to report to Rubberduck
rubberduck serve                    # EACH TIME: run the server + dashboard at :4200
  • install-hooks edits Claude Code's config so every claude session automatically streams into Rubberduck. Run it once per machine (or once per repo without --global). You never run it again.
  • serve is the running process: it receives those events, stores history, serves the dashboard, and orchestrates agents you launch. Run it whenever you want Rubberduck active, and leave it running. Open http://localhost:4200.

install-hooks makes Claude talk to Rubberduck; serve is what's listening. You need both — but only serve repeatedly.

Then just use Claude Code as usual — sessions appear in the dashboard on their own. From there you can launch agents into isolated git worktrees, fork a session into a tree of parallel attempts, answer permission requests, and read per-session checkpoints (prompts, files, tools, outcome). Runtimes: generic (any CLI), claude-code (richest — hook events + JSONL transcript), codex.

Develop

python3 -m venv .venv && . .venv/bin/activate
pip install -e ".[dev]"

ruff check src tests        # lint
black --check src tests scripts
mypy                        # types (strict)
pytest                      # unit + runtime tests
python scripts/slop_check.py

cd web && npm install
npm run lint && npm run typecheck && npm run build

State lives in ~/.rubberduck/ (override with RUBBERDUCK_HOME).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rubberduckhq-0.1.1.tar.gz (94.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rubberduckhq-0.1.1-py3-none-any.whl (101.3 kB view details)

Uploaded Python 3

File details

Details for the file rubberduckhq-0.1.1.tar.gz.

File metadata

  • Download URL: rubberduckhq-0.1.1.tar.gz
  • Upload date:
  • Size: 94.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.4

File hashes

Hashes for rubberduckhq-0.1.1.tar.gz
Algorithm Hash digest
SHA256 f17faf92d7d87d5a18895c322358eecab84562d313c88a1842d3dca22d43bb83
MD5 223b0eb700ae81daf286a2d5eef3d56e
BLAKE2b-256 5d0cf437e8171aa3255e7eb7d29b75869f28c95dccc18618cd8876817d8fc343

See more details on using hashes here.

File details

Details for the file rubberduckhq-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: rubberduckhq-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 101.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.4

File hashes

Hashes for rubberduckhq-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9e5671d6189afc47c501b8e6a591011584570d95f48ece57df65874daefc9a50
MD5 62d3d77cc751450dc563db1dba9931c7
BLAKE2b-256 0d6fc285cf86a414907d7963cbb19b4f24158fcc2b2bda3d8e02aaeb180257f8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page