kane-cli is testing, the step each test is on, why a test failed, and how much of your requirements is proven. When Claude changes code that nothing has tested yet, it says so and offers a test.
kane-qe only watches and offers. It never starts a test by itself: Claude runs kane-cli, because you asked or because you pressed a button that asks Claude.
kane-qe works alongside the Kane CLI skill. The skill teaches Claude how to run
kane-cli; the plugin shows you what those runs are doing. Use both.Before You Start
You need:- Claude Code with plugins that use mods (function-hook plugins), in the terminal or the desktop app.
- Kane CLI, installed and logged in. See Installation and Authentication.
- A project folder you open Claude Code in. kane-qe shows
kane-cliruns whose folder is inside that project.
kane-cli runs use KaneAI credits. kane-qe itself spends none: the only kane-cli command it runs without being asked is the read-only coverage check.
Install
Inside Claude Code:.claude/settings.json. Everyone who opens the project and trusts it is offered the plugin:
Your First Five Minutes
- Open Claude Code in your project. The band shows
idleand, on its third row, assurance coverage (ornot set up). - Ask Claude to test something, for example: “Use kane-cli to check that a guest can add a product to the cart.”
- Watch the band: the test’s name, its time, and the step it is on. The mascot’s eyes move while it runs.
- In the chat, Claude’s
kane-clicommand becomes a one-line card with a spinner, then a card with the result. - Press View steps on the card, or type
/kane, to see every step.
The Band
Three rows above the prompt, always there, beside the kane mascot. The first row always ends with [ Open ], which opens the pane. The third row is always assurance coverage.
A test started anywhere in the project shows up within two seconds: by Claude, in another terminal, or by a script. Runs from other folders do not appear.
Every row fits the width of your terminal: names are shortened first, then items drop from the right.
The Card in the Chat
Everykane-cli test that Claude runs (kane-cli run, kane-cli testmd run, kane-cli testrun run) is drawn in the conversation as a card, in place of the plain shell row.
While it runs, the card is one line:
- The border is green for a pass and red for a failure.
- A failed test shows the step it failed on and KaneAI’s own reason, from the run’s investigation. kane-qe never guesses it.
- A suite shows one cell per test, its counts, and up to three failed tests. A suite where every test passed says
✓ all 3 passed. - View steps (or View tests for a suite) opens the pane on that run. View evidence opens the run’s evidence in your browser.
- Claude Code folds several shell commands into one line (“ran 3 shell commands”). A folded line that holds one
kane-clitest stays folded, with the card underneath. If it holds two or more tests, it unfolds so each test gets its own card. - Only tests that Claude runs in this conversation get a card. Other
kane-clicommands, and other shell commands, keep their normal rows. A command that never became a test (for example,kane-cliwas not logged in) keeps its normal row, so the CLI’s own error is readable.
The Pane
Open it with/kane or the band’s [ Open ]. It has three tabs.
Runs. A card per run: failed first, then running, passed, waiting. Press a run’s name for its detail:
- Each step with a tick or a cross and its time.
- The step being worked on, or the one that failed, opens to what the agent thought, the action it took, and each check.
- For a failure: why, kind (KaneAI’s category, severity and how sure it is) and where.
- Open evidence.
Testing What Claude Changed
When Claude edits code and nokane-cli test has run since, kane-qe notices. Edits to docs (.md, .txt and the like), hidden tool folders (.claude, .testmuai, .vscode) and git-ignored files do not count.
What happens at the end of Claude’s turn depends on the After Claude changes code setting:
Test this change opens a card in the pane with:
- The files that changed.
- Your saved tests (in
.testmuai/tests/) that mention the same feature, each with its last result and a Run it button. The closest matches come first; among equal matches, the test that failed last time leads. See Test.md. - If no saved test matches: Draft a new objective. Claude reads the change and writes a one-line test objective. Run the objective hands it to Claude to run.
kane-cli test that started after the edit finishes.
Assurance Coverage
If your project has a Kane CLI requirement store (a.context folder), the band’s third row shows coverage, such as 47% proven · 4 use cases, or 82% designed · nothing run yet before anything has run. kane-qe reads it with kane-cli cover gaps --json when the session starts and after each run. That command is read-only and spends no credits. See Assurance and Coverage.
Without a requirement store, the row says not set up with [ Set up now ]. The Assurance tab then offers Set it up with Claude, which asks Claude to ingest your requirement (a PRD file, a Jira, Confluence or Linear link, or a web page), extract the use cases and design the tests.
Evidence
Kane CLI seals each run’s evidence into a pack when it exits. View evidence (on a card) and Open evidence (in the pane) start Kane CLI’s own evidence viewer on your machine and open it in your browser, in one click. A second press reuses the viewer that is already running. See Viewing Evidence. If no viewer can be started, Claude is asked to open the evidence instead. Where the chat cannot take clicks (see Limits), the card shows the evidence file’s path instead of buttons.Commands and Settings
Settings are under
/config → kane-qe:
Colours follow Claude Code’s theme: the design’s palette on dark themes, a darker one on light themes. A theme change shows within two seconds.
What It Runs and Sends
kane-qe makes no network requests of its own. It reads files on your machine, starts a few local programs, and hands text to Claude in your conversation.- Reads: Kane CLI’s live-run files under
~/.testmuai/kaneai/sessions/, your project’s.testmuai/folder (saved tests, variables, evidence), and Claude Code’s theme setting. It keeps the last 30 results per project in its own store on your machine. - Starts:
kill -0andpsto check a run is alive and name it.tailto read new lines of a run’s events.git check-ignoreandgit difffor changes.kane-cli cover gaps --jsonfor coverage.kane-cli evidence serveand your browser opener for evidence.
- Hands to Claude:
- The changed files and their diff, when you press Draft a new objective.
- The prompt behind each button you press (Run it, Close these gaps with Claude, Set it up with Claude), shown in the conversation as your message.
- In
automode, a request to test the change.
Limits
- Buttons need a surface that takes clicks: Claude Code’s fullscreen terminal or the desktop app. Elsewhere, cards show the evidence path as text instead of buttons, and the band and pane still update.
automode needs the end-of-turn hook. Where an organization manages Claude Code centrally, that hook does not run for plugins people install themselves, so Claude is never asked to test the change. Useofferthere.- This project only. Runs started in other folders are not shown.
- What Kane CLI does not report is left out: there are no step totals, no credits while a run is going, and no browser name.
- A newer Kane CLI that changes its event format shows only each run’s name and time until kane-qe is updated, rather than showing something wrong. See Agent Output.
Troubleshooting
To report a problem, open an issue at github.com/LambdaTest/kane-claude-plugin.
Update and Uninstall
Update:/reload-plugins in any session that is already open.
Uninstall:
Next Steps
- Skills for AI Agents: teach Claude Code, Codex CLI and Gemini CLI to run Kane CLI.
- Agent Mode: the
--agentoutput the plugin reads. - Evidence Packs: what every run captures and how to view it.
- Assurance: requirement-linked test suites and the coverage on the band’s third row.
- Source code and issues: github.com/LambdaTest/kane-claude-plugin