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.
$ 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
Give every action explicit inputs, outputs, and environment. Results are content-addressed, so a build only ever runs when something actually changed.
Learn more →Restore outputs instantly from a local or shared cache across developers, coding agents, CI, and machines. Same inputs, same result, no rebuild.
Learn more →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.