Skip to content

Qualflare/qualflare-claude-code

Repository files navigation

qualflare

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.

Quick start

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.

What you can do

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

The coverage nudge

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.

Supported frameworks

If your tests run with any of these, Qualflare has you covered.

Unitjest · mocha · golang · python (pytest) · rspec · phpunit · junit · testng

BDDcucumber · karate

End-to-endplaywright · cypress · selenium · testcafe · maestro · xctest · espresso

APInewman · k6

Securityzap · trivy · snyk · sonarqube

Vitest results upload via the jest slug. Multi-framework monorepos work too — /qf-init detects each workspace and tracks them separately.

Requirements

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-init tells you which identifiers your project needs and prints the exact qf login commands to run.

Authentication

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.

Installing the Qualflare CLI

macOS / Linux — Homebrew:

brew install qualflare/tap/qf

All 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:latest

Verify the install with qf version. /qf-run will not continue until qf is on your PATH.

When something's off

Run /qf-doctor first. It checks the things that break most often:

  • Is qf installed and available on your PATH?
  • Is each package's identifier configured locally (qf projects lists them)?
  • Is your test-state.md still 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.

How it stores state

/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.

Updating

Pull the latest version at any time:

/plugin update qualflare

Contributing

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.

License

Licensed under the Apache License 2.0.


Qualflare · Docs · CLI releases · Issues · Changelog

Releases

No releases published

Packages

 
 
 

Contributors