open source · self-hosted · yours
Test management that
does less, on purpose.
Open-source, self-hosted test management, focused on what QA teams do every day: write the scenarios, run them, and see where you stand. Not much else, and that’s the point.
$ docker compose up → localhost:3000
I kept paying for tools we barely used.
For years, every team I joined bought the same kind of thing: a big test-management suite, enterprise pricing, a long onboarding. And every time, we settled into a small slice of it. Write cases, run them, log defects.
The rest mostly sat there. The open-source options didn’t fit either — capable, but heavy and awkward to live in. So I built something smaller, around the slice we actually used.
a big license · a long onboarding · a fraction actually used
Built different. On purpose.
Most QA suites are built for enterprises with quarterly releases. Velo is built for teams that ship weekly, and runs on your own machine.
The essentials, done properly.
// capture
Write cases fast
A keyboard-first editor. Steps or Given-When-Then, set per project. Tab, type, done. No mouse required.
// run
Run them live
Execution updates over SSE, not polling. Pass, fail, or block with one key. Attach a screenshot, file the Linear defect, and the evidence rides along.
// see
Know where you stand
Pass rates and trends the moment someone records a verdict. No status meeting to find out.
// connect
Bring your own AI
Paste a Linear issue; your key turns the acceptance criteria into cases. Claude, OpenAI, or a local model. JUnit and Allure ingest from any CI.
// self-host
Runs on your machine.
Your data stays yours.
- 01One Docker command. Prebuilt images, amd64 or arm64 — runs on a NAS too.
- 02Evidence storage built in. Screenshots and CI payloads land in a bundled store — no cloud bucket to wire up.
- 03Your own AI keys — Claude, OpenAI, or a model on your LAN.
- 04Analytics, error tracking, email: off until you switch them on. Nothing phones home.
- 05Free. MIT-licensed. Fork it if you want.
# clone, set three secrets, up git clone github.com/code-by-gunnar/velo-test-management cp .env.example .env docker compose \ -f docker-compose.yml \ -f docker-compose.app.yml up -d ✓ web → localhost:3000 ✓ api → localhost:3001
See if it fits.
Clone it, run it, and find out in about five minutes.