> ## Documentation Index
> Fetch the complete documentation index at: https://docs.envlink.projectinwork.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction

> Lease build environments on demand, wire them to your machine over a private network, and run builds and services there as if they were local.

envlink leases isolated environments, such as a Linux build box, a Postgres or a hosted agent sandbox, from a pool of warm nodes. It wires them to your machine over a private tailnet. Your code syncs up, builds run remotely, results come back as local files, and services like Postgres appear on `localhost`. People, CI runners and coding agents all use the same CLI, `envctl`, and the same API.

## What you can run

<CardGroup cols={2}>
  <Card title="linux-build" icon="hammer">
    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.
  </Card>

  <Card title="postgres" icon="database">
    PostgreSQL 16, reachable at `127.0.0.1:5432` on your machine. It's ready once it accepts connections.
  </Card>

  <Card title="agent-sandbox" icon="robot">
    A hosted sandbox with the usual command-line tools and envctl, for an agent or a CI run that can't use your machine.
  </Card>

  <Card title="app-runtime" icon="server">
    Python with FastAPI, serving the app you sync and reloading on every change. It's on your `localhost` too.
  </Card>
</CardGroup>

Every environment runs in its own container under gVisor, with its own network and volumes. It's ready from a warm slot in about three seconds.

## How it works

<Steps>
  <Step title="Your machine becomes the sandbox">
    `envctl sandbox up` runs envd, envlink's agent, on your machine and joins it to your organization's tailnet.
  </Step>

  <Step title="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.
  </Step>

  <Step title="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.
  </Step>

  <Step title="You release it">
    `envctl env delete` removes the container and its data. The node stays up for the next lease.
  </Step>
</Steps>

## Choose your path

<CardGroup cols={2}>
  <Card title="Quickstart" icon="rocket" href="/quickstart">
    Install envctl, lease a build box and build a project remotely, in about three minutes.
  </Card>

  <Card title="Set up a coding agent" icon="wand-magic-sparkles" href="/agents/setup">
    Install the envlink skill so Claude Code or Codex leases, builds and cleans up by itself.
  </Card>

  <Card title="Run it in CI" icon="code-branch" href="/guides/ci">
    Make a GitHub Actions runner a sandbox and build in a leased box.
  </Card>

  <Card title="Call the API" icon="code" href="/api-reference/introduction">
    Create environments, list snapshots and store artifacts over HTTPS.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.