Releases: LambdaTest/kane-cli
Release list
kane-cli 0.6.3
Highlights
The biggest change in this release is a fully redesigned interactive session panel — the conversational interface you see while a context extraction or test design is in progress. The panel now has cleaner layout rules, colored risk indicators, a free-text editor, and keyboard navigation that feels intentional. OAuth credential exchange also gets hardened, fixing a class of silent auth failures.
[0.6.3] - 2026-07-17
A rebuilt interactive session panel
- Keyboard-first navigation — arrow keys, Enter, and digit shortcuts move through the panel; typing immediately opens a free-text editor row seeded with context so you never start from a blank prompt.
- Cleaner visual hierarchy — work output indents by two columns, receipts are machine-only, and human-facing commit lines are kept to a single line. No more visual noise from internal IDs or CIDs leaking into readable output.
- Colored risk and recommended-row highlighting — the question panel announces its header, marks risk level in color, and highlights the recommended answer so the right choice is obvious at a glance.
- Phase-aware labels throughout — loader labels, exit copy, and decision labels all reflect the current phase in plain language; file paths use
~shorthand instead of absolute paths. - Narrative appears after the commit — the summary message renders once a decision is finalized, not before, so the flow reads in the right order.
Auth that doesn't silently fail
- OAuth now doesn't expire mid session — after an OAuth login, kane-cli doesn't let the subsequent runs hit token-expiry mid-session.
- Malformed payloads and slow exchanges are rejected cleanly — the credential exchange now has a timeout and rejects malformed responses, with a visible warning if the exchange falls back to a secondary path.
Reliability fixes
- A bad cite no longer crashes a run — a list-shaped add-operation cite is now treated as a recoverable error rather than a hard crash.
- No phantom blank lines in output — trailing-newline prose no longer produces an extra empty row in the scrollback.
- Selector recorded for wrapped actions — the resolved selector for
until-wrapped actions is now saved correctly, so logs reflect what was actually matched.
Bug Fixes
Install
# npm
npm install -g @testmuai/kane-cli@0.6.3
# Homebrew
brew install lambdatest/kane/kane-cli
# Shell installer (latest release)
curl -fsSL https://raw.githubusercontent.com/LambdaTest/kane-cli/main/install.sh | bashCompare: 0.6.2...0.6.3
kane-cli 0.6.2
Highlights
Several correctness fixes land for authentication flows, variable handling, and condition evaluation — things that were silently misbehaving now work as intended or tell you clearly when something is wrong.
[0.6.2] - 2026-07-16
Auth that's honest about what it's doing
- OAuth tokens are now exchanged for long-lived credentials automatically — when running tests, OAuth credentials are resolved into non-expiring basic credentials behind the scenes, so sessions don't break mid-run.
- Fallback during credential exchange now warns you — if the auth exchange falls back to a secondary path, you'll see a clear warning instead of it happening silently.
Conditions and variables that compute correctly
- Condition blocks now evaluate logical and boolean expressions — the condition leg previously missed logical/boolean expressions; those cases are now handled correctly.
SETvariable values are no longer pre-seeded — variables declared withSETnow get their value from the store instruction at runtime, rather than being initialized prematurely, which could cause stale or incorrect values.- Empty expected values no longer cause false failures for non-
containschecks — the fail-loud guard for an empty expected value is now scoped only tocontainsassertions, so other check types aren't incorrectly flagged. - Visual checkpoint conditions derive from the right base — the
textual_visualleg now correctly inherits from the checkpoint condition type.
Cleaner output
- Unrelated references no longer appear in terminal output — user-facing messages are cleaned up; unrelated identifiers and phrasing that passed into output have been removed or reworded.
Install
# npm
npm install -g @testmuai/kane-cli@0.6.2
# Homebrew
brew install lambdatest/kane/kane-cli
# Shell installer (latest release)
curl -fsSL https://raw.githubusercontent.com/LambdaTest/kane-cli/main/install.sh | bashCompare: 0.6.1...0.6.2
kane-cli 0.6.1
Highlight
A maintenance release. If you installed 0.6.0 and found that kane-cli context, kane-cli design, or kane-cli maintain — the headline of that release — failed right after install, this is the fix: 0.6.0's published packages were missing a required component, and 0.6.1 ships it correctly on every platform.
[0.6.1] - 2026-07-16
Fixed
context,design, andmaintainnow work on a fresh install — 0.6.0's published packages shipped without a component these commands require, so they failed immediately afternpm install/brew install. 0.6.1 bundles it correctly across all supported platforms.- A missing platform binary no longer fails the install itself — the post-install step now degrades gracefully instead of aborting
npm installwhen a binary is absent.
For the full feature set 0.6.1 brings to life, see the 0.6.0 release notes.
Install
# npm
npm install -g @testmuai/kane-cli@0.6.1
# Homebrew
brew install lambdatest/kane/kane-cli
# Shell installer (latest release)
curl -fsSL https://raw.githubusercontent.com/LambdaTest/kane-cli/main/install.sh | bashCompare: 0.6.0...0.6.1
kane-cli 0.6.0
Design, verify, and maintain — not just run
kane-cli began as a way to author and replay browser tests. 0.6.0 takes on the entire test lifecycle. Describe what your product must do, and kane-cli designs the tests that prove it — each one linked to the requirement it verifies. Run them and see exactly what's covered and what isn't. And as your product changes, kane-cli maintain reconciles, evolves, and learns, so your suite stays honest instead of quietly drifting out of date.
Alongside the new workflow, this release brings a major upgrade to assertions and conditions, and a faster, clearer interactive shell.
[0.6.0] - 2026-07-15
From requirements to a designed suite
Point kane-cli at what your product must do, and it designs a suite that proves it — every test tied to the criteria it verifies.
- Each test records the acceptance criteria it covers — the link between a test and its requirements is captured at authoring time and stays permanent and auditable.
- Results are reported per criterion, not just per test — a test that satisfies 3 of 5 tagged criteria shows exactly that, instead of a blanket pass.
- You're warned when a test claims more than it checks — tagged criteria that no automated check covers are surfaced up front.
- Every test file links cleanly to its design entry, so coverage lookups are exact.
See exactly what's covered
Coverage stops being a guess — every run reports what it reached and what it missed.
- Coverage reflects the current run — sealed evidence and reports cover only what this run touched; project-wide coverage stays separate and unaffected.
kane-cli covershows coverage and gaps side by side, each gap anchored to its use-case so nothing is quietly dropped.- Evidence is self-contained — referenced sources travel inside the pack with a content fingerprint, verifiable offline.
usecases.yamlis a coverage snapshot you can diff — requirements, verdicts, run history, risk, and gaps in one file.
Keep the suite current
Products change; tests shouldn't rot. The kane-cli maintain family keeps them aligned.
- Reconcile and evolve your suite as your product changes — kane-cli surfaces what's drifted and helps bring tests back in step with new behavior, with updates reviewed before they're applied.
kane-cli maintain learn— a read-only view of the signals your maintenance decisions leave behind, which inform future runs.
Author richer checks
Assertions and conditions gained real depth this release.
- DOM is the default assertion mode, with final validation now a configurable setting.
- Boolean and arithmetic assertions — combine checks with boolean logic and assert on computed values like totals and quantities.
- Containment checks — a "shows X" assertion verifies X is present, rather than requiring an exact match.
- Replay-safe conditional steps — conditions re-run deterministically, so conditional flows behave the same on every replay.
- Variables inside a condition now export a test that genuinely asserts, instead of one that could never fail.
Solid underneath
- Changes are visible immediately — later steps work against the current state, not a stale snapshot.
- A hung run is diagnosable —
kill -USR1 <pid>writes a full stack trace to the session log, captured live rather than only on clean exit. - A test with no starting URL fails fast instead of hanging for input.
- Plus fixes: per-criterion status display, contained failures during generation and clean identifier truncation.
- Windows: Tier 1 agent resolution is fixed — a path-resolution bug that prevented the agent from starting on Windows is resolved.
Install
# npm
npm install -g @testmuai/kane-cli@0.6.0
# Homebrew
brew install lambdatest/kane/kane-cli
# Shell installer (latest release)
curl -fsSL https://raw.githubusercontent.com/LambdaTest/kane-cli/main/install.sh | bashCompare: 0.5.0...0.6.0
kane-cli 0.5.0
Highlights
Bug detection is now built in: failed runs are investigated automatically and get a structured verdict in failure.yaml, and opt-in --bug-detection lets the agent flag suspected product bugs mid-run — a confirmed bug is recorded with result code 740 so pipelines can tell real regressions from test issues. Every run now seals a structured evidence pack — screenshots, network HAR, console logs, and a result summary — viewable in a browser viewer right after the run finishes. And multi-test execution lands with kane-cli testrun run: parallel members on isolated browsers, tag-based selection, and one sealed evidence pack for the whole suite.
[0.5.0] - 2026-07-12
Automatic bug detection on every failure
- Failures are investigated, not just reported — when a run fails, kane-cli automatically investigates whether it hit a product bug or a test issue and records a structured verdict in the pack's
failure.yaml, alongside the page state and pointers into the console/network logs. - Result code 740 means a confirmed product bug — a confirmed bug is recorded as result code
740in the run's result records and final event, so CI pipelines can distinguish genuine regressions from flaky tests. - Proactive detection is configurable —
--bug-detection off|stop|continueonrun,testmd run, andtestrun run(defaultoff):stophalts the run on a confirmed bug,continuerecords it and keeps going. Persist it withconfig set-bug-detectionor the TUI settings panel. - Investigation never stalls a run — investigations run asynchronously, so other members in a multi-test run are never blocked waiting for a verdict.
Evidence packs: structured proof for every run
- Every run now produces an evidence pack — screenshots, a HAR network log, console output, and a
result.yamlsummary are bundled and sealed into a single zip after each run. Saved runs land in.testmuai/evidence/in your project. - Visual steps get an annotated screenshot — each visual action produces an
annotated.pngwith a crosshair and bounding box so you can see exactly what was targeted. - Console and network traffic are captured per step — each run's network log is saved as a real HAR file (readable in any HAR viewer) and console output as NDJSON, both attributed to the step that produced them.
- Packs publish automatically and can be merged — replayed tests and testrun executions publish their sealed pack to your project's execution history;
kane-cli evidence mergecombines several packs into one.kane-cli testmd sync <path>pushes a test's replay bundle (test + imports + outputs) to the cloud.
Browse your evidence right after a run
- A browser viewer opens after every run — on interactive runs, kane-cli prompts to open the sealed pack in a browser-based viewer; non-interactive runs print a hint line instead.
kane-cli evidence serve— serve any sealed pack to the viewer from a localhost-only server (nothing is uploaded — the viewer reads the pack from your machine); holds until Ctrl-C.kane-cli evidence validate— check a pack's structure and completeness without running a test; exit codes make it easy to gate in CI.
Run multiple tests at once with kane-cli testrun run
kane-cli testrun runexecutes a set of_test.mdfiles as one run — select members by path, tag (tags:frontmatter key, ANY-match), or auto-discovery, with a bounded worker pool (--parallel) and optional fail-fast (--on-failure fail-fast).- Each parallel worker gets an isolated Chrome — a fresh temporary profile per worker, so members never share cookies, logins, or tabs.
--dry-runpreviews what would execute — the exact members, per-member preflight results, and any org/project mismatches, before a single browser opens.- One sealed pack for the whole suite — every member's results, logs, and screenshots land in a single evidence pack; skipped and broken members are recorded with full detail, not silently dropped.
- Ctrl-C is graceful — no new members start, in-flight members finish, the evidence pack still seals, and the run exits 3.
Replay is more accurate and complete
- Step geometry reflects the actual page at replay time — element coordinates and bounding boxes in
step.jsoncome from the live page during the run, not from the original recording. - Pure replay packs carry the original
execution.json— the authored execution tree is preserved exactly; unexecuted actions are recorded as skipped inresult.yaml, and failed steps are kept in the tree. - Variables resolve correctly on cloud runs — cloud-provisioned variable bindings substitute correctly during replay.
- WebSocket and SSE assertions arm capture automatically — exported and replayed tests that assert on WebSocket or SSE traffic enable the right capture without manual configuration.
Result records are richer and more trustworthy
result.yamlnow includes who ran the test — executed-by carries the user name and email from the authenticated identity.- Tags from
_test.mdfrontmatter appear inresult.yaml— tags flow through the full pipeline, including skipped and broken entries. action_idlinks steps to the execution tree — step events andresult.yamlentries share a join key, so external tools can correlate them precisely.- OS version and browser viewport are recorded automatically — the result's environment block includes the host OS version and the actual browser resolution, for replays too.
Also in this release
- npm installs work on Linux ARM64 — the matching platform binary is selected automatically.
Install
# npm
npm install -g @testmuai/kane-cli@0.5.0
# Homebrew
brew install lambdatest/kane/kane-cli
# Shell installer (latest release)
curl -fsSL https://raw.githubusercontent.com/LambdaTest/kane-cli/main/install.sh | bashCompare: 0.4.10...0.5.0
kane-cli 0.4.10
Highlights
Text input handling is more reliable, with proper escaping of special characters in typed content. Visual presence checks are smarter — uncertain results now escalate to a visual scan instead of silently returning false. Debugging validation errors just got easier too, with request bodies now logged on failures.
[0.4.10] - 2026-07-03
Smarter visual checks
- "Element not found" is no longer a silent failure — when a presence check is uncertain, kane-cli now escalates to a visual scan instead of confidently returning false, reducing missed detections.
- Hover actions work on vision coordinates — previously, hovering over a vision-identified coordinate would fail; it now maps correctly to a click-compatible action.
More reliable text input
- Special characters in typed text are handled correctly — literal tokens inside
typeandfillactions are now properly re-escaped, preventing misinterpretation of characters that would otherwise be treated as control sequences.
Clearer error feedback
- Validation errors now show what was sent — on a 422 response, the full request body is logged so you can see exactly what the server rejected without extra debugging steps.
- Status codes pass through accurately — 422 errors are only raised for request-body validation problems; other upstream errors now forward their original status codes instead of being masked.
Install
# npm
npm install -g @testmuai/kane-cli@0.4.10
# Homebrew
brew install lambdatest/kane/kane-cli
# Shell installer (latest release)
curl -fsSL https://raw.githubusercontent.com/LambdaTest/kane-cli/main/install.sh | bashCompare: 0.4.9...0.4.10
kane-cli 0.4.9
Highlights
Real-time SSE streaming is now wired end-to-end — from network capture through replay and the TUI. Navigation reliability improves with faster page transitions.
[0.4.9] - 2026-07-01
Live SSE streaming in the TUI
- Network SSE is now a toggleable mode — a new
network_sseflag (and matching TUI toggle) lets you stream server-sent events through the run pipeline rather than waiting for full responses. - SSE activity is visible in the run view — connection summaries and an analyzer log surface what SSE connections are active, so you can see streaming traffic at a glance without leaving the terminal.
- Replay arms and runs automatically with SSE — when SSE mode is on, replay start and stop are handled for you; no manual setup required.
Faster, more reliable navigation
backandforwardnavigations no longer hang for 30 seconds — navigation completes as soon as the browser commits, not after a full load timeout.
Local assertions
- Assertion evaluations are now local — the evaluations for assertions are now local, previously they were managed at server even though they were deterministic.
Fixes and edge cases
- System-only API nodes no longer error on empty input — a guard prevents sending a blank request to the LLM when there is no user message.
- Multi-line
@branch events are matched correctly — if/else branch events spanning multiple lines are now captured and routed as expected. - SSE response bodies are skipped during network capture —
text/event-streamresponses no longer attempt a full body read, which avoids stalling the capture pipeline.
Install
# npm
npm install -g @testmuai/kane-cli@0.4.9
# Homebrew
brew install lambdatest/kane/kane-cli
# Shell installer (latest release)
curl -fsSL https://raw.githubusercontent.com/LambdaTest/kane-cli/main/install.sh | bashCompare: 0.4.8...0.4.9
kane-cli 0.4.8
Highlights
WebSocket traffic is now a first-class citizen in kane-cli: you can capture and inspect WS frames alongside regular network activity, and the TUI exposes the toggle right in Config > Run. Several authoring-side fixes tighten up how the AI generates test steps — no more invented field keys, cleaner conditional handling in multi-step flows.
[0.4.8] - 2026-06-25
WebSocket capture, now surfaced end-to-end
- Toggle WebSocket capture from the TUI — a new switch in Config > Run lets you turn WS frame capture on or off without editing config files.
- WS frames appear alongside network activity — WebSocket traffic is folded into the devtools network view, so HTTP and WS events show up in one place during both test runs and authoring sessions.
Smarter AI-generated test steps
- No more invented response field names — when extracting values from API responses, kane-cli now insists on named extractions tied to real fields rather than making up key names.
- Conditionals inside multi-step flows wrap correctly — flows that mix conditional logic with multiple actions no longer produce malformed step sequences.
- Driver and block payloads are treated as literal data — previously, the runner could misinterpret structured payloads; they are now passed through as-is.
Version check that actually works
check-versionreliably detects when a newer release is published — the gate was previously missing live published versions; it now correctly compares against the registry.
Install
# npm
npm install -g @testmuai/kane-cli@0.4.8
# Homebrew
brew install lambdatest/kane/kane-cli
# Shell installer (latest release)
curl -fsSL https://raw.githubusercontent.com/LambdaTest/kane-cli/main/install.sh | bashCompare: 0.4.7...0.4.8
kane-cli 0.4.7
Highlights
The headlining change in this release is a live run view that shows what kane-cli is actually doing — step labels appear as the AI reasons, with a typewriter effect and a real-time describe panel. Behind that, a new text-based assertion engine (textual visual) gives the AI a stable, code-driven way to check page content without relying solely on screenshots.
[0.4.7] - 2026-06-22
A live run view that shows what's happening
- Step labels appear as the AI reasons — instead of waiting until a step completes, the label streams in with a typewriter effect and a blinking cursor, so you can follow along in real time.
- A dedicated describe panel in the run view — a bordered box below the activity line shows a plain-English description of what the browser just did, updating live as each step finishes.
- The objective header is now a proper bordered box — replaces the flat grey bar, making it easier to visually separate your goal from the step activity below.
- Long objectives no longer overflow the terminal — the run box wraps long objective text and pins itself to your terminal width. The step timer no longer flickers on updates.
More accurate assertions and text extraction
- A new text-based assertion path checks page content via code, not just screenshots — for assertions, kane-cli can now extract structured DOM content and run a code extractor against it, giving more stable and replay-safe results.
- Boolean checks now steer toward presence vs. state — rather than brittle exact-match comparisons, the AI now uses a dedicated mode that asks whether something is present or in a given state, reducing false failures.
- Assertion intent carries through to code export — the query, expected value, and unit-conversion flag from a heal/assertion step now travel all the way into exported automation code.
Cleaner, more accurate step labels
- Step labels are generated in parallel with execution — the humanizer runs alongside the action node so labels appear faster, without blocking the step.
- Labels are cleaner by default — auto-generated step labels strip autopilot grounding descriptors and redundant "wait" language, and whitespace-only names are normalized at ingestion.
- The initial navigate step now always gets a label and rationale — the first
navigatestep no longer silently skips humanization.
Reliability and display fixes
- Loopback URLs get the right scheme — hosts like
localhostnow correctly gethttp://instead of being flagged as unresolvable. - Screenshots are labeled correctly — images were being sent as
image/pngeven when they were JPEG; the content type is now correct.
Install
# npm
npm install -g @testmuai/kane-cli@0.4.7
# Homebrew
brew install lambdatest/kane/kane-cli
# Shell installer (latest release)
curl -fsSL https://raw.githubusercontent.com/LambdaTest/kane-cli/main/install.sh | bashCompare: 0.4.6...0.4.7
kane-cli 0.4.6
Highlights
This release delivers end-to-end API task execution inside test runs — kane-cli can now call external APIs as steps in a flow, thread the results through to subsequent steps, and capture the full prompt/tool/output trace for every request. Logging and error surfacing for API steps are also substantially more reliable: failed API calls now surface as failures, and no capture data is silently dropped.
[0.4.6] - 2026-06-18
API steps inside test flows
- Call external APIs as first-class test steps — flows can now include
execute_apisteps that dispatch a named API call, store the response, and pass it forward to later steps in the same run. - Child flows inherit API context — when a flow spawns a child, the child has access to the parent's API registry and writes its response back so the parent can read it; this chains correctly across multiple nesting levels.
- API variables resolve by dot-path — output values from an API step can be referenced with dot-path syntax in subsequent conditions and actions, including inside
if_elsebranches that follow an API step.
Capture and observability
- API request captures are no longer silently dropped — every upload attempt (prompt, tools, output, usage) now logs success or error explicitly, so missing data is always visible in the run log.
- Bifurcation decisions are written to disk — phase-segmentation bifurcation logs are persisted to
runs/<n>/bifurcation.login both normal and testing mode, so the branching decision is always inspectable after a run.
Reliability and failure surfacing
- Fixed: child flows ran without their tools — a flow spawned from another flow wasn't receiving its tools (tab switching, the ask-user prompt, file upload, etc.), so nested flows silently couldn't perform actions a top-level flow could. Spawned flows now inherit the parent's full tool set and behave the same as top-level flows.
- No orphan run directories on early exit — the run directory is allocated lazily, so runs that return early (e.g. due to a pre-flight error) no longer leave empty directories behind
Install
# npm
npm install -g @testmuai/kane-cli@0.4.6
# Homebrew
brew install lambdatest/kane/kane-cli
# Shell installer (latest release)
curl -fsSL https://raw.githubusercontent.com/LambdaTest/kane-cli/main/install.sh | bashCompare: 0.4.5...0.4.6