Releases: LambdaTest/kane-cli
kane-cli 0.4.5
Highlights
Stability improvements across the board: smarter retries, more reliable variable handling in test URLs, and better cleanup when runs are cancelled. These fixes address real failure modes users were hitting in production test flows.
[0.4.5] - 2026-06-15
Smarter retries and timeouts
- Chrome no longer hangs on startup — the CDP launch now has a bounded retry loop and a configurable timeout, so a stuck browser process fails fast instead of blocking your run indefinitely.
- Retry logic handles edge cases correctly — previously, certain hung or degenerate branching states could cause retries to stall or misbehave; these are now resolved cleanly.
More reliable variable and URL handling
{{var}}placeholders in start URLs are passed through as-is — the CLI no longer tries to resolve or rewrite template variables in start URLs before the run begins, so your parameterized URLs reach the browser exactly as written.- Value comparisons and cross-page checks are more robust — boundary values, if/else branching logic, and comparisons that span multiple pages are handled more consistently during test execution.
Cleaner run lifecycle
- Cancelling a run releases its playground lock — if a run was cancelled or never committed, the TMS playground lock could be left held, blocking future runs. That lock is now released automatically.
Install
# npm
npm install -g @testmuai/kane-cli@0.4.5
# 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.4...0.4.5
kane-cli 0.4.4
Highlights
The central theme of this release is start URL control. You can now set a default URL once and forget it, pass one per-run with --url, or embed it in a .testmd file's frontmatter — and the CLI will tell you clearly when one is missing rather than silently falling back to a placeholder.
[0.4.4] - 2026-06-14
One place to set your start URL
- Default URL in config — set a default start URL with
config set-urland the CLI will use it for every run automatically. The/configmenu in interactive mode now includes a "Default URL" item, andshowdisplays whatever value you've stored. - Per-run
--urlflag — pass--url <address>on anykane runortestmd runcall to override the default for that run without touching your config. - URL in
.testmdfrontmatter — add aurl:key to a test file's frontmatter and it becomes that file's built-in start URL. Resolution order:--urlflag → frontmatter → stored default.
Clearer errors when a URL is missing
- Missing URL is now a hard stop, not a silent fallback — previously the CLI could fall back to a hardcoded placeholder (google.com). Now, if no URL can be resolved, an overlay in the TUI or an error in the CLI tells you immediately and asks you to supply one.
- Skip the requirement when you need to — pass
--allow-missing-urlon non-TTY runs to opt out of the URL requirement entirely, useful for headless pipelines where the URL comes from another source.
Fewer surprises in long sessions
- URL is only sent for the first run, not replayed — after the first completed run in a session, the start URL is no longer re-injected into subsequent sub-flows, which prevents stale navigation on
/newor follow-up runs. - Session reset clears URL state cleanly —
/newand/resetnow properly reset the internal "has completed run" flag, so a fresh session behaves exactly like the first one. - Non-TTY testmd runs no longer prompt — when running in a non-interactive environment, the CLI no longer blocks waiting for user input if a URL is missing.
Install
# npm
npm install -g @testmuai/kane-cli@0.4.4
# 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.3...0.4.4
kane-cli 0.4.3
Highlights
Browser automation gains clipboard, cookie, and localStorage tools. A contextual hints system now lives in the footer of the TUI, surfacing mode-aware tips as you work.
[0.4.3] - 2026-06-12
New browser-automation tools
- Clipboard, cookie, and localStorage are now first-class tools — test flows can read and write the virtual clipboard, and can perform full create/read/update/delete operations on cookies and localStorage, matching what a real browser session can do.
Contextual hints in the footer
- A live hints bar at the bottom of the TUI — a new footer row shows tips relevant to your current mode, cycling through a remote catalog that updates automatically (cached for 1 hour).
- Hints can be turned off — run
/configinside the TUI to toggle hints on or off; the setting is saved locally and defaults to on.
Install
# npm
npm install -g @testmuai/kane-cli@0.4.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.4.2...0.4.3
kane-cli 0.4.2
Highlights
File attachments arrive in generate mode: attach local files with --files or @-mention them inline, and they're validated, uploaded, and threaded into the session automatically. A unified @ palette lets you reference files, scenarios, and test cases from a single selector. The install subcommand now checks version maps and back-fills missing agent directories on re-runs.
[0.4.2] - 2026-06-10
Attach files to generate sessions
- Local files in generate mode — pass
--fileson the command line or type@filenameinline to attach files to a generation request; kane-cli validates, uploads, and maps them automatically before submitting. @-mention selector with grouped categories — typing@opens a unified palette that organizes matches into Files, Scenarios, and Test Cases, with a bounded 7-row scroll window so it never takes over the screen.- Mistyped
@paths are surfaced, not silently dropped — if a referenced file can't be found, kane-cli warns you instead of ignoring it. - Input locks during upload — the prompt becomes inert while attachments are processing, and a "Processing files" label replaces any ambiguous spinner text.
- Uploads are cancellable — pressing Ctrl+C during a file upload aborts cleanly and leaves a scrollback marker so you can see where the session stopped.
Smarter generate-mode interaction
- Per-session input history — generate mode keeps its own history separate from run mode; press the up arrow to recall previous prompts.
- Duplicate submits are blocked — hitting submit twice in quick succession no longer fires a second request; the guard resets correctly after upload completes rather than after the full session ends.
- Frozen refine input is fixed — if a chat POST was rejected, the refine input could get stuck; it now resets correctly so you can type again.
- Generation failures visible in scrollback — errors from failed generation requests appear inline in the terminal and are also written to a local
errors.log, with the same event sent to telemetry.
Install subcommand
kane installchecks for updates — a new/public/skills/kane-cliendpoint backs a version-map check sokane installknows when a newer agent version is available.kane install <version>— pass a version as a positional argument to pin the install; already-installed targets are back-filled on re-runs so missing agent directories are never left behind.- Network calls time out — install-phase requests are now bounded with abort timeouts so a slow or unreachable endpoint doesn't hang the terminal indefinitely.
Project and folder gate in generate mode
- Generate mode enforces project/folder selection — entering
/generatenow applies the same project and folder gate as/run, so sessions can't start without a valid context set.
Startup noise reduced
- Node 18
buffer.Filewarning suppressed — theExperimentalWarningthat appeared on Node 18 at startup is now filtered out; other warnings are unaffected.
Install
# npm
npm install -g @testmuai/kane-cli@0.4.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.4.1...0.4.2
kane-cli 0.4.1
Highlights
Project and folder are now required on every run — kane-cli will gate, prompt, or auto-default instead of silently proceeding without context. Variable handling in recorded tests is more faithful, preserving bare references and quoted literals exactly as typed. A wave of reliability fixes closes auth gaps, TTY-asymmetry edge cases, and stale-cache bugs across interactive and non-interactive paths.
[0.4.1] - 2026-06-08
Breaking & behavior changes
- Bare-objective shortcut removed.
kane-cli "<objective>"no longer routes torun. Usekane-cli run "<objective>".
Unknown first tokens now exit2with a "did you mean" suggestion instead of silently running. - Exit code
1 → 2for TMS credential-exchange failures. Aligns with the other auth/setup failure codes. CI scripts that
branch on exit1vs2should be updated. config showand the newlistcommands emit JSON when stdout is piped or redirected (> file,| jq) instead of the human table. Useful for scripts; anyone scraping the human format will need to update.- Mid-run interactive project/folder picker removed. When the startup gate finds nothing configured (or a stale/invalid cached value), it auto-defaults headlessly and announces the choice rather than prompting. The explicit
kane-cli config project/config folderpickers still work in a TTY.
Project & folder selection
-
Zero-config first run — every run path (
kane-cli run,kane-cli testmd run,kane-cli generate) validates a
project/folder before launching. If nothing is configured, kane-cli auto-resolves (find-or-create) and announces the choice in the TUI scrollback and as aproject_folder_auto_defaultedevent under--agent. -
New
projectsandfolderssubcommands for scripted setup:kane-cli projects list [--search] [--limit] [--offset]kane-cli projects create <name> [--description]kane-cli folders list [--search] [--limit] [--offset]kane-cli folders create <name> [--description]
Human table in a TTY, NDJSON when piped or under
--agent, with_meta-paginated output for agents. -
Self-healing for stale, invalid, or typo'd IDs — a cached project/folder that's been deleted, renamed, revoked, or set to a malformed value is detected at run start and replaced via auto-default, instead of silently breaking the upload at the end of the run.
-
OAuth users can use the interactive
config project/config folderpicker again — a regression that required basic-auth credentials to reach the picker is fixed. -
OAuth tokens refreshed in the projects/folders auth path — expired tokens no longer cause silent failures when listing or selecting projects.
More faithful recorded tests
- Bare variable references are preserved in recorded
test.md— variable refs are written as-is, not coerced or mangled during recording. --authoris honored in non-TTY and agent runs — passing--authorin CI or agent mode now takes effect as expected.
Variable handling in recorded tests
--variables-fileand auto-store values resolve as expected (LambdaTest/kane-cli#69, #75) — the runtime{{VAR}}resolver now tries the local resolver first and falls back to the ATMS lookup, instead of silently dropping values the file had set.- Recorded
*_test.mdno longer double-prefixes variable namespaces #76 — replays previously produced{{secrets.user.secrets.user.X}}which never resolved; recorded objectives + frontmatter now persist bare{{name}}refs.
Non-TTY & agent runs
--authoris honored in non-TTY and--agentruns (LambdaTest/kane-cli#72) — forcing re-authoring no longer falls back to the stale cached plan in headless mode.- Typo'd subcommands fail loudly instead of silently running your input as an objective (see Breaking).
Auth
login/whoamiverify credentials server-side (LambdaTest/kane-cli#58) — previously both could report success while the backend rejected every API call; invalid tokens now fail immediately instead of after the first real command.
Cleaner output and display
- Project-list count shown as a lower bound while streaming — the projects denominator is now marked as approximate during streaming, so the display is not misleading.
Install
# npm
npm install -g @testmuai/kane-cli@0.4.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.4.0...0.4.1
kane-cli 0.4.0
Highlights
A new kane-cli generate command brings AI-driven test case generation directly into the CLI, with a full interactive TUI, bifurcation into per-scenario .testmd files, and headless/scripted modes. Saved tests are now browsable and runnable inline from within a live session. Share URLs surface in agent output so every completed run is immediately linkable.
[0.4.0] - 2026-06-04
AI test generation (kane-cli generate)
- New
kane-cli generate "<objective>"command — starts an AI-driven generation session in an interactive TUI; refine the objective through a chat-like interface, then/saveto materialize.testmdtest files. - Headless / scripted generation — run
kane generatewith--refineor--saveflags for non-interactive pipelines;--outcontrols where the resulting files land. - Scenarios drill-in with
/view— while generating,/viewopens a full-screen browser showing scenarios and individual test cases as they are produced; cases can be excluded before saving. - Bifurcation into per-case
.testmdfiles — each scenario is split into independent test cases eagerly;/savewrites only functional cases and reports exactly how many were written. - Clarification round-trips — if the AI needs more detail mid-generation, it prompts inline and resumes once answered; cancel any in-flight turn with Ctrl+C without losing the session.
- Mode-switch guard — switching from Generate to Run (or vice versa) while work is in progress asks for confirmation; an active inline run blocks the switch entirely.
Browse and run saved tests inline
/listopens a saved-tests overlay — from inside a run session,/listshows all saved.testmdtests; select one to inspect it, then launch it as a full inline run without leaving the TUI.- Inline
.testmdruns have full fidelity — the in-session run gets its own scoped lifecycle, keybindings, and log; it can't accidentally kill the outer session's Chrome when it exits. - Run summary and share link appended on completion — when an inline
.testmdrun finishes, the summary and share URL are written into the scrollback.
Share URLs in agent output
share_urlnow appears in agent NDJSON —test_md_summaryandtest_md_doneevents both carry the share URL, so CI pipelines and downstream tooling can link directly to the completed run.
Chrome profile support
--chrome-profileflag onkane-cli run— pass a Chrome profile name at the command line; it is also picked up automatically from.testmdfrontmatter when running saved tests.
Cleaner Generate TUI
- Teal accent and wider progress bar — Generate mode uses a distinct teal color scheme; the progress bar grows from 10 to 24 cells so progress is easier to read at a glance.
- Bottom bar condensed to 3 rows — the model name is gone; Mode, Session ID, and key hints fit on three lines.
- Thinking box capped at 5 rows — the expanded thinking panel no longer pushes the live region off-screen.
- Agent replies wrap correctly — each reply block renders as a single unit so Ink wraps at word boundaries; bullets and indented blocks no longer dedent mid-line.
- Markdown formatting in agent replies — bold, italic (boundary-safe, so
snake_caseis never mangled), and@-mention mappings render correctly in the scrollback. - Mode-scoped commands — slash commands are locked to the mode they belong to; foreign commands are rejected with a clear message rather than silently ignored.
Install
# npm
npm install -g @testmuai/kane-cli@0.4.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.3.7...0.4.0
kane-cli 0.3.7
Highlights
Navigation and element interaction have been significantly overhauled. Test runs now start with a deterministic, timed navigation step before any other actions, and dropdown/combobox handling is smarter — the right interaction strategy is chosen automatically based on the element type.
[0.3.7] - 2026-06-04
Deterministic navigation at run start
- Runs now navigate to the target URL as a defined first step — navigation happens in its own phase before any test actions begin, so timing is predictable and logged accurately with real wall-clock duration.
- Navigation and session setup happen in parallel — the browser moves to the start URL at the same time the session initializer spins up, reducing dead time at the start of a run.
More reliable dropdown and combobox interaction
- Custom ARIA comboboxes are now clicked instead of selected — elements that look like dropdowns but use custom ARIA roles get the interaction they actually respond to, reducing failed selections.
- All combobox, listbox, and select elements expose their options again — option extraction was missing for some element types and is now restored across the board.
Fewer silent failures
- Non-text request bodies no longer crash the session — a
UnicodeDecodeErrorreading binary or malformed request content is now swallowed gracefully instead of surfacing as an error. - Viewport size is read correctly — a subtle API mismatch when querying the viewport has been fixed, so layout-sensitive steps get accurate dimensions.
Cleaner run objective display
- The run's objective now shows the full picture — the display combines the start URL and the cleaned task description into a single stitched objective, so what you see at the top of a run reflects exactly what was requested.
Install
# npm
npm install -g @testmuai/kane-cli@0.3.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.3.6...0.3.7
kane-cli 0.3.6
Highlights
DevTools is now a first-class citizen in kane-cli. Network traffic, browser console output, cookies, localStorage, and performance traces can all be inspected, asserted on, extracted from, and replayed — complete with code export to JavaScript.
https://github.com/LambdaTest/kane-cli/tree/main/docs/user-guide/features/checkpoints
[0.3.6] - 2026-06-02
DevTools assertions and extraction
- Assert on network requests directly in your tests — KaneAI can now inspect live network traffic during a run, letting you assert on request/response bodies, status codes, and headers using operators like
gte,lte, andnot_equals. - Read and assert on browser console output — console logs (errors, warnings, app-level messages) are captured per run and can be used as assertion targets or extraction sources, with level normalization handled automatically.
- Cookies and localStorage are now inspectable — Kane-cli can read, assert on, and extract values from cookies and
localStorageduring a test run. - Performance traces are captured and assertable — browser performance data is collected inline during a run and exposed as an assertion and extraction target.
Code export for DevTools actions
- DevTools actions now export to Code — network queries, console reads, cookie access, and performance snapshots all produce correct automation code when code export is enabled, including replay support.
Replay handles DevTools actions
- Replaying DevTools steps works end-to-end — network capture starts and stops correctly around
devtool_networkreplay steps; console, cookie, storage, and performance actions are all wired into the replay execution.
Install
# npm
npm install -g @testmuai/kane-cli@0.3.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.3.5...0.3.6
kane-cli 0.3.5
Highlights
Element matching now scores its own confidence and can flag low-confidence matches before they silently break a test. Transient network failures retry automatically. OAuth-only users can now use --retry, screenshots upload reliably across session transitions, and action mode can opt out of auto-generated checks.
[0.3.5] - 2026-05-29
Features Added
- Opt out of auto-generated checks in action mode (kane-cli#43) — when authoring tests via
kane-cliin action mode, the CLI no longer appends its own final-verification check. Authors keep full control over which assertions land in the generated test file. (Behavior unchanged outside action mode.) - Confidence-scored element matching — every element-match call now reports a confidence score and the visual cues that influenced it. Low-confidence matches are rejected up front instead of letting a wrong element silently get clicked.
- Richer target descriptions — element targeting now distinguishes load-bearing descriptors (PRIMARY) from supporting visual cues (HINTS), producing fewer ambiguous matches on visually similar elements.
Bugs Resolved
--retrynow works with OAuth credentials (kane-cli#52) — OAuth users no longer have to fall back to--username/--access-key. Credentials are resolved up front before the run lock is acquired.- Screenshots upload reliably across the full session lifecycle (kane-cli#42) — image network calls now fire consistently in kane-cli reports across boot, login, profile switch, and
/newsession resets.
Reliability improvements
- Automatic retry on transient network failures — idempotent reads retry with backoff instead of failing the run immediately.
- Stale credential cache falls back correctly — if the in-memory snapshot is out of date, the CLI falls back to the last known good cached credentials.
- Session transitions handled consistently — boot, login, profile switch, and logout now go through a single dispatcher, closing gaps where auth state could get out of sync.
- Remote logger and screenshot queue init hardened — the logger won't re-initialize if already running, and a screenshot setup failure no longer takes down the surrounding operation.
Install
# npm
npm install -g @testmuai/kane-cli@0.3.5
# 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.3.4...0.3.5
kane-cli 0.3.4
Highlights
Project search is now server-side and paginated, so finding the right project is fast even on large accounts. Artifact uploads now capture the full session directory as a zip. Variable templates in query descriptions resolve correctly, closing a class of silent failures in analyze and vision steps.
[0.3.4] - 2026-05-26
Faster, smarter project picker
- Project search now filters on the server — typing in the project picker sends a
filter[name]query instead of filtering a local list, so results are accurate and instant even across hundreds of projects. - Results are paginated at 10 per page with a searching indicator — a visible loading state appears while results load, so the picker never feels frozen.
Fuller artifact uploads
- The entire session directory is zipped and uploaded — artifact uploads now capture everything in the session folder, not just individual files, so post-run inspection has the full context.
- Screenshot file extensions are tracked per operation — the correct extension (
.png,.jpg, etc.) is recorded per operation ID, so artifact references point to real files.
Variable templates that actually resolve
{{var}}placeholders in query descriptions now expand correctly — analyze, vision, and textual query descriptions that reference variables were being sent as raw template strings; they now resolve before the query runs.
Triage and reporting
- Triage payload and reporting are now supported — runs can emit structured triage data, giving you a reportable summary of what passed, failed, or needs attention.
Smoother installation
sharpis now an optional dependency — a missingsharpnative module no longer blocksnpm install, and the post-install check no longer silently fails on global installs.
Resolved Issues
Install
# npm
npm install -g @testmuai/kane-cli@0.3.4
# 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.3.3...0.3.4