Skip to main content

REPRO

Disposable Docker environments for any GitHub issue. One command. No setup.

pip install repro-cli
repro https://github.com/org/repo/issues/42

That's it, your terminal boots an isolated sandbox - repo cloned, dependencies installed and IF you have VS Code, it opens automatically attached directly to the container so you get a real editor and a single unified terminal, not just a shell. Type exit and the container disappears. Your files stay on disk, exactly where they were.


Install

pip install repro-cli

Requirements:

  • Python 3.9+
  • Docker (INSTALLED AND RUNNING)
  • VS Code (optional, but recommended - enables the unified editor/terminal experience below)

Usage

# Open a sandbox for any publish GitHub issue
repro https://github.com/org/repo/issues/123
#Forward a port (e.g. to view a web app running inside the sandbox)
repro https://github.com/org/repo/issues/123 -p 3000
# Map a different host port to a container port
repro https://github.com/org/repo/issues/123 -p 8080:3000
# Private repos - pass a GitHub token
repro https://github.com/org/private-repo/issues/7 --token ghp_xxx
#Or set it once as an env var instead of typing it every single time!
export DEVSANDBOX_GITHUB_TOKEN=ghp_xxx
repro https://github.com/org/private-repo/issues/7
# Skip auto-opening an editor
repro https://github.com/org/repo/issues/123 --no-editor
#Help
repro --help

What it does

  1. Parses the GitHub issue URL
  2. Detects the repo's runtime - Node, Python, Go, Rust, Ruby, PHP, Java, or a devcontainer, based on whats actually in the repo.
  3. Spins up a disposable, isolated Docker container with the right base image.
  4. Bind-mounts a real folder on your machine into the container, so nothing is trapped - files persist after you exit
  5. Clones the repo directly into that shared folder and install dependencies
  6. Attaches VS Code directly to the running container (auto-installing the Dev Containers extension if needed) - one window, one terminal, running inside the sandbox.
  7. Destroys the container the moment you exit. Your edited files remain exactly where they were.

The unified editor experience

  • Real editor — VS Code attaches directly into the container, so its built-in terminal is the sandbox shell. No second window to juggle.
  • Real persistence — because the folder is bind-mounted, not just cloned inside the container, your work survives after exit. Nothing is lost. If VS Code isn't installed, repro falls back gracefully — you still get a real folder path printed at the end, ready to open in whatever editor you use.

Supported runtimes

File detected Runtime Base image
package.json Node.js node:20-alpine
yarn.lock Node.js (yarn) node:20-alpine
pnpm-lock.yaml Node.js (pnpm) node:20-alpine
requirements.txt Python python:3.12-slim
pyproject.toml Python python:3.12-slim
Pipfile Python (pipenv) python:3.12-slim
go.mod Go golang:1.21-alpine
Cargo.toml Rust rust:1.75-slim
Gemfile Ruby ruby:3.3-slim
composer.json PHP php:8.3-cli
pom.xml Java (Maven) maven:3.9-eclipse-temurin-21
build.gradle Java (Gradle) gradle:8-jdk21
.devcontainer devcontainer MS universal image
(none matched) Universal fallback ubuntu:22.04

The GitHub App

Install repro-sandbox-bot on any repo and it automatically comments the exact repro command on every new issue - so contributors never have to think about setup.

🏖 Open this issue in DevSandbox
 
Spin up a disposable Docker environment with this repo already checked out:
 
    repro https://github.com/org/repo/issues/42
 
Don't have repro yet? Install it here.
 
Comment /sandbox on any issue to get this again.

You can also trigger it on demand by commenting /sandbox on any issue. The bot runs 24/7, independent of your machine.


Contributing

PRs welcome. Open an issue first for anything beyond small fixes - and yes, you can use repro itself to work on repro.

License

MIT

Metadata

Release files for repro-cli 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for repro-cli 0.2.0
File Size Uploaded
repro_cli-0.2.0.tar.gz 12.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for repro-cli 0.2.0
File Interpreter ABI Platform
repro_cli-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 24.0 kB

Release files / repro_cli-0.2.0.tar.gz

Download URL repro_cli-0.2.0.tar.gz
Size 12.5 kB
Tags Source
SHA-256 checksum
How to use checksums
02c33e5dae98e1dc16c21fdfe7b77ddd12ccf05eccd054e8123c0a5d29cc5f67
BLAKE2b-256 checksum
How to use checksums
343d3cf593824aa5bec2b38281b591f4aacbf2f78c2ec8cffcfe994bfe3e6bad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.2

Release files / repro_cli-0.2.0-py3-none-any.whl

Download URL repro_cli-0.2.0-py3-none-any.whl
Size 11.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
852e30d6c4984b1eaf453021282a1646f44e853936a959b8214d7e3a7f0a6210
BLAKE2b-256 checksum
How to use checksums
be51819edf64e7042bcbf0fc0cfbf6588cdf83796d8b21bdd9e6a53268376124
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.2

Release history Release notifications | RSS feed

0.2.1

2 release files

This release

0.2.0 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page