oven
let 'em cook.
Oven is a CLI that runs Claude Code agent pipelines against your GitHub issues. Label an issue, walk away, come back to a PR with code, tests, and a review.
How it works
- You label a GitHub issue
o-ready - Oven picks it up, creates a draft PR, and gets to work
- An implementer writes the code and tests
- A reviewer checks quality, security, and simplicity
- A fixer addresses any findings (up to 2 rounds)
- You get a PR ready for human review
All agent activity shows up as comments on the PR. You stay in the loop without being in the way.
flowchart LR
A[o-ready issue] --> B[Planner]
B --> C[Implementer]
C --> D[Reviewer]
D -- findings --> E[Fixer]
E -- up to 2x --> D
D -- clean --> F[Merger]
style A fill:#d4edda,stroke:#555
style F fill:#d4edda,stroke:#555
Oven keeps polling while it works. New issues that can run in parallel get picked up automatically, even mid-run.
Install
You'll need gh and claude installed and authenticated.
cargo install oven-cli
Quick start
# Set up your project
# Start cooking (foreground)
# Or run specific issues
# Detached mode
# Auto-merge when done
Commands
oven prep Set up project (recipe.toml, agents, db)
oven on [IDS] Start the pipeline (-d detached, -m auto-merge)
oven off Stop a detached run
oven look [RUN_ID] View logs (--agent <name> to filter)
oven report [RUN_ID] Costs, runtime, summary (--all, --json)
oven clean Remove worktrees, logs, merged branches
oven ticket Local issue management (create, list, view, close, label, edit)
Config
Project config lives in recipe.toml at your repo root. User defaults go in ~/.config/oven/recipe.toml.
[]
= "cargo test"
= "cargo clippy"
# issue_source = "local" # use local tickets instead of GitHub issues
[]
= 2
= 15.0
= 60
Multi-repo support goes in the user config:
[]
= "/home/you/dev/api"
= "/home/you/dev/frontend"
Issues in your main repo can target other repos via target_repo frontmatter. Oven handles the worktree routing.
Labels
| Label | Meaning |
|---|---|
o-ready |
Ready for pickup |
o-cooking |
In progress |
o-complete |
Done |
o-failed |
Something went wrong |
GitHub Action
Oven ships a GitHub Action so you can run pipelines in CI. Triggers on issue labeling, uses GitHub App auth, and sets up per-issue concurrency groups. See action/README.md for setup.
Local issues
Don't want to use GitHub issues? Set issue_source = "local" in your recipe.toml and use tickets:
Tickets are markdown files in .oven/issues/. Oven picks them up the same way it picks up GitHub issues. PRs still go to GitHub.
Built with Rust.