Skip to content

Releases: LambdaTest/kane-cli

kane-cli 0.4.10

Choose a tag to compare

@robot-lt robot-lt released this 03 Jul 14:42

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 type and fill actions 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 | bash

Compare: 0.4.9...0.4.10

kane-cli 0.4.9

Choose a tag to compare

@robot-lt robot-lt released this 01 Jul 13:08

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_sse flag (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

  • back and forward navigations 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 capturetext/event-stream responses 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 | bash

Compare: 0.4.8...0.4.9

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