Your .void Files, Headless
Design requests in the Voiden desktop app. Run them anywhere: CI, cron, a script, with the same files, no GUI required.
$ voiden-runner run auth.void
✓ POST /api/login 200 · 214ms
exit code 0npm install -g @voiden/runner
What It Does
Everything you built in the desktop app, executable outside of it.
Run Anywhere
Terminal, Docker, CI runners, cron jobs: anywhere Node.js 18+ is available. No GUI, no browser, no desktop app required.
Machine-Readable Output
Human-readable by default. Switch to --json for a versioned, stable schema, export --csv for spreadsheets, or --mail an HTML report.
Request Chaining
Persistent runtime variables between requests, just like the desktop app. Capture a value from one response, use it in the next via {{process.KEY}}.
Plugin-Powered
Core plugins run headlessly by default. Community plugins that ship a runner bundle work the exact same way: install with one command.
Ship It to CI
Deterministic, versioned exit codes mean your pipeline can tell “the API broke” from “the pipeline is misconfigured” without parsing terminal output.
0All requests passed1One or more requests failed: your API broke2The run couldn't execute: your pipeline is misconfigured
- name: Run API tests
run: |
voiden-runner run ./api-tests \
--fail-on-error \
--env .env.ci \
--csv report.csvCore and Community Plugins, Both Headless
Core plugins run headlessly by default. Any community plugin that ships a runner bundle installs and runs the exact same way: voiden-runner plugin install <id>, no special-casing.
Automate Your API Tests
Install the runner, point it at a .void file, and wire it into whatever runs your pipeline.