Remote runs that never repeat
A remote action that already ran replays its outputs and log, without a worker.

Remote execution costs worker time. When the same action already ran, the server has its result.
vx asks the action cache first; a hit replays the outputs and stdout, and no worker is booked.
// what it prints
execute @demo/web#build
action cache hit → outputs and stdout replayed
worker not usedMore in Plugins

A pipeline with seams
Fourteen seams, and core applies no plugin by default.

Remote cache and execution
Distributed builds over Bazel’s open Remote Execution API.

OpenTelemetry
Every run as OTLP traces, metrics and logs, with no SDK.

vx mcp for coding agents
Give your agent the build’s memory over MCP.

Longest chain first
The slow task stops starting last.

This machine is always the floor
Running and caching locally are built in, so a declined plugin hands work back, never drops it.

Ship one app, not the monorepo
vx prune copies a project and its dependencies with a pruned lockfile, for a Docker build.

What the scheduler learned
vx history shows each task’s typical time, peak memory and CPU from past runs.

Code around the run
A plugin can start something before the run and clean up after, within a deadline.

Hosted remote servers, Bazel-style
TLS, mutual TLS and auth headers connect vx to servers such as BuildBuddy.

A wedged server is just a miss
Downloads are verified and calls have deadlines, so a bad server never hangs a run.

node_modules for stateless workers
Run the install as a remote action, so every worker has node_modules without a shared disk.

Watch CI while it runs
Spans and metrics stream as tasks end, so a dashboard follows the run live.

Tasks packed by memory
The history plugin admits tasks by the peak memory they used before, so a run never runs out.