Once
Get started
Open source MIT licensed

Build once.
Reuse everywhere.

Once gives every action explicit inputs, outputs, and environment, so results are content-addressed, cached, and reusable across developers, coding agents, continuous integration, and machines. Build it once, and never build it again.

Get started Read the docs Join Discord
$ once build apps/ios/App
target     apple_application
cache key  9f21c4…
result     hit
duration   0.8s
$ once build apps/android/App
target     android_binary
cache key  1c8ea7…
result     miss
duration   41s
$ once build crates/engine
target     rust_binary
cache key  b3f9d0…
result     hit
duration   0.1s
$ once build zig/app
target     zig_binary
cache key  77aa02…
result     hit
duration   0.3s
Build once

Give every action explicit inputs, outputs, and environment. Results are content-addressed, so a build only ever runs when something actually changed.

Learn more →
Reuse everywhere

Restore outputs instantly from a local or shared cache across developers, coding agents, CI, and machines. Same inputs, same result, no rebuild.

Learn more →
Run anywhere

Send only the declared inputs to a fresh local or hosted sandbox, run the action, and retrieve just the declared outputs.

Learn more →

Works with your stack

Natively supported languages and ecosystems

Cache and reuse builds and tests across the tools your teams already ship with.

Swift Apple Kotlin Android Rust Go C / C++ Elixir Ruby JavaScript Zig React Native