DEV Community

Cover image for See the plan before you run it
VX
VX

Posted on Edited on Originally published at vznjs.github.io

See the plan before you run it

--dry shows what the next run will do, without running anything. One
file changed in packages/b:

$ vx run build test --all --dry
would run:
  ✓  packages/a#build  cache hit (local)         4ab2bc0d
  ▶  packages/b#build  cache miss — would exec   e8c0e9d5  ~19ms
  ✓  packages/c#build  cache hit (local)         5e8ed98e
  ✓  packages/d#build  cache hit (local)         9f1cef08
  ✓  packages/a#test   cache hit (local)         9ea4543b
  ▶  packages/b#test   cache miss — would exec   537a0bf3  ~19ms
  ✓  packages/c#test   cache hit (local)         6c5e8b3a
  ✓  packages/d#test   cache hit (local)         5b407891

8 task(s) planned, 6 cache hits (6 local), 2 would run.
predicted: ~19ms wall · ~38ms total execution

$ vx run build test --all
 ⏺︎    10ms success miss     packages/b#test
 ⏺︎    17ms success miss     packages/b#build
Enter fullscreen mode Exit fullscreen mode

The plan said two tasks would run. The run ran those two.

Linux x64 · vx 69617eb · 2026-10-23

The plan uses the real keys

diagram

A hit in the plan is a hit in the run. The time next to a task is its
last run. The prediction lays those times on the graph, so parallel
tasks overlap.

JSON for scripts and agents

{"id":"packages/a#build","project":"packages/a","task":"build","hash":"4ab2bc0d55dd78a0","cacheStatus":"hit-local","deps":[],"p50Ms":22}
Enter fullscreen mode Exit fullscreen mode

--dry=json gives one object per task. An agent can check if a run is
worth starting, or show a reviewer what a change rebuilds:

vx run build --affected --dry=json
Enter fullscreen mode Exit fullscreen mode

Draw the graph

Each task lists its deps, so Graphviz is one jq away:

vx run build --all --dry=json \
  | jq -r '"digraph G {", (.tasks[] | .id as $t | .deps[] | "  \"\(.)\" -> \"\($t)\""), "}"' > graph.dot
dot -Tsvg graph.dot > graph.svg
Enter fullscreen mode Exit fullscreen mode

Reference: the CLI. More at
vznjs.github.io/vx.


Originally published on the vx blog. vx is open-source (MIT) task orchestration with a build cache: vznjs.github.io/vx · GitHub.

Written with AI assistance.

Top comments (0)