Installation
Install Repo2RLEnv, add the extras your route needs, and set up the credentials each command uses.
Repo2RLEnv is a Python package with one CLI, repo2rlenv. The base install covers native generation, validation and publishing; optional extras add remote workers, Tasksmith and in-process Harbor execution.
Requirements
| Requirement | Needed for |
|---|---|
| Python 3.12 or later | Everything. |
| Git | Cloning source repositories. |
GitHub CLI (gh) | Every GitHub API call during generation (listing PRs, fetching diffs, issues and commits), even when you authenticate with GITHUB_TOKEN. |
| Docker | Native runtime pipelines (pr_runtime, commit_runtime, code_instruct, equivalence_tests, cve_patches), which build and check environments locally, and running any task locally with harbor run --env docker. Generating pr_diff tasks doesn't need it. |
| A Modal or Daytona account | Research recipes, Tasksmith and the quality loop. They build and execute on remote workers; there's no local Docker fallback. |
| Node.js 22.19 or later | Tasksmith's Pi and OpenCode adapters. |
Install
pip install repo2rlenvAdd extras in brackets. For example, Tasksmith on Daytona:
pip install 'repo2rlenv[tasksmith,daytona,harbor]'To run tasks, install the Harbor CLI as well: uv tool install harbor. The harbor extra also puts a harbor command in the same environment.
From a checkout
Research recipes, Tasksmith and the quality loop upload the Repo2RLEnv runtime wheel to the remote worker, and the controller checks that the wheel matches its own package. Build it from a checkout:
git clone https://github.com/huggingface/Repo2RLEnv
cd Repo2RLEnv
uv sync --extra modal --extra harbor
uv build --wheel
uv run repo2rlenv --versionuv build --wheel writes dist/repo2rlenv-<version>-py3-none-any.whl; recipe configs and tasksmith run --runtime-wheel point at that file. Pass one --extra per extra you need.
Tasksmith runtime
Tasksmith drives Pi or OpenCode through a Node.js runtime (Node.js 22.19 or later). Install it once, after the tasksmith extra:
repo2rlenv tasksmith install-runtimeExtras
| Extra | Adds | Enables | You need it when |
|---|---|---|---|
harbor | harbor 0.22.0 | Harbor's task models and trial runner, used in-process | You run research recipes, Tasksmith, the quality loop or release |
modal | modal, dockerfile-parse | Modal workers, including Tasksmith's L4 GPU route | Your remote provider is Modal |
daytona | daytona | Daytona workers | Your remote provider is Daytona |
tasksmith | langgraph, langgraph-checkpoint-sqlite | Tasksmith's stage graph and its SQLite checkpoints | You run Tasksmith |
mutation | libcst, pyflakes | Source mutation and checks | You run the swe_smith recipe |
The base install already includes LiteLLM for model calls and the Hugging Face Hub client for push and pull.
Credentials
Set only what your route needs. Repo2RLEnv reads secrets from the environment and never writes token values into task directories or logs.
| Service | How to authenticate | Used by |
|---|---|---|
| GitHub | gh auth login, or GITHUB_TOKEN. For per-repository tokens, name the variable in repo.auth_token_env in a config file. GitLab uses GITLAB_TOKEN. | generate (cloning, PR and commit mining), Tasksmith intake |
| LLM providers | ANTHROPIC_API_KEY, OPENAI_API_KEY, HF_TOKEN, TOGETHER_API_KEY, GROQ_API_KEY (resolved through LiteLLM). --llm-key-env VAR picks a different variable; --llm-endpoint URL targets a self-hosted OpenAI-compatible server. | generate --llm for the runtime pipelines, bootstrap, research recipes with model stages, Tasksmith, quality run |
| Hugging Face Hub | hf auth login, or HF_TOKEN with write access to push | push, pull of private datasets, release publish |
| Modal | modal setup, or MODAL_TOKEN_ID and MODAL_TOKEN_SECRET | workers start --provider modal, quality run (Modal is its default provider), tasksmith run --provider modal |
| Daytona | DAYTONA_API_KEY | workers start --provider daytona, quality run --provider daytona, tasksmith run --provider daytona |
| Container registry | GHCR_TOKEN or GITHUB_TOKEN for GHCR; DOCKER_USERNAME and DOCKER_TOKEN for Docker Hub | push of runtime datasets whose bootstrap images you distribute; without one, push falls back to inline Dockerfiles |
Agents and verifiers that run under Harbor get their keys from harbor run --ae and --ve instead. The Quickstart shows how. Authentication covers the GitHub resolution order and private repositories; Registry authentication covers image distribution.
Using a .env file
The CLI loads a .env file automatically. It searches the directory the package is installed in and its parents, so it finds the .env at the root of a checkout, or of a project whose virtual environment lives inside it. With uv tool install or a global install, export the variables in your shell instead:
set -a && source .env && set +aThe repository's .env.example lists every variable.
Platform support
Repo2RLEnv runs on Linux and macOS. On Windows, CI covers CLI startup, recipe discovery, native task emission and static validation. Run Tasksmith, research-recipe generation and the quality loop on Linux, macOS or WSL: their controllers depend on POSIX file permissions and process cleanup, and choosing a cloud provider doesn't remove that host requirement.
Verify your install
repo2rlenv --version
repo2rlenv pipelines listThe first command prints the version (repo2rlenv 0.9.3). The second lists every native pipeline and research recipe with its status and source type:
┃ Pipeline ┃ Recipe ┃ Status ┃ Source ┃
│ pr_diff │ native │ stable │ repository │
│ pr_runtime │ native │ stable │ repository │
│ commit_runtime │ native │ stable │ repository │
│ code_instruct │ native │ experimental │ repository │
│ … │ │ │ │
│ reasoning_synth │ scaler │ experimental │ family │
│ optimization_synth │ frontiersmith │ experimental │ seeds │Then check the tools your route uses: gh auth status for GitHub and docker info for local runtime pipelines. When everything reports cleanly, continue with the Quickstart.