Skip to content
vxvx
GitHubBlueskydev.toRSS

// the vx blog

DX

Posts tagged dx.

RSS

Brackets in a glob mean brackets

In a vx glob, [jt] matches one character, as in Turbo, Nx and your shell. A Next.js route folder like app/[id] needs escaping.

One name per setting

Every vx setting has one name. run.retries is VX_RUN_RETRIES and --retries. Learn one, know all three.

The reference at your version

vx docs <query> searches the docs for the vx version you run, so the answer matches your binary.

From npm scripts or Vite Task

One command turns package.json scripts or Vite Task config into vx tasks. npm pre and post hooks keep their order.

The basics, done carefully

vx run picks the project you are in, never waits on a picker in a pipe, and gives each task its own fold on GitHub Actions.

An upgrade you can trust

vx upgrade checks npm’s registry signature and the SHA-512 before it replaces anything, upgrades an npm, pnpm, bun or yarn install through that package manager, and swaps back if the new binary does not start.

Extend vx in an afternoon

One command scaffolds a working plugin and its test. Bring your own remote cache through one small interface, hook setup and teardown around the run, or drive vx from your own scripts with run() and planRun().

See inside a run

Why did this task run? What did the run do? Where did the time go? One command answers each, in text or JSON.

One failure, and exactly what it takes down

A broken build skips only what depends on it, and each skip names the failure. One flag picks fail-fast or run-everything.

When a task misbehaves

A task hangs, gets killed, prompts for input, or calls vx run on itself. vx tells you what happened in one line.

Say exactly which tasks to run

dependsOn says what a task needs first, --filter says which projects to run. A name that matches nothing stops the run before it starts.

Output that fits the run

One task shows all its output. Many tasks show one line each for what ran. CI shows everything. You can always pick.

Built for the agent at the keyboard

vx gives coding agents JSON with a schema for every answer, keeps a failure's log and files, and stores run history in a SQLite file.

One command to know your workspace

vx info answers the first questions of every bug report on one screen: versions, workers, memory, cache size, flaky tasks, sandbox.

A refusal an agent can read

When vx refuses, it prints a stable code and a link to the fix. Scripts and agents check the code, not the wording.

The small things

Mistype a flag or a task and vx prints the fix. Forget the task and you get a picker. Tab completes the rest.

A run you can read

One line per task while it runs, the full log only for what failed, and one summary block at the end. Nothing prints below it.

The last run, on request

The terminal scrolled away? vx last --failed shows the run that broke and the command that runs only what failed.

See what a task really is

vx show prints a task the way the run sees it, after presets and plugins changed it. No guessing what your TypeScript config turned into.

Run only what a change reaches

vx run test --affected runs what your branch changed and everything downstream of it, and says why each task was picked.

See the plan before you run it

vx run --dry shows which tasks would come from the cache and which would run, with keys and expected times. Nothing runs.

vx why names the change that made a task run again

You changed one file and got twelve rebuilds. `vx why` names the part of the cache key that changed, and follows it to the root cause.

Watch: a content gate, not an event storm

vx watch lets the cache key decide what runs. A README edit runs nothing, a source edit runs exactly what it reaches.

Flaky is a claim only declared inputs can back

vx calls a task flaky only when the same inputs both passed and failed. Your local run history is enough, no service needed.

Turborepo, Nx and other product names are trademarks of their owners. vx is not affiliated with or endorsed by them.