Reproducible development environments

Prepare the environment. Keep using the tools you already know.

Basecamp reads the project files already in your repository, locks the wider development environment, and synchronizes the missing runtimes, packages, tools, and native inputs. Your build still belongs to Cargo, pnpm, Go, uv, and the rest of your stack.

first setupbasecamp init
after clone / CIbasecamp sync
work normallybasecamp shellcargo build

Available today: Rust / Cargo ·pnpm, Go, Python, native tools, SDKs, and services follow the same environment model.

Start with your stack

One environment lifecycle. Keep each ecosystem's native workflow.

Basecamp understands the files your project already has, synchronizes the wider development environment, and then gets out of the way.

Rust / CargoAvailable
Project filesCargo.tomlCargo.lockrust-toolchain.toml
Basecampbasecamp syncbasecamp shell
Then use

cargo build · cargo test · cargo run

Open guide →
pnpm / npmPlanned
Project filespackage.jsonpnpm-lock.yaml
Target lifecyclebasecamp syncbasecamp shell
Then use

pnpm build · pnpm test

Open guide →
GoPlanned
Project filesgo.modgo.sum
Target lifecyclebasecamp syncbasecamp shell
Then use

go build ./... · go test ./...

Open guide →
Python / uvPlanned
Project filespyproject.tomluv.lock
Target lifecyclebasecamp syncbasecamp shell
Then use

uv run pytest · python ...

Open guide →

What Basecamp can prepare

From package dependencies to complete development inputs.

Start with the software your project already expects. Basecamp is designed to prepare package sets, tools, runtimes, SDKs, models, and remote services without forcing every environment to carry everything up front.

CategoryExamplesStatus
Project packagesCargo · pnpm/npm · Bun · Deno · Go modules · Python/uv/pip · Maven · Gradle · NuGetAvailableCargo today; more stacks planned
System packagesapt · apk · Homebrew · system libraries · headers · pkg-config inputsPlannedOS-level preparation
Tools & binariesprotoc · ffmpeg · chromium · git · jq · language servers · static binariesPlanneddownload and verify by platform
Runtimes & toolchainsRust · LLVM · GCC · Node · Go · Python · Java · .NET · cross-compilersAvailableRust today; more runtimes planned
SDKs & native librariesOpenSSL · CUDA · ROCm · protobuf · Android SDK · vendor SDKs · C/C++ librariesPlannedplatform-aware delivery
Containers & environmentsOCI images · layers · devcontainers · build roots · runtime imagesPlannedprepared roots and images
Models & datamodel weights · tokenizers · adapters · embeddings · indexes · datasetsPlannedverified model and data delivery
Agent toolsMCP servers · tool plugins · agent skills · browser/computer toolsIn designagent-facing integrations
Remote servicesAPIs · databases · queues · object stores · browsers · GPU workers · remote executionIn designservice connections and leases
Execution environmentsephemeral sandboxes · Firecracker VMs · builder pools · CI workers · GPU runtimesLong-termexecution fabric

Browse the full catalog →

Environment boundaries

Start small. Synchronize only what the project actually needs.

01

Local development

Share immutable runtimes and package layers across projects while keeping project activation local and explicit.

02

CI

Reproduce the committed environment lock instead of rebuilding a bespoke development image for every job.

03

Sandboxes

Materialize the locked environment before isolation, or import a complete Basecamp bundle into an air-gapped sandbox.

04

Agents

Let an agent synchronize the known environment, verify status, and then continue using the project's native tools.

Available today

Rust is the first complete Basecamp environment.

Basecamp resolves the exact Rust toolchain from the official distribution, records Cargo.lock by digest, lets Cargo materialize its own registry packages, and reuses both through a shared local store. The final application build remains native Cargo.

Open the Rust / Cargo guide →
InputsCargo.toml · Cargo.lock · rust-toolchain
Lockbasecamp.lock · exact sources · SHA-256
SyncRust CDN · Cargo registry · shared store
Usebasecamp shell → cargo build