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.ymlmanual-setup.mdmanual-setup.json
- Provides a
doctorcommand 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
aptorbrew - 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
- required for
- Network access
- One configured provider:
- OpenAI:
OPENAI_API_KEYand theopenaiSDK - Anthropic:
ANTHROPIC_API_KEYand theanthropicSDK
- OpenAI:
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
- Input repos in the guided TUI.
- Clone repos.
- Scan dependency manifests and setup clues.
- Select relevant manifests.
- Parse supported files:
requirements*.txtenvironment.ymlenvironment.yaml
- Detect conflicts.
- Review proposed changes:
- accept
- reject
- edit
- defer
- Generate output files.
Output
Each run creates:
./artifacts/<run_id>/
Contents:
environment.generated.ymlmanual-setup.mdmanual-setup.jsonreport.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 workflowreporesolve start- alias for the workflowreporesolve doctor- validate the latest generated run in the current directoryreporesolve doctor --install- attempt disposable install validationreporesolve version- show the installed version
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2290d84f781ce4dfbc5646d786d8b449a41f0b509bc38ce68ccfd3ae2d400aaa
|
|
| MD5 |
c0b0eb8222924d030070f0b81d62e442
|
|
| BLAKE2b-256 |
ce81a24208187769ab848f6cea8fb646fb8f59c71d647cd432828ce2c3c3aa33
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b27808fbda583b1b3b88afd50f6aeb9c7bef498d96278f62ddbc79b054a50d8b
|
|
| MD5 |
2eb9d988fa2bb104b5d0708dc115fd57
|
|
| BLAKE2b-256 |
340162a5bcc1c8eb4822f9ab7066843c05b84de98405c6a9fa4deb6af1566170
|