AI-powered test coverage, inside Claude Code.
When Claude writes code in your project, it should also write the tests. Qualflare makes that the default: generate coverage for what you changed, run your test suite, fix what breaks, and report it all to your Qualflare dashboard — without switching context.
One-time setup, then just code.
Before you begin, install the Qualflare CLI — you'll authenticate per project from your shell with qf login once setup tells you which identifiers to use.
Add the plugin to Claude Code:
/plugin marketplace add Qualflare/qualflare-claude-code
Install it in your current project:
/plugin install qualflare@qualflare
Run setup once in your project root:
/qf-init
That's it. /qf-init detects your tech stack, reads your package layout, derives a CLI identifier per package, and writes a state file so every future session starts with full context about your tests. At the end, it tells you exactly which qf login <identifier> <token> commands to run before your first /qf-run.
Every command runs from the Claude Code chat — no terminal, no config files.
| Command | When to use it |
|---|---|
/qf-init |
Once, to set up a new project — detects frameworks, counts test files, and optionally enables the coverage nudge |
/qf-cover [path or glob] |
After writing code — generates tests for the source files you just changed |
/qf-run [slug or results-file] |
When you're ready to verify — runs your test suite and uploads results to Qualflare |
/qf-fix [slug or path] |
When tests are red — analyzes the last run and patches your code until they pass |
/qf-doctor |
When something feels wrong — health check covering CLI, auth, config, slug drift, and file-count drift |
/qf-update [slug or path] |
When you've added test files — refreshes counts without re-running full setup |
/qf-state |
When you want to see what Qualflare knows — shows frameworks, file counts, and hook status |
/qf-hook on|off |
Any time — toggle the end-of-session coverage nudge on or off |
When enabled during /qf-init, a quiet nudge appears at the end of any session where you edited source files without touching the tests:
🔍 Qualflare: 3 source file(s) changed without test updates. Run /qf-cover to add coverage.
It only fires when something worth covering was changed — trivial edits, config files, and type definitions don't count. Toggle it any time with /qf-hook off.
If your tests run with any of these, Qualflare has you covered.
Unit — jest · mocha · golang · python (pytest) · rspec · phpunit · junit · testng
BDD — cucumber · karate
End-to-end — playwright · cypress · selenium · testcafe · maestro · xctest · espresso
API — newman · k6
Security — zap · trivy · snyk · sonarqube
Vitest results upload via the jest slug. Multi-framework monorepos work too — /qf-init detects each workspace and tracks them separately.
Before running /qf-init, make sure you have:
- Claude Code — the CLI or desktop app
- Qualflare CLI (
qf) — installed and on your PATH (see below) - A Qualflare token per identifier —
/qf-inittells you which identifiers your project needs and prints the exactqf logincommands to run.
Qualflare uses per-project tokens stored locally. After /qf-init prints your identifiers, register each one:
qf login <identifier> <token>In a monorepo, each package gets its own identifier — run qf login once per package. Tokens live in ~/.config/qualflare/config.toml after login. Get tokens at https://app.qualflare.com/project/<identifier>/settings/access-tokens.
QF_API_KEY is no longer read by the CLI — remove it from your environment if you have it set.
macOS / Linux — Homebrew:
brew install qualflare/tap/qfAll platforms — binary download:
Download the pre-built binary for your OS from github.com/Qualflare/qualflare-cli/releases, extract it, and place qf somewhere on your PATH.
Docker:
docker pull ghcr.io/qualflare/qf:latestVerify the install with qf version. /qf-run will not continue until qf is on your PATH.
Run /qf-doctor first. It checks the things that break most often:
- Is
qfinstalled and available on your PATH? - Is each package's identifier configured locally (
qf projectslists them)? - Is your
test-state.mdstill current, or has the project drifted since setup? - Do the framework slugs in the plugin match the installed CLI?
Most issues are a missing CLI or a missing qf login. Fix what the doctor flags and re-run.
/qf-init creates a .qualflare/ directory in your project root:
.qualflare/
├── test-state.md # framework + file-count context — commit this
├── config.json # hook preference — commit this
└── results/ # raw test-runner output uploaded by qf collect — gitignore this
Add .qualflare/results/ to your .gitignore. The other two files are meant to be committed — they give every session the context it needs without running setup again.
Pull the latest version at any time:
/plugin update qualflare
Bug reports and pull requests are welcome — open an issue at github.com/Qualflare/qualflare-claude-code/issues.
For development notes — how to test the hook, how to add a new framework, how to cut a release — see CLAUDE.md.
Licensed under the Apache License 2.0.
Qualflare · Docs · CLI releases · Issues · Changelog