Skip to main content

Autonomous multi-agent code improvement system

Project description

Recipro

Autonomous multi-agent code improvement. Point it at a repo, tell it what to do, and it plans, implements, reviews, and ships a PR — no manual intervention.

Install

pip install recipro-ai

Prerequisites

  • Python 3.11+
  • claude CLI — npm install -g @anthropic-ai/claude-code then claude login
  • codex CLI — npm install -g @openai/codex then codex login (if using Codex as builder/critic)
  • git and gh (GitHub CLI, for PR creation)
  • OPENAI_API_KEY or GEMINI_API_KEY env var (optional, for ambient supervisor)

Quick start

recipro

Run from your target repo directory (or use --repo):

cd /path/to/your/repo
recipro

On first run, Recipro walks you through backend/model setup:

First-time setup:
  Planner model: ...
  Critic backend: ...
  Builder backend: ...
  Ambient narrator: ...
  Preferences saved to ~/.recipro/.

What should Recipro focus on?
  > your directive here (or press Enter for general scan)

Preferences persist — subsequent runs only ask for the focus directive.

Usage

recipro                          # Run in current directory
recipro --repo /path/to/repo     # Run on a specific repo
recipro --reconfigure            # Re-do setup (change backends, models)
recipro --set KEY=VALUE          # Change a config setting
recipro --dry-run                # Plan only, no repo changes
recipro --clean                  # Reset dirty worktree from a failed run

Focus directive

Each run asks what Recipro should focus on. You can write in any language:

What should Recipro focus on?
  > Add input validation to all API endpoints

Press Enter with no input for a general code scan (finds bugs, security issues, maintainability improvements).

Changing settings

Backend and model selection — re-run interactive setup:

recipro --reconfigure

Config toggles — set directly from CLI:

recipro --set verbose=true           # Show raw agent output
recipro --set max_improvements=3     # Tasks per run
recipro --set auto_merge=true        # Squash-merge PRs automatically
recipro --set require_clean_worktree=false

Cleaning up

If a run fails and leaves the target repo in a dirty state:

recipro --clean

This discards uncommitted changes, switches back to main, and deletes all recipro/* task branches.

How it works

┌─────────┐     ┌─────────┐     ┌─────────┐       ┌─────────┐     ┌─────────┐
│ Planner │ ──▶ │ Builder │ ──▶ │ Critic  │ ──▶   │ Builder │ ──▶ │ Builder │
│ (Claude)│     │         │     │         │       │ Verify  │     │ Push PR │
│ Scan &  │     │ Implement│    │ Review  │       │ Lint &  │     │ Branch, │
│ plan    │     │ changes │  ◀──│ findings│  ◀──  │ test    │     │ commit, │
│ tasks   │     │         │     │         │       │         │     │ push    │
└─────────┘     └────┬────┘     └─────────┘       └────┬────┘     └─────────┘
                     │              │   │              │
                     └──── loop ────┘   │ fix failures │
                                        └──────────────┘
                                         ┌──────────┐
                  Observing all of ───▶  │ Ambient  │
                  the above              │ Agent    │
                                         │ (GPT/    │
                                         │ Gemini)  │
                                         └──────────┘
  1. Planner (Claude) — scans the repo and breaks the directive into concrete tasks
  2. Builder (Claude or Codex) — implements each task
  3. Critic (Claude or Codex) — reviews changes, sends findings back to Builder (loops until pass)
  4. Builder — runs lint and tests; if anything fails, fixes and re-runs (loops until pass)
  5. Builder — creates branch, commits, pushes, opens PR
  6. Ambient Agent (GPT or Gemini) — monitors all agent output in the background, provides status updates, cost tracking, and anomaly detection

Features

  • Mix and match backends — assign Claude or Codex independently to each role (planner/builder/critic)
  • Focus mode — natural-language directive each run, any language. No directive = general scan
  • Ambient supervisor — background agent watching all output, reporting status, catching stuck loops, estimating costs
  • Automatic test generation — builder writes happy + unhappy path tests for every change, critic reviews coverage (toggle with add_tests)
  • Automatic PR creation — full git workflow: pull latest, branch, lint, test, commit, push, PR
  • Auto-merge — optionally squash-merge PRs after creation
  • Worktree-friendly — defaults to current directory, works naturally with git worktrees
  • Worktree cleanup--clean resets a dirty repo left by a failed run
  • Zero dependencies — pure Python stdlib

Configuration

~/.recipro/config.yaml (auto-created on first run, editable via recipro --set):

max_improvements: 1            # Tasks per run
require_clean_worktree: true   # Require clean git state before run
auto_merge: false              # Auto squash-merge PRs after creation
verbose: false                 # Show raw agent streaming output
add_tests: true                # Builder writes tests, critic reviews test coverage

Backend/model selections are in ~/.recipro/memory/preferences.json, managed via recipro --reconfigure.

Testing

pytest tests/

Data directory

~/.recipro/
├─ config.yaml             # Settings
├─ memory/
│  ├─ preferences.json     # Backend/model selections
│  └─ state.json           # Run history
└─ reports/                # Per-run operational reports

Notes

  • Recipro pulls the latest code (git pull) before each run.
  • Each task runs on its own branch created from the starting revision.
  • If a task fails, Recipro stops and leaves the branch for inspection. Use --clean to reset.
  • The ambient agent auto-disables after 3 consecutive API failures.

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

recipro_ai-0.1.3.tar.gz (36.5 kB view details)

Uploaded Source

Built Distribution

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

recipro_ai-0.1.3-py3-none-any.whl (36.5 kB view details)

Uploaded Python 3

File details

Details for the file recipro_ai-0.1.3.tar.gz.

File metadata

  • Download URL: recipro_ai-0.1.3.tar.gz
  • Upload date:
  • Size: 36.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.0

File hashes

Hashes for recipro_ai-0.1.3.tar.gz
Algorithm Hash digest
SHA256 ff749109968d65f83e5a5376d976a76836a60af2ea0e138529a9b875bc96a519
MD5 c7160ff49513013e08cb2227792c7833
BLAKE2b-256 75ba13b77a658c7e82881c814c8398ecfa33eb7937baf629794172273647156c

See more details on using hashes here.

File details

Details for the file recipro_ai-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: recipro_ai-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 36.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.0

File hashes

Hashes for recipro_ai-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 5a776d3554e42cd246b5577ee4de3863ff3aaed1fb94fd7715f8ac7bb6f4d4a2
MD5 fd6a29ae44a3ee00681d3a12f5fb8055
BLAKE2b-256 f274d48dce46e66ee8eb3910917b34b38fa67654dde703bd3f3a3be3e7da2e0e

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