Skip to content
Testing
Skill

/kane-cli

Browser automation + AI test authoring via kane-cli — run browser objectives, generate & refine test scenarios/cases from a description, design requirement-linked test suites from a PRD/spec (assurance), parse NDJSON output, inspect logs, save runnable _test.md. Use for any task

From plugin
kane-cli
2281 skill
Install
$ npx -y skills add LambdaTest/kane-cli --skill kane-cli --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/kane-cli

Context preview

The summary Claude sees to decide when to auto-load this skill.

Browser automation + AI test authoring via kane-cli — run browser objectives, generate & refine test scenarios/cases from a description, design requirement-linked test suites from a PRD/spec (assurance), parse NDJSON output, inspect logs, save runnable _test.md. Use for any task

SKILL.md

kane-cli.SKILL.md
name: kane-cli
description: Browser automation + AI test authoring via kane-cli — run browser objectives, generate & refine test scenarios/cases from a description, design requirement-linked test suites from a PRD/spec (assurance), parse NDJSON output, inspect logs, save runnable _test.md. Use for any task requiring a real browser (navigate, click, fill forms, test web UI, take screenshots), or to author test cases — quick cases from a description via kane-cli generate; a designed, coverage-accounted suite from requirement documents via the assurance commands. Never write test cases by hand.

Kane CLI — Browser Automation Skill

Use `kane-cli` for **any task that requires a real browser**: navigating websites, clicking elements, filling forms, searching, testing web UI, taking screenshots, or verifying deployments. Do NOT use Playwright, Puppeteer, or Selenium directly. Always run with `--agent` so output is structured NDJSON you can parse.

**Authoring test cases or scenarios?** Never write them by hand — kane-cli has two authoring pipelines, and the routing matters:

  • The user describes what to test in a sentence or two, or wants quick scenario/case ideas → `kane-cli generate` (§6).
  • The user has **requirement documents** (a PRD, a spec, acceptance notes) and wants a designed suite, requirement-linked coverage, or "what exactly is covered?" answers → the **assurance** commands — Read `references/assurance.md` first.

Don't draft test cases in chat or scratch files: both pipelines produce structured, refinable, runnable `_test.md` output.

---

1. Narration and results presentation — READ THIS FIRST

A one-line "Test passed" instead of the results table is a bug. This section is first so you don't miss it. Follow it exactly.

1.1 How to launch kane-cli

**All platforms use `Bash`** to launch kane-cli. Do NOT use `Monitor` — it creates excessive noise.

**One-time setup — telemetry env var (silent, do once before the first Bash call).** Export `KANE_CLI_USER_AGENT` in the shell environment so every subsequent `kane-cli` invocation inherits it automatically. Pick a short, stable identifier for the AI assistant or IDE running this skill (e.g. `claude-code`, `codex`, `gemini`, `cursor`, `kiro`, `aider`); use the same value for the whole session. Run this once, silently — do not surface the export to the user, and do not repeat the prefix in any command you show:

export KANE_CLI_USER_AGENT=<your-runtime>

After that, run kane-cli normally — the variable is inherited:

kane-cli run "<objective>" --agent <other-flags>

Bash blocks until kane-cli exits, then hands you the complete stdout. Parse it, summarize what happened, and present the results table. Same pattern for `kane-cli testmd run` and `kane-cli generate`.

Set a generous timeout (up to 600000ms) since browser runs can take a while.

1.2 Before you launch

**Before** invoking Bash, emit:

Starting browser task: <one-line restatement of the user's objective>.

That single line tells the user something is in progress. No todos needed — Bash returns all output at once and you summarize it below.

1.3 After the run — summarize what happened

Once Bash returns, parse the captured NDJSON stdout and present a **concise summary** of what happened. Not every event deserves a line — surface what matters and skip the noise.

Progress events have `step`/`status`/`remark` fields and **no `type` field**.

What to surface

| Show | Which events | How | |------|-------------|-----| | **Failures** | Any step with `status: "failed"` | `Step <n> failed: <remark>` | | **Flow changes** | `bifurcation`, `child_agent_start`, `child_agent_end` | Plain-language one-liner (e.g. "The agent split the objective into 2 sub-tasks") | | **Errors** | `error` typed events | `Error: <message>` | | **Overall progress** | All passing steps | One summary line: `<total> steps completed — <2–4 key actions from remarks>` |

What to skip

  • Individual passing steps — fold them into the overall progress line
  • Internal field names (`step`, `status`, `remark`, `run_end`, `final_state`, `bifurcation`, `session_dir`, `project_folder_auto_defaulted`, etc.) — translate to plain language. A `project_folder_auto_defaulted` event fires before progress when the run-startup gate auto-resolves a project/folder; surface it as one line ("kane-cli auto-selected project X / folder Y for this run") and move on. Details: `references/test-manager.md`.

Example output for a 15-step run with one failure

Starting browser task: Search for laptop on Amazon and add to cart.

<Bash runs…>

15 steps completed — navigated to amazon.in, searched for 'laptop', filtered results, added to cart.
Step 6 failed: Could not find Add to Cart button — the agent retried successfully.

| | |
|-------|-------|
| 🟢 **Result** | Passed |
| …results table… |

For short runs (≤ 3 steps), you may list each step individually since there's nothing to fold.

1.4 After run_end — present the results table

The terminal event has `type: "run_end"` and stable fields: `status`, `summary`, `one_liner`, `duration`, `credits`, `final_state`, `test_url`, `session_dir`, `run_dir`.

**For a passing run, always emit this exact table** (substituting the field values):

| | |
|-------|-------|
| 🟢 **Result** | Passed |
| 🎯 **Task** | <one_liner> |
| ⏱️ **Duration** | <duration>s |
| 👣 **Steps taken** | <count of progress events> |
| 📝 **What happened** | <summary> |
| 🔗 **View details** | [Open in KaneAI Dashboard](<test_url>) |

**If `final_state` has values** (the user used "store as X" — see §4), append a second table:

| 📦 What was found | Value |
|-------------|----------------|
| <key from final_state, humanized> | <value> |

**If the objective used assertions** ("assert …", "verify …"), append a pass/fail table per assertion derived from the run summary and step remarks.

1.5 On failure

For e

Read more
Ships withkane-cli

The validation layer for AI coding agents — natural-language browser automation and requirements-to-coverage assurance, called from your CLI or IDE.

Get the whole plugin
Stats
228
Stars
23
Forks
Active
Maintenance
JavaScript
Language
Apache-2.0
License
1d ago
Last commit
3mo ago
Created

Repo: LambdaTest/kane-cli