Metadata-Version: 2.4
Name: rubberduckhq
Version: 0.1.0
Summary: Local-first orchestrator for AI coding agents — one window over your fleet
Author: Utsav Anand
License: MIT
Project-URL: Homepage, https://rubberduckhq.com
Project-URL: Repository, https://github.com/utsavanand/rubber-duck
Keywords: ai,agents,claude,codex,orchestrator,developer-tools,cli
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: dev
Requires-Dist: ruff==0.8.4; extra == "dev"
Requires-Dist: black==24.10.0; extra == "dev"
Requires-Dist: mypy==1.13.0; extra == "dev"
Requires-Dist: pytest==8.3.4; extra == "dev"
Dynamic: license-file

# 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`](./rubberduck-design.md). Built Act by Act
(0–10 complete).

## Run

```sh
pip install -e .
rubberduck serve                       # http://127.0.0.1:4200
# in another shell:
rubberduck launch "claude" --cwd ~/myrepo --prompt "add a healthcheck"
rubberduck snapshot                    # bundle active sessions

cd web && npm install && npm run dev   # dashboard (proxies to the server)
```

Launch on a repo to get an isolated git worktree per session; fork a session
to branch it; sessions are tracked live and persisted with an intention →
outcome summary. Runtimes: `generic` (any CLI), `claude-code` (richest —
hook events + JSONL transcript), `codex`.

## Develop

```sh
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`).
