Skip to content

Releases: LambdaTest/kane-cli

kane-cli 0.4.8

Choose a tag to compare

@robot-lt robot-lt released this 25 Jun 21:14

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-version reliably 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 | bash

Compare: 0.4.7...0.4.8

kane-cli 0.4.7

Choose a tag to compare

@robot-lt robot-lt released this 22 Jun 21:24
0c2c019

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 navigate step no longer silently skips humanization.

Reliability and display fixes

  • Loopback URLs get the right scheme — hosts like localhost now correctly get http:// instead of being flagged as unresolvable.
  • Screenshots are labeled correctly — images were being sent as image/png even 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 | bash

Compare: 0.4.6...0.4.7

kane-cli 0.4.6

Choose a tag to compare

@robot-lt robot-lt released this 18 Jun 18:53
604b8b2

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_api steps 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_else branches 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.log in 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 | bash

Compare: 0.4.5...0.4.6

kane-cli 0.4.5

Choose a tag to compare

@robot-lt robot-lt released this 15 Jun 14:49
18c109c

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 | bash

Compare: 0.4.4...0.4.5

kane-cli 0.4.4

Choose a tag to compare

@robot-lt robot-lt released this 14 Jun 06:55

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-url and the CLI will use it for every run automatically. The /config menu in interactive mode now includes a "Default URL" item, and show displays whatever value you've stored.
  • Per-run --url flag — pass --url <address> on any kane run or testmd run call to override the default for that run without touching your config.
  • URL in .testmd frontmatter — add a url: key to a test file's frontmatter and it becomes that file's built-in start URL. Resolution order: --url flag → 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-url on 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 /new or follow-up runs.
  • Session reset clears URL state cleanly/new and /reset now 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 | bash

Compare: 0.4.3...0.4.4

kane-cli 0.4.3

Choose a tag to compare

@robot-lt robot-lt released this 12 Jun 20:50
9c6f5b0

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 /config inside 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 | bash

Compare: 0.4.2...0.4.3

kane-cli 0.4.2

Choose a tag to compare

@robot-lt robot-lt released this 10 Jun 18:28
610a6ae

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 --files on the command line or type @filename inline 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 install checks for updates — a new /public/skills/kane-cli endpoint backs a version-map check so kane install knows 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 /generate now 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.File warning suppressed — the ExperimentalWarning that 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 | bash

Compare: 0.4.1...0.4.2

kane-cli 0.4.1

Choose a tag to compare

@robot-lt robot-lt released this 08 Jun 21:01
c220ee3

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 to run. Use kane-cli run "<objective>".
    Unknown first tokens now exit 2 with a "did you mean" suggestion instead of silently running.
  • Exit code 1 → 2 for TMS credential-exchange failures. Aligns with the other auth/setup failure codes. CI scripts that
    branch on exit 1 vs 2 should be updated.
  • config show and the new list commands 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 folder pickers 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 a project_folder_auto_defaulted event under --agent.

  • New projects and folders subcommands 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 folder picker 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.
  • --author is honored in non-TTY and agent runs — passing --author in CI or agent mode now takes effect as expected.

Variable handling in recorded tests

  • --variables-file and 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.md no 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

  • --author is honored in non-TTY and --agent runs (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 / whoami verify 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 | bash

Compare: 0.4.0...0.4.1

kane-cli 0.4.0

Choose a tag to compare

@robot-lt robot-lt released this 04 Jun 18:42

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 /save to materialize .testmd test files.
  • Headless / scripted generation — run kane generate with --refine or --save flags for non-interactive pipelines; --out controls where the resulting files land.
  • Scenarios drill-in with /view — while generating, /view opens a full-screen browser showing scenarios and individual test cases as they are produced; cases can be excluded before saving.
  • Bifurcation into per-case .testmd files — each scenario is split into independent test cases eagerly; /save writes 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

  • /list opens a saved-tests overlay — from inside a run session, /list shows all saved .testmd tests; select one to inspect it, then launch it as a full inline run without leaving the TUI.
  • Inline .testmd runs 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 .testmd run finishes, the summary and share URL are written into the scrollback.

Share URLs in agent output

  • share_url now appears in agent NDJSONtest_md_summary and test_md_done events both carry the share URL, so CI pipelines and downstream tooling can link directly to the completed run.

Chrome profile support

  • --chrome-profile flag on kane-cli run — pass a Chrome profile name at the command line; it is also picked up automatically from .testmd frontmatter 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_case is 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 | bash

Compare: 0.3.7...0.4.0

kane-cli 0.3.7

Choose a tag to compare

@robot-lt robot-lt released this 04 Jun 12:09

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 UnicodeDecodeError reading 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 | bash

Compare: 0.3.6...0.3.7