Free Forever • Mozilla Public License 2.0

Build Once. Run Anywhere.
Seriously.

Run fast, containerized builds that behave identically everywhere. No more broken pipelines, no more “works on my machine”.

brew install earthbuild/tap/earth
01

Deterministic

A pure function of its inputs.

Hermetic container namespaces eliminate untracked side effects. Identical inputs memoize into instant cache replays, guaranteeing zero wasted compute and absolute local-to-CI parity.

02

Interactive

Drop into the failure.

When a build step crashes, earth -i hands you an interactive root shell inside the failing layer.

03

Zero YAML Sprawl

One file in your repo.

Replace hundreds of lines of fragile CI actions with a single portable command: earth --ci +test.

04

Incremental

Never repeat work.

Sub-DAG pruning ensures only modified code recompiles. Unchanged targets take zero seconds.

Overcome the CI Feedback Bottleneck

Software engineers lose hours every week waiting for cloud CI runners and dealing with environment drift. EarthBuild gives you the speed and certainty of local iteration.

Traditional CI & Build Friction

  • ✕

    "Works on my machine" Syndrome

    Mismatched Node, Python, or Go versions, missing local headers, and OS differences create constant environment drift.

  • ✕

    Remote CI Guess-and-Check Loops

    You cannot easily reproduce remote CI pipelines locally. Every adjustment requires pushing commits and waiting in runner queues.

  • ✕

    Untestable Pipeline Scripts in YAML

    Multi-step YAML files with embedded shell scripts that cannot be tested, stepped through, or executed directly on local machines.

  • ✕

    Redundant Rebuilds & Expensive Cloud Compute

    CI runners re-download dependencies, re-compile static assets, and rerun unchanged test suites from scratch on every push.

The EarthBuild Paradigm

  • ✓

    Deterministic Container Sandboxing

    Every step runs inside an isolated container with declared inputs. If it builds on your workstation, it builds in CI identically.

  • ✓

    Instant Local CI Parity

    Run earth +test or earth +ci directly in your terminal. Get instant local feedback in seconds without pushing a single commit.

  • ✓

    Familiar, Declarative Syntax

    Instant readability with Dockerfile verbs (FROM, RUN, COPY) and Makefile targets (+build, +docker). Zero complex DSLs.

  • ✓

    Automatic Parallelism & Instant Caching

    EarthBuild automatically discovers target dependencies, executes independent steps simultaneously, and caches layers instantly.

Built for Maximum Engineering Velocity

Everything you need to orchestrate complex polyglot builds, monorepos, and multi-service systems without cognitive fatigue.

📦

Docker, Podman & Apple Containers

Supports Podman, Docker, and Apple container engines out-of-the-box by default. Zero host toolchain contamination with complete container isolation.

💾

Universal File & Image Output

While extracting host files with Docker typically requires dedicated --output type=local stages or docker cp, EarthBuild natively exports compiled binaries, test reports, and container images simultaneously in a single build pass.

SAVE ARTIFACT dist/binary AS LOCAL ./bin/binary
🏘

Monorepo & Remote Repo Imports

Reference and execute targets across nested subdirectories or remote Git repositories with pinpoint caching. Re-use shared proto generators, linters, or base images with one line.

BUILD github.com/myorg/toolchain:v2.1+generate
🌐

Native Multi-Platform Builds

Build for multiple CPU architectures simultaneously (e.g. linux/amd64 and linux/arm64). Test Apple Silicon and AWS Graviton targets locally with zero hassle.

Engineered for Zero-Trust Security. Built for AI Agents.

Isolate untrusted open-source packages, protect enterprise credentials, and give autonomous AI coding assistants complete build freedom without risking your host machine.

Supply Chain Defense

Hermetic Host Sandboxing

Every build step executes inside an unprivileged container namespace. Malicious npm, pip, or cargo post-install scripts can never access host files, SSH keys, cloud credentials, or environment variables.

Autonomous AI Ready

The Safe Sandbox for AI Coding Agents

Give autonomous coding agents (Claude Code, Devin, Cursor, Antigravity CLI) full freedom to install dependencies, compile code, and run test suites. If an agent hallucinates a dangerous command, the blast radius is isolated inside the container sandbox.

SecOps Compliance

Zero-Leak Secret Injection

Secrets mounted via RUN --secret exist exclusively in RAM during target execution over secure gRPC. They are never baked into cache layers, exported images, or build logs.

Faster Feedback Loops. Everywhere You Build.

See how EarthBuild layer caching eliminates redundant compilation on your workstation and in CI. Watch a live 3-way execution race comparing a clean build, an incremental build, and a zero-work rebuild.

Earthfile
VERSION 0.8
FROM python:3.14-slim
WORKDIR /app

# deps caches pip dependencies in isolated container layer
deps:
  COPY requirements.txt .
  RUN --mount=type=cache,target=/root/.cache/pip pip install -r requirements.txt

# test runs unit tests inside isolated container
test:
  FROM +deps
  COPY src src
  RUN pytest src/
❄️ Clean Build
6.2s
✏️ Incremental Build
1.8s 3.4x Faster
⚡ Zero-Work Rebuild
1.1s 5.6x Faster
⚡ Compute Saved 82% Saved (5.1s)
🌱 CO₂ Emissions Avoided 🌱 CO₂ Estimation Formula Calculated using the Cloud Carbon Footprint & GSF standard (~200W active CI runner @ 1.15 PUE with ~410g CO₂e/kWh grid average ≈ 0.25g CO₂e / sec of build time eliminated). Source: Cloud Carbon Footprint Methodology ~1.4g CO₂e / build

How EarthBuild Compares to Alternatives

See why engineering teams choose EarthBuild over Dagger, Bazel, Docker Buildx, Makefiles, and brittle CI YAML.

CapabilityEarthBuildDaggerBazelDocker BuildxMake / JustGitHub Actions
Local == CI 100% Parity
Exact same build outputs locally & in CI
✓ Native✓ Native✓ Native◐ Image only✕ Host dependent✕ Cloud only
Automatic Container Sandboxing
Zero toolchain drift across laptops
✓ Yes (Built-in)✓ Yes (Containers)◐ Strict sandbox✓ Yes✕ None◐ VM-level
Familiar Declarative Syntax
Familiar Dockerfile & Make verbs
✓ Declarative DSL◐ Code SDKs (Go/TS/Python)◐ Starlark DSL✓ Dockerfile✓ Makefile◐ CI YAML
Zero-Rewrite Adoption
Wrap existing tools (cargo, go, npm, pip)
✓ Drop-in Wrapper◐ Requires SDK code✕ Total rewrite✓ Drop-in✓ Drop-in✓ Drop-in
Local Artifact Export to Host
Native SAVE ARTIFACT ... AS LOCAL
✓ Native (1-line)✓ Via Directory API✓ Native◐ Requires --output flag✓ Host writes✕ Upload artifact
Automatic DAG Parallelism
Build independent targets simultaneously
✓ Automatic (BuildKit)✓ Automatic✓ Automatic◐ Multi-stage only◐ make -j (Unsandboxed)◐ Matrix jobs
Multi-Tier Layer Caching
Local layer cache + remote registry cache
✓ Instant Layer Cache✓ Layer Cache✓ Content-addressed✓ BuildKit cache✕ Timestamp based◐ actions/cache
Monorepo & Cross-Repo Imports
Reference targets across folders or git URLs
✓ First-class✓ Module imports✓ Monorepo only✕ Single file only◐ include directives✕ Submodules
100% Community Open Source (MPL-2.0)
No proprietary locks, fully self-hostable
✓ 100% Open Source◐ Apache 2.0 + Cloud service✓ Open source◐ Apache 2.0 (Buildx) / Desktop terms✓ Open source✕ Proprietary SaaS

Calculate Your Time, Compute & CO₂ Savings

See how much developer focus, CI runner capacity, and data center energy your team saves by eliminating redundant rebuilds.

672 hrs
⚡ Engineering Wait Time Reclaimed / Month
≈ ~34 hrs saved / dev / month
40,320 mins
🖥️ CI Runner Minutes Spared / Month
≈ 1,344 vCPU-hrs (2-vCPU runner baseline)
605 kg CO₂e
🌱 Cloud Emissions Avoided / Month
≈ ~1.2 MWh data center energy spared

Adopt EarthBuild in Under 5 Minutes

Adopt EarthBuild alongside your existing toolchain without disrupting active pipelines or rewriting your repository. Start with a single target and migrate at your own pace.

Standard Dockerfile
FROM golang:1.27-alpine3.24 AS deps
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download

FROM deps AS test
COPY *.go ./
RUN go test -v ./...

FROM deps AS builder
COPY *.go ./
RUN CGO_ENABLED=0 go build -o bin/app .

FROM alpine:3.24 AS runtime
COPY --from=builder /app/bin/app /usr/local/bin/app
ENTRYPOINT ["/usr/local/bin/app"]
Earthfile (Direct Host Artifacts & Push Built-In)
VERSION 0.8
FROM golang:1.27-alpine3.24
WORKDIR /app

deps:
  COPY go.mod go.sum ./
  RUN go mod download

test:
  FROM +deps
  COPY *.go ./
  RUN go test -v ./...

build:
  FROM +deps
  COPY *.go ./
  RUN CGO_ENABLED=0 go build -o bin/app .
  SAVE ARTIFACT bin/app AS LOCAL bin/app

docker:
  FROM alpine:3.24
  COPY +build/bin/app /usr/local/bin/app
  ENTRYPOINT ["/usr/local/bin/app"]
  SAVE IMAGE --push docker.io/myorg/myapp:latest

all:
  BUILD +test
  BUILD +build
  BUILD +docker

Loved by Engineers & DevOps

Here is what developers say about replacing brittle CI YAML and complex monorepo tooling with EarthBuild.

"EarthBuild cut our CI pipeline time from 28 minutes to under 4 minutes with layer caching. But the biggest win was eliminating 'works on my machine' once and for all across our 40-engineer team."
MS
Marcus S.
Principal Platform Engineer
"The Dockerfile + Makefile syntax is pure genius. There was literally zero learning curve for our backend developers. We ported 6 polyglot microservices in an afternoon."
AL
Anna L.
Staff Backend Architect
"Being able to run the exact same `earth +test` target on my M3 Mac and in GitHub Actions without touching a line of runner YAML is the best developer experience improvement we made this year."
DK
David K.
DevOps Lead
Free Forever • Mozilla Public License 2.0

Ready for Faster, Repeatable Builds?

Join the community of engineers building the next generation of container-powered build automation. Install EarthBuild in 10 seconds.