❤️ RepoHeart
The autonomous heart of your GitHub repository.
A 24/7, event-driven, multi-agent system that watches your repo and automatically activates specialized AI agents to triage issues, review PRs, repair CI, resolve conflicts, and keep the repository healthy — safely, and provider-agnostically.
Install
pip install repoheart
Use repoheart init to generate all required config files in one command:
repoheart init
This interactively creates repoheart.yml and .github/workflows/repoheart.yml in your repository. Pass --yes for non-interactive (CI-safe) mode:
repoheart init --provider claude --model claude-sonnet-4-6 --yes
Why
Maintaining an active repository is endless manual work: triaging issues, spotting duplicates, checking what was already fixed, reviewing PRs, watching CI, resolving conflicts, keeping docs current. RepoHeart automates the repetitive parts while keeping humans in control of anything risky.
It runs entirely inside your GitHub Actions workflow — no hosted server, no database, no external infrastructure. Add one workflow, choose an AI provider, done.
How It Works
GitHub Event → Actions runner → normalize + dedup → route to agents
→ each agent retrieves bounded context, reasons, proposes actions
→ Safety Gate authorizes every write
→ results written back to GitHub → run exits (holds no state)
Deterministic where it must be (routing, permissions, idempotency), AI-driven where it helps (the reasoning inside each agent).
Quick Start
Option A — zero-copy (recommended):
pip install repoheart
cd your-repo
repoheart init
repoheart init generates both files below interactively and prints the next steps.
Option B — manual:
1. Add the workflow — .github/workflows/repoheart.yml:
name: RepoHeart
on:
issues:
types: [opened, edited]
pull_request:
types: [opened, synchronize, reopened]
workflow_run:
types: [completed]
permissions:
contents: write
issues: write
pull-requests: write
jobs:
repoheart:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: OpenAgentHQ/repo-heart@main
with:
config: repoheart.yml
2. Configure — repoheart.yml:
repoheart:
provider:
name: opencode # opencode | claude | openai | gemini | local
model: your-model
agents:
issue_triage: true
duplicate_detection: true
pr_review: true
code_quality: true
security: true
ci_repair: true
conflict_resolution: true
3. Add provider credentials as repository secrets (e.g. OPENCODE_API_KEY, ANTHROPIC_API_KEY, OPENAI_API_KEY).
That's it.
The Agents
| Agent | Does |
|---|---|
| Issue Triage | Classifies, labels, and summarizes new issues |
| Duplicate Detection | Finds duplicate/related issues |
| Issue Resolution | Detects issues already fixed by prior PRs/commits |
| PR Review | Coherent review of correctness, quality, and risk |
| Code Quality | Lint / format / type checks on changed paths |
| Security | Secret + dependency scanning on the diff |
| CI Repair | Diagnoses CI failures and attempts safe, verified fixes |
| Conflict Resolution | Resolves safe merge conflicts; escalates the rest |
| Test | Test-impact mapping and test generation |
| Documentation | Keeps docs current with changed public symbols |
Enable only what you want in repoheart.yml.
Switching AI Providers
Change one line. Agents are untouched.
provider:
name: claude # was: opencode
model: claude-model
Built for Big Repos Too
RepoHeart doesn't load your whole codebase into a prompt. It retrieves only what each event needs — using tree-sitter, ripgrep, and GitHub Search to do the heavy lifting, with event-scoped (sparse/shallow) checkout and an optional content-hash cache. Cost scales with the event's blast radius, not your repo size.
Safety First
Safety first, then correctness, then automation.
- Every write passes a mandatory Safety Gate.
- Agents can never escalate their own permissions.
- No force-push. No auto-merge in the MVP. No committed secrets.
- Low-confidence or high-risk situations escalate to a human with a clear explanation — never a silent guess, never broken state left behind.
Documentation
| Doc | Purpose |
|---|---|
| PROJECT.md | Overview and orientation |
| ARCHITECTURE.md | Condensed architecture reference |
| ROADMAP.md | Phased build plan |
| CONTRIBUTING.md | Dev setup and conventions |
| CLAUDE.md | Rules for AI coding agents |
docs/repoheart-final-system-design.md |
Full authoritative system design |
Status
v1.0 — Fully Implemented. All 7 roadmap phases complete: deterministic core, provider abstraction, issue intelligence, PR intelligence, large-repo scaling, CI repair & conflict resolution, and documentation agent. 524+ tests passing, ruff clean, mypy strict clean, provider switching config-only. One-workflow + one-config onboarding verified on real repos. See ROADMAP.md for full details.
License
See LICENSE.
RepoHeart is not just a bot. It's an autonomous repository engineering system.
Release files for repoheart 0.8.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| repoheart-0.8.1.tar.gz | 246.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| repoheart-0.8.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 350.9 kB
Release files / repoheart-0.8.1.tar.gz
| Download URL | repoheart-0.8.1.tar.gz |
|---|---|
| Size | 246.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8b5c089a3e42689562ed60a281809d005075598638b360961c1c163d66a896d8
|
|
BLAKE2b-256 checksum How to use checksums |
ecfd7e9c4f3335555886d2960733e36ae41100cf005c0063e688c6af92a5f570
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 26, 2026.
Transparency logRelease files / repoheart-0.8.1-py3-none-any.whl
| Download URL | repoheart-0.8.1-py3-none-any.whl |
|---|---|
| Size | 104.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
639cad80683113ce46284aceaf0cc1c1fa5b2bcbe1c806e5c6804df9ac817b51
|
|
BLAKE2b-256 checksum How to use checksums |
877f8c3834af0fc55b3a5d7b0ab4be037495c7ab3c76d65378987385992d85fd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 26, 2026.
Transparency log