Skip to content
vxvx
GitHubBlueskydev.toRSS

Cache you can trust

A hit replays exactly what a run would have made.

A cache is only worth having if a hit is the same as a run. vx keys every task on what it reads, restores exactly what it wrote, and treats anything it cannot vouch for as a miss.

22 features

Each one has a page that shows it working.

And 17 smaller things that add up.

Everything a build depends onEnv vars, tool versions, upstream tasks and root files all go into the key.Outputs that come backName what a task produces, and a hit puts exactly those files back.Changes travel down, and stopA task’s key folds in its dependencies’ input keys, so a change reaches exactly what depends on it.Every key known before the runvx refuses an input glob another task’s outputs could match, so keys never wait on a build.The cache, your wayTurn it off, refresh it, or choose per layer what is read and written.Put the cache where you wantMove the cache to a fast disk or a CI cache folder with one setting.Only trusted runs write the shared cacheMain writes the remote cache; a laptop or a fork only reads it.Keep the cache smallEvict by age or size, oldest use first, by hand or on a schedule.Download only what you needWith remote execution, choose to fetch all outputs, the top-level ones, or none.One cache for every checkoutClones and worktrees of the same repo share their cache entries.Hits that touch nothingWhen the outputs on disk already match, a hit costs a few file stats.Hits replay what you sawA cache hit prints stdout and stderr in the order the task printed them.Restores never wait for buildsCache restores run in their own lane, so hits finish while misses build.Configs read, not re-runA config that is plain data is read back from cache, not evaluated again.Keys that see what the build seesFiles git rewrites on checkout are keyed on the bytes on disk.Uploads never fail the buildRemote cache writes drain at the end of the run and never turn a green build red.Bring your own cache serverPlug any storage in as a remote cache through one small interface.
Turborepo, Nx and other product names are trademarks of their owners. vx is not affiliated with or endorsed by them.