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-hooksedits Claude Code's config so everyclaudesession automatically streams into Rubberduck. Run it once per machine (or once per repo without--global). You never run it again.serveis 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f17faf92d7d87d5a18895c322358eecab84562d313c88a1842d3dca22d43bb83
|
|
| MD5 |
223b0eb700ae81daf286a2d5eef3d56e
|
|
| BLAKE2b-256 |
5d0cf437e8171aa3255e7eb7d29b75869f28c95dccc18618cd8876817d8fc343
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9e5671d6189afc47c501b8e6a591011584570d95f48ece57df65874daefc9a50
|
|
| MD5 |
62d3d77cc751450dc563db1dba9931c7
|
|
| BLAKE2b-256 |
0d6fc285cf86a414907d7963cbb19b4f24158fcc2b2bda3d8e02aaeb180257f8
|