compiler.dev docs
compiler.dev runs your existing GitHub Actions jobs on fast, isolated Linux machines. You keep GitHub Actions and your checks; only the machine changes. If compiler.dev is ever unavailable, your jobs run on your original runners automatically.
Getting started
1. Sign in and install the GitHub App. Sign in with GitHub, then install the compiler.dev App on your organization and choose the repositories it can see. The App reads workflows and job metadata, registers one-time runners for jobs routed to compiler.dev, and — only through the setup PR — proposes workflow changes. It never merges anything.
2. Pick a repository and a mode. We analyze its workflows and show which jobs can move. Choose Try safely (comparison: a copy runs on our machines, your results still come from your runners) or Switch now with 10%, 25%, 50% or 100% of pull requests. A PR stays on the same side for all of its pushes and re-runs.
3. Merge the setup PR. Each routed workflow gets a small compiler-route job that asks compiler.dev where the job should run; your jobs use its answer as runs-on. Your steps are unchanged. Nothing moves until the PR is merged.
4. Watch the first run. The app shows each job live — queued, booting, running, done — with the machine name and the duration against your previous runners.
Which jobs can move
- Eligible: Linux jobs (
ubuntu-*) that build and test. Default machine: 8 vCPU, 16 GB, fresh for every job and deleted afterwards. - Stay on your runners: deploy and publish jobs, Windows, macOS, ARM, GPU, and jobs from forked pull requests (they can't obtain an OIDC token).
- Secrets: jobs that use secrets run on our machines with the secrets you grant. Prefer test-only credentials; the analysis flags these jobs.
Fallback & rollback
- Automatic fallback: if compiler.dev is down, slow to answer (15 s), or can't start a machine for your job, the route job answers with your original runner, or the run is cancelled and re-run on it. Real test failures are never re-routed.
- Pause: set the repository to 0% in the dashboard and new PRs use your original runners.
- Remove: revert the setup PR, or uninstall the GitHub App. Uninstalling stops all access and routing immediately.
Build cache (Nx / Turborepo)
On compiler.dev runners, Nx (20.8+) and Turborepo automatically use a remote cache next to the runners — nothing to change in your workflows. Caches are isolated per repository; pull requests can read the default branch's cache but only write their own, so a PR can never inject artifacts into trusted builds. To opt out for a job, set NX_SELF_HOSTED_REMOTE_CACHE_SERVER: "" and/or TURBO_API: "" in that job's env:.
Get started with your box
Code in a box is your own Linux machine for coding agents (4 vCPU, 16 GB, 100 GB disk). Claude Code or Codex works in it on your repositories; you watch, steer and open the pull request. The disk persists, so repositories, worktrees and agent sessions are still there next time.
1. Sign in. Sign in with GitHub and install the compiler.dev App on your organization (the same App as for CI). Your organization needs prepaid credit; if it has none, the box card shows Add credit to start your box with a link to Billing.
2. Add a key. Open Workspaces (or Start coding in your box on the Overview) and create your box. Then paste your own key: an Anthropic key for Claude Code (from console.anthropic.com → API keys) or an OpenAI key for Codex (from platform.openai.com → API keys). Keys are stored encrypted, sent only to your box, and never shown again. Model usage is billed to you by Anthropic or OpenAI.
3. Start. The first boot takes about a minute; after that, Start resumes a stopped box in about 15 seconds. Sending a prompt to a stopped box starts it too.
4. Chat. Pick a repository and the agent, describe the change, and press Start chat. Each chat gets its own git worktree on branch ws/…. You see the agent's messages and commands live, then the tests it ran and the diff; send a follow-up for the next change, or open the pull request. Up to 3 agents can work on your box at once.
5. Open on another device. Open on another device makes a one-time link, valid for 5 minutes, that opens the same chats in another browser (your phone, say) for 12 hours without signing in there. Sign out other devices ends those sessions.
6. Stop. Press Stop when you're done, or just leave: the box stops by itself after 60 minutes with no agent working and nobody in an open chat. A tab you left open in the background, or haven't touched for 30 minutes, doesn't keep it awake. Stopping keeps the disk; deleting the box deletes the disk.
Fewer tokens. Agents in a box run their shell commands through RTK, which compacts the output of builds, tests and git before the model reads it (typically 60–90% less). Run rtk gain in the box to see what it saved. To bypass it for one command, start the command with RTK_DISABLED=1. To turn it off for the box, run rtk init -g --uninstall and rtk init -g --codex --uninstall; the agents then see raw output, and the box does not put it back until we ship a newer RTK version.
- Costs: $0.0065 per running minute (about $0.39 an hour) plus $0.10 per GB-month for the disk ($10 a month for 100 GB, also while stopped), drawn from your organization's prepaid credit. The card shows this month's cost.
- Limits: one box per person, up to 3 agents at once, and a daily spend limit per organization ($25 by default; ask us to raise it). New chats are refused when the disk is 95% full; archive finished chats to free space.
- Fair use: crypto mining and outbound email (port 25) are blocked.
Billing
- $0.009 per runner-minute for the default Linux 8 vCPU / 16 GB runner, measured per job, invoiced monthly through Stripe.
- Other machines: Linux 2 / 4 / 16 / 32 vCPU at $0.0035 / $0.0065 / $0.018 / $0.036 per minute (on request); macOS on Apple M4 Pro at $0.028 per minute for a 7-core VM or $0.055 per minute for a full 14-core host, billed per second (early access); dedicated M4 Pro hosts from $3,595 per host per month.
- Prepaid credit: buy credit from $20 (card, via Stripe) before jobs run on compiler.dev; it never expires and usage draws it down per minute. At $0, jobs fall back to your own runners — CI never breaks. Optional auto top-up.
- Spending cap: set a monthly cap. When it's reached, new jobs run on your own runners until the next month or until you raise it.
- Owners and billing admins manage payment methods and invoices from Usage & billing.
Usage analytics & your data
We record product and CI events (for example job queued, started and finished with durations, cache hits, onboarding steps and page views) to run the service and to power your usage dashboards. Events contain repository and job names, timings and counts, never source code, secrets, or email addresses; people are identified by an internal user id only. Your organization's events are visible only to your organization, and are kept for two years.
Data processors for Code review and Insights
These outside services process your data when Code review or Insights is on:
- Anthropic writes code reviews and answers Insights questions. It receives the pull request's diff, the relevant files, and your question. If your organization adds its own Anthropic API key in Settings, these requests go to Anthropic under your own account and terms instead of ours, and Anthropic bills you for them.
- A decision-model provider (TypeSafe) helps decide how closely to review a pull request and which findings are worth posting. It receives the pull request's title and description, the list of changed files, and short excerpts of the diff. It always runs on our account.
Turn Code review or Insights off in Settings → Features and nothing is sent to them.
Help
Questions or a job that won't move? Email admin@luxlogik.com.