Skip to main content

Agentic supervisor for building and repairing multi-repository environments

Project description

RepoResolve

RepoResolve helps you set up a shared environment across multiple research repos without trying to blindly install everything.

Instead of breaking your system, it helps you understand, resolve, and generate a working environment first.

What It Does

RepoResolve focuses on the parts that are safe and deterministic:

  • Scans repos for dependency manifests
  • Detects setup clues from READMEs, scripts, Dockerfiles, and CI
  • Selects relevant dependency files
  • Identifies conflicts before installation
  • Guides you through resolving them
  • Generates usable outputs:
    • environment.generated.yml
    • manual-setup.md
    • manual-setup.json
  • Provides a doctor command to validate everything

What It Solves

  • Bootstrapping a shared Python/Conda environment across multiple repos
  • Catching dependency conflicts early
  • Surfacing non-Python requirements such as CUDA, MuJoCo, EGL, apt, and environment variables
  • Giving you inspectable, editable outputs instead of black-box installs

What It Doesn't Do (v0)

RepoResolve does not:

  • Automatically run system installs such as apt or brew
  • Set up CUDA, MuJoCo, or OpenGL for you
  • Fully install and run repos end-to-end from the main flow
  • Parse unsupported dependency formats

This is intentional. v0 is generation + validation only.

Quickstart

Install RepoResolve:

pip install -e .
reporesolve

Set your API key if you are using a provider:

OPENAI_API_KEY=your-key
# or
ANTHROPIC_API_KEY=your-key

Prerequisites

Make sure you have:

  • Python 3.10+
  • Git available on PATH
  • Conda available on PATH
    • required for reporesolve doctor
    • required for reporesolve doctor --install
  • Network access
  • One configured provider:
    • OpenAI: OPENAI_API_KEY and the openai SDK
    • Anthropic: ANTHROPIC_API_KEY and the anthropic SDK

If you are cloning GitHub repos, especially private repos, set up GitHub access first:

gh auth login
# or
ssh -T git@github.com

If cloning fails because GitHub access is not configured, RepoResolve stops and asks you to fix access first.

Workflow

  1. Input repos in the guided TUI.
  2. Clone repos.
  3. Scan dependency manifests and setup clues.
  4. Select relevant manifests.
  5. Parse supported files:
    • requirements*.txt
    • environment.yml
    • environment.yaml
  6. Detect conflicts.
  7. Review proposed changes:
    • accept
    • reject
    • edit
    • defer
  8. Generate output files.

Output

Each run creates:

./artifacts/<run_id>/

Contents:

  • environment.generated.yml
  • manual-setup.md
  • manual-setup.json
  • report.json

Doctor

After reviewing the generated files and completing the manual setup steps:

reporesolve doctor

doctor checks:

  • artifact presence
  • conda availability
  • environment visibility
  • manual setup requirements
  • dependency solve via conda env create --dry-run

Optional disposable install validation:

reporesolve doctor --install

Configuration

RepoResolve reads API keys from:

  • .env
  • environment variables

If no provider is configured, RepoResolve fails explicitly.

RepoResolve writes run outputs relative to the directory where you run the command:

  • cloned repos: ./repos/
  • artifacts: ./artifacts/<run_id>/

Commands

  • reporesolve - run the workflow
  • reporesolve start - alias for the workflow
  • reporesolve doctor - validate the latest generated run in the current directory
  • reporesolve doctor --install - attempt disposable install validation
  • reporesolve version - show the installed version

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

reporesolve-0.2.1.tar.gz (33.3 kB view details)

Uploaded Source

Built Distribution

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

reporesolve-0.2.1-py3-none-any.whl (41.1 kB view details)

Uploaded Python 3

File details

Details for the file reporesolve-0.2.1.tar.gz.

File metadata

  • Download URL: reporesolve-0.2.1.tar.gz
  • Upload date:
  • Size: 33.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for reporesolve-0.2.1.tar.gz
Algorithm Hash digest
SHA256 2290d84f781ce4dfbc5646d786d8b449a41f0b509bc38ce68ccfd3ae2d400aaa
MD5 c0b0eb8222924d030070f0b81d62e442
BLAKE2b-256 ce81a24208187769ab848f6cea8fb646fb8f59c71d647cd432828ce2c3c3aa33

See more details on using hashes here.

File details

Details for the file reporesolve-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: reporesolve-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 41.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for reporesolve-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b27808fbda583b1b3b88afd50f6aeb9c7bef498d96278f62ddbc79b054a50d8b
MD5 2eb9d988fa2bb104b5d0708dc115fd57
BLAKE2b-256 340162a5bcc1c8eb4822f9ab7066843c05b84de98405c6a9fa4deb6af1566170

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