localhost. People, CI runners and coding agents all use the same CLI, envctl, and the same API.
What you can run
linux-build
Go, C and C++, Python, Node and Bazel. Share a folder to
/work, run builds with envctl exec, and whatever lands in /work/out comes back.postgres
PostgreSQL 16, reachable at
127.0.0.1:5432 on your machine. It’s ready once it accepts connections.agent-sandbox
A hosted sandbox with the usual command-line tools and envctl, for an agent or a CI run that can’t use your machine.
app-runtime
Python with FastAPI, serving the app you sync and reloading on every change. It’s on your
localhost too.How it works
1
Your machine becomes the sandbox
envctl sandbox up runs envd, envlink’s agent, on your machine and joins it to your organization’s tailnet.2
You lease an environment
envctl env create linux-build --share src=. asks the API for a build box. A hot node starts one from a warm slot and wires it to your sandbox.3
Files and commands flow both ways
Your folder syncs up in content-defined chunks, sealed under your project’s key.
envctl exec runs a command there, and results come back before it returns.4
You release it
envctl env delete removes the container and its data. The node stays up for the next lease.Choose your path
Quickstart
Install envctl, lease a build box and build a project remotely, in about three minutes.
Set up a coding agent
Install the envlink skill so Claude Code or Codex leases, builds and cleans up by itself.
Run it in CI
Make a GitHub Actions runner a sandbox and build in a leased box.
Call the API
Create environments, list snapshots and store artifacts over HTTPS.