kiln
sign in get started

v2.14 — remote cache for everyone

Builds that finish before your coffee does.

kiln is a build system for monorepos. It runs only what changed, shares one cache between laptops and CI, and splits the rest across runners.

curl -fsSL https://kiln.example/install | sh

kiln run build --affected

▸ graph 42 packages · 3 affected · 39 cached 0.21s

✓ @acme/tokens build remote hit 0.04s

✓ @acme/ui build remote hit 0.06s

✓ @acme/api test local hit 0.03s

✓ @acme/docs build built 4.21s

✓ @acme/edge bundle built 2.07s

● @acme/web build █████████████░░░░ 74% 11.8s

done in 18.4s · 39/42 from cache · saved 11m 02s

12,400teams shipping with kiln
3.1Bcache hits per month
82%median CI time saved
99.98%remote cache uptime

docs

Four commands. The whole monorepo.

every command ships its own manual: man kiln-cache

kiln-affected(1) kiln manual

name
kiln affected — build only what changed
synopsis
kiln run <task> --affected [--base main]
description
Reads the git diff and the package graph, then runs the task only for changed packages and everything that depends on them.

kiln-cache(1) kiln manual

name
kiln cache — content-addressed remote cache
synopsis
kiln cache [status | push | prune --older 30d]
description
Every task output is stored under the hash of its inputs, so your laptop, CI and teammates read from the same cache.

kiln-watch(1) kiln manual

name
kiln watch — incremental rebuilds on save
synopsis
kiln watch web --open
description
Keeps the graph in memory and rebuilds only the dirty nodes — usually in under 200 ms.

kiln-ci(1) kiln manual

name
kiln ci — automatic sharding across runners
synopsis
kiln ci --affected --shards auto
description
Balances tasks by their real historical run time so every runner finishes at the same moment.

benchmark

6 minutes to 18 seconds.

Full build of a 120-package monorepo on one 8-core runner. Lower is better.

shell scripts6m12s
generic CI cache4m50s
kiln, cold cache1m41s
kiln, warm cache0m18s
# one file at the repo root
[project]
name         = "acme"
remote_cache = true

[tasks.build]
deps    = ["^build"]
outputs = ["dist/**"]

[tasks.test]
deps    = ["build"]
inputs  = ["src/**", "test/**"]
timeout = 600
  • No plugins: tasks are the scripts you already have.
  • "^build" means build dependencies first.
  • Anything outside inputs never busts the cache.

pricing

Pay per person who ships, not per minute.

hobby

$0 forever

For side projects and open source.

  • local cache + affected
  • 5 GB remote cache
  • 1 concurrent runner
  • single sign-on
  • audit log
start

team recommended

$24 per user / mo

For teams that merge every day.

  • 200 GB remote cache
  • 20 concurrent runners
  • automatic CI sharding
  • failure alerts in team chat
  • single sign-on
start 14-day trial

enterprise

custom

For orgs with security and compliance needs.

  • everything in team
  • single sign-on + SCIM
  • audit log
  • self-hosted runners
  • 99.99% uptime SLA
talk to sales

changelog

A release every two weeks.

8 releases shown

  1. v2.14.0Oct 2, 2026feat

    Remote cache is generally available on every plan, including hobby.

  2. v2.13.2Sep 24, 2026fix

    --affected no longer misses packages that were renamed.

  3. v2.13.1Sep 18, 2026perf

    Graph resolution is 3.2× faster on a cold start.

  4. v2.13.0Sep 9, 2026feat

    kiln watch opens a live dependency view in the terminal.

  5. v2.12.4Aug 27, 2026fix

    Windows output paths that contain spaces are cached correctly.

  6. v2.12.3Aug 20, 2026perf

    Cache uploads stream in parallel — up to 8× faster.

  7. v2.12.0Aug 4, 2026feat

    Shards are balanced by historical task time.

  8. v2.11.6Jul 22, 2026fix

    Variables marked secret are masked in every log.

faq

Ask before you install.

Or ask in the community forum — answers usually land within an hour.

Do I have to restructure my repo?

No. kiln reads your existing npm, pnpm or yarn workspaces and only needs one kiln.toml.

Where is my code stored?

Nowhere. Only task outputs are stored, encrypted and keyed by their input hash.

Does it work offline?

Yes — the local cache always works and syncs with the remote cache when you are back.

Can I bring my own runners?

On enterprise, with one command: kiln runner register.

release notes

One short email per release.

No marketing. Unsubscribe whenever you like.