Skip to content

wildhash/RepoMan

Repository files navigation

RepoMan

RepoMan is a multi-model “agent council” that can ingest GitHub repos into Elasticsearch, score repo health, and (optionally) run a debate-to-consensus pipeline before making code changes.

GitHub -> ingest -> Elasticsearch -> FastAPI -> dashboards
            |
            +-> agent council (audit -> debate -> execute -> validate) (WIP)

Installation (from source)

The Python distribution name is repoman-ai (the module/CLI is still repoman).

There is an unrelated repoman package on PyPI, so this project uses repoman-ai to avoid collisions.

From a git checkout:

pip install -e ".[dev]"
repoman --help

If/when published to PyPI:

pip install repoman-ai

If you already have a different repoman package installed from PyPI, uninstall it first:

pip uninstall repoman

If you see import errors or unexpected CLI behavior after installing, double-check that you don’t still have an unrelated repoman package installed.

MVP scope

Works today

  • Ingest GitHub repos/issues/PRs into Elasticsearch (repoman es ingest)
  • Repo health scoring + dashboards backed by Elasticsearch
  • A multi-agent consensus loop (requires LLM API keys)

Entry points (stable vs experimental)

  • Stable:
    • repoman es setup, repoman es ingest
    • repoman serve + /api/search/*, /api/dashboard/*
  • Experimental:
    • repoman audit, repoman transform (LLM-backed; sandbox/validation is still evolving)

Roadmap / WIP

  • Make the 7-phase “transform and ship fixes” flow reproducible and safe by default
  • Stronger sandboxing + least-privilege GitHub token guidance
  • More first-class “repo portfolio” views (org-level insights, cross-repo duplicate detection, etc.)

Why Elasticsearch

Elasticsearch is the system-of-record for RepoMan because it supports:

  • Full-text search across repos, issues, and PRs (filters, aggregations, faceting)
  • Vector search (dense vectors) for semantic similarity
  • Dashboards/analytics for “repo health” scoring and portfolio-level views

Quickstart

  1. Copy .env.example to .env and set REPOMAN_GITHUB_TOKEN.
  2. Start the stack:
make docker-up
  1. Create indices (idempotent):
repoman es setup

1-command demo

Once your .env is configured, you can run:

make demo

To ingest PitCrew instead:

make demo-pitcrew

make demo-pitcrew is a fixed preset (PitCrew + --issues-limit=200), so it can take longer than make demo.

If your docker-compose.yml service running the CLI isn't named api, override it:

make demo COMPOSE_API_SERVICE=backend

make demo will bring up the Docker Compose stack, create the Elasticsearch indices, and ingest + analyze this RepoMan repo. After it completes:

This flow does not require LLM API keys.

  • API is at http://localhost:8000
  • Frontend is at http://localhost:5173

To stop the stack:

make docker-down

Dashboards (Elasticsearch)

After ingesting, the core indices/data stream are:

  • repoman-repositories
  • repoman-issues
  • repoman-analysis (data stream)

You can explore these directly in Kibana / Elastic Cloud, or use the built-in API dashboard endpoints (see below).

Ingest + analyze

# Ingest a single repo
repoman es ingest https://github.com/wildhash/RepoMan --analyze

# Or ingest by user/org (top N most recently updated)
repoman es ingest wildhash --limit 10 --analyze

# Optional: raise the per-repo issues/PRs cap (default: REPOMAN_GITHUB_ISSUE_INGEST_LIMIT, env default 300)
repoman es ingest wildhash --limit 10 --issues-limit 1000 --analyze

# Or ingest via GitHub search
repoman es ingest "language:python stars:>1000 vector database" --limit 10

Search & dashboards API

The FastAPI server exposes Elasticsearch-backed endpoints:

# Full-text repo search
curl "http://localhost:8000/api/search/repositories?q=agent&language=Python"

# Full-text issue search
curl "http://localhost:8000/api/search/issues?q=timeout&repo_full_name=wildhash/RepoMan"

# Semantic repo search
curl -X POST "http://localhost:8000/api/search/semantic/repositories" \
  -H 'content-type: application/json' \
  -d '{"query":"vector search"}'

# Dashboards
curl "http://localhost:8000/api/dashboard/repo-health"
curl "http://localhost:8000/api/dashboard/top-languages"

About

RepoMan deploys a council of specialized AI agents, each powered by different models, that analyze, debate, critique, and converge on a plan before touching a single line of code. Think of it as an AI engineering firm that audits and rehabilitates repos.

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors