World’s largest virtual agentic engineering & quality conference
Kiro can read a spec, write the components, wire the routes, and mark the task done. It cannot open Chrome, click through the signup flow it just built, and tell you whether the thing works. That last step still lands on a human who alt-tabs to a browser after every agent run.
Kane CLI closes that step. It takes objectives in plain English, drives a real Chrome browser, and returns a pass or fail with an evidence pack attached. This guide covers four ways to put it inside Kiro: install it as a power, run it from the integrated terminal, wire agent mode with steering files and hooks, or point Kiro at the official agent instructions.
Kiro is an agentic IDE from AWS, available as an IDE, CLI, web, and mobile experience. Its own documentation lists six core capabilities: specs, hooks, agentic chat, steering, MCP servers, and privacy controls. Every one of them operates on text.
That is the structural blind spot. An agent whose verification primitives are unit tests, type checkers, linters, and compilers is reporting on the code surface only. The rendered UI surface stays invisible to it, which produces a specific class of failure:
Each of these is technically correct code and a broken user experience. Catching them in the same session that created them is what shift-left verification means in an agentic IDE, and it is the gap the rest of this guide fills.
A power is a bundle that gives Kiro specialized expertise on demand. Kiro's powers documentation defines three components, only the first of which is required:
The reason powers exist is a context budget. Kiro's documentation states that loading multiple MCP servers at once can consume over 50,000 tokens, close to 40% of the context window, before the agent processes any actual task, and that with too much context agents slow down. Powers avoid that by matching installed keywords against the conversation and loading only what is relevant.
That dormant-until-needed model is why browser verification fits well as a power. Most conversations in an IDE do not need Chrome. The ones that mention a smoke test, a deploy check, or a broken UI flow do.
Kane CLI ships a Kiro power in its public repository under integrations/kiro-powers, authored by TestMu AI and licensed Apache-2.0. It is not in Kiro's curated powers directory as of July 2026, so you install it as a custom power from a local folder.
Clone the repository first, then point Kiro at the subdirectory:
git clone https://github.com/LambdaTest/kane-cli.git
# the power lives at: kane-cli/integrations/kiro-powers/Reach for the folder import rather than the GitHub URL import. Kiro's GitHub route requires a valid POWER.md in the repository root, and Kane CLI keeps its power file one level down at integrations/kiro-powers/POWER.md, so a root import finds nothing to install.
What the power actually contains is six steering files and one hook template. The steering set splits by workflow rather than dumping one manual on the agent: kane-cli-run for one-shot browser objectives, kane-cli-testmd for committable replayable tests, kane-cli-testrun for batch suites, kane-cli-generate for authoring test cases with no browser, plus assurance and fair-evaluation guidance. POWER.md tells Kiro which one to load for a given task.
Note: Kane CLI is free to start on the Starter plan, which runs local Chrome with 100 credits. Create a free account
Skip the power entirely if you want to drive verification yourself. Kane CLI needs Node.js 18 or higher and Google Chrome installed locally, and it launches Chrome over the DevTools Protocol on ports 9222 to 9230. Three commands in Kiro's integrated terminal get you to a first result.
npm install -g @testmuai/kane-cli
kane-cli login --username <email> --access-key <key>
kane-cli run "go to https://www.testmuai.com/selenium-playground/, click Simple Form Demo, fill the message field with 'kiro power check', click Get Checked Value, assert the page contains 'kiro power check'" --agentCredentials come from the TestMu AI dashboard under Settings and then Keys. Use kane-cli login --oauth instead when you would rather approve a browser consent screen than paste a key, and confirm either path with kane-cli whoami. No config file, no selectors, and no test framework are involved.
Objectives combine three patterns worth learning early. Actions use imperative verbs such as go to, click, and fill. Assertions use assert, verify, or confirm and fail the run when the condition does not hold. Extractions use the explicit store X as 'name' syntax, because vague phrasing like "tell me the price" does not reliably persist a value.
Add --name to keep a one-shot run instead of discarding it. That writes a test file to .testmuai/tests/ that you can move into the repository and replay later with kane-cli testmd run, where the first run authors each step and every later run replays from a cache with no model cost. Without --name the run is ephemeral.
The power covers most workflows. Wire the pieces yourself when you want direct control over when Kiro reaches for a browser and what it does with the verdict.
Always pass --agent when Kiro is the caller. It suppresses the interactive terminal UI and emits newline-delimited JSON on stdout, one object per line, ending with a terminal run_end event that carries the verdict. Without the flag Kiro gets a rendered UI it cannot read.
Here is the real event sequence from a run I executed against the TestMu AI Selenium Playground on July 30, 2026 using Kane CLI 0.6.9, abridged to the lines that matter:
{"type":"recording_state","enabled":true,"session_id":"078780db-..."}
{"type":"project_folder_auto_defaulted","project_name":"KaneAI Generated","folder_name":"Untitled"}
{"type":"bifurcation","count":1,"flows":["Navigate then get the page title, assert the page contains 'Selenium Playground'"]}
{"step":2,"status":"done","remark":"navigate: Navigate to https://www.testmuai.com/selenium-playground/"}
{"step":3,"status":"done","remark":"analyze: ANALYZE(title, 'PRIMARY: current page title value', key='page_title')"}
{"type":"run_end","status":"...","duration":28.7,"credits_consumed":9.13,"session_dir":"~/.testmuai/kaneai/sessions/078780db-..."}Two details from that run are worth carrying into your own setup. The agent extracted the live page title "Selenium Grid Online | Run Selenium Test On Cloud" into a named variable, which is what makes extraction useful to a calling agent. It also emitted project_folder_auto_defaulted, because Kane CLI picks a Test Manager project and folder on the first run when none is configured rather than blocking.
Parse only the last line when all you need is the verdict:
kane-cli run "..." --agent --headless 2>/dev/null | tail -1 | jq -r '.status'Pair --agent with --headless in any non-interactive context so the run does not need a display server. The command reference documents four exit codes, which is what lets Kiro or a CI runner branch without reading prose: 0 passed, 1 failed, 2 an error such as auth or setup, and 3 a timeout or cancellation. Every run also seals a single evidence pack under the session directory, viewable with kane-cli evidence serve, holding the test definition, per-step screenshots, and console and network logs.
Steering files are Markdown documents Kiro loads into context automatically. Workspace files live in .kiro/steering/ and global ones in ~/.kiro/steering/, with workspace winning on conflict. Frontmatter controls when each loads, and Kiro's steering documentation defines four inclusion modes:
A file scoped to your UI code keeps the instruction out of unrelated conversations. Create .kiro/steering/kane-cli.md:
---
inclusion: fileMatch
fileMatchPattern: "src/components/**/*.tsx"
---
# Browser verification with Kane CLI
After any UI change, verify it before marking the task complete.
Command: kane-cli run "<objective>" --url <app_url> --agent --headless
Parse the final line only. status is "passed" or "failed".
App notes:
- Local dev runs on http://localhost:3000
- Login is at /auth/signin
- Split flows longer than 15 steps into separate runsOne distinction trips people up when they start writing their own powers. The inclusion key belongs to workspace steering files only. Steering files bundled inside a power are scoped by POWER.md instead, so adding inclusion frontmatter to those is incorrect.
Kane CLI keeps its own context layer that stacks with this. Global context lives at ~/.testmuai/kaneai/global-memory.md and project context at .testmuai/context.md. Put nav patterns and known quirks there so the browser agent stops rediscovering your UI on every run.
Pair steering with a hook and the loop runs itself. The Kane CLI power ships kane-verify.kiro.hook as a template. Powers do not install hooks for you, so copy it to .kiro/hooks/ in your workspace and adapt the patterns and prompt:
{
"enabled": true,
"name": "Kane CLI - Verify on change",
"version": "1",
"when": {
"type": "fileEdited",
"patterns": [
"src/**/*.{ts,tsx,js,jsx,vue,svelte}",
"app/**/*.{ts,tsx,js,jsx}",
"next.config.*",
"vercel.json"
]
},
"then": {
"type": "askAgent",
"prompt": "Frontend files changed. Run a Kane CLI smoke test, parse the output, present results in plain language with screenshots, and propose fixes for any failed step."
}
}Note the shape, because it is easy to guess wrong. The trigger is a fileEdited event with a patterns array, and the action is askAgent with a prompt, which hands the work back to the agent rather than firing a bare shell command. Save a component, and a real browser checks it without anyone asking.
The four paths are additive rather than exclusive. Most teams start with the power and add the hook once they trust the results.
| Path | Setup effort | Choose it when |
|---|---|---|
| Custom power install | One clone plus a folder import | You want Kiro to reach for a browser on its own, with workflow-scoped steering already written for you. |
| Integrated terminal | Three commands | You are debugging a flow yourself and want a headed Chrome window you can watch, outside the agent loop. |
| Agent mode plus steering and hooks | Two files you author | You want verification to fire on defined events and to control exactly which objectives run against which paths. |
| Official agent instructions | One URL | You want the full command surface, flags, and parsing rules in context without maintaining a local copy. |
That fourth path is a single pointer. Kane CLI publishes machine-readable agent instructions at testmuai.com/kane-cli/agents.md, covering flags, objective patterns, output parsing, variables and secrets, and parallel execution. The same pattern works in other agentic tools, whether that is verifying Gemini CLI output or having Claude Code prove the feature it just wrote.
Note: Kane CLI is the terminal surface of TestMu AI's agentic testing stack, and KaneAI runs the same natural-language flows at scale on the platform. Explore KaneAI
Start with the shortest path that produces evidence. Install Kane CLI, run kane-cli login, and give it one objective against a flow you already know is working, so you learn what a pass looks like before you need to read a failure.
Then add the pieces in order. Import the power from the cloned folder, add a fileMatch steering file scoped to your UI directory, and copy the hook template once you trust the objectives. Each step moves verification earlier without changing the syntax you already learned.
The Kane CLI documentation covers the full flag reference and authentication model, and the three modes of Kane CLI explains when to pick interactive, headless, or agent mode. For the CI side of the same loop, see how to connect Kane CLI to GitHub Actions and gate a pipeline on the exit code.
Kiro made specs the unit of work. Adding a browser to the loop makes proof the unit of done, and it stops developers from being the manual test step between the agent and the deploy.
Author
Bhawana is a Community Evangelist at TestMu AI with over 3 years of experience creating technically accurate, strategy-driven content in software testing. She has authored 50+ blogs on test automation, cross-browser testing, mobile testing, and real device testing. She also serves as Product Marketing Manager for Kane CLI, the command-line tool that runs browser automation from the terminal using natural-language flows in a real Chrome browser. Bhawana is certified in KaneAI, Selenium, Appium, Playwright, and Cypress, reflecting her hands-on knowledge of modern automation practices. On LinkedIn, she is followed by 6000+ QA engineers, testers, AI automation testers, and tech leaders.
Reviewer
Shantanu Wali is Vice President of Product Management at TestMu AI (formerly LambdaTest), where he owns several product lines across the testing platform, including the Real Device Cloud and the Digital Experience Testing Cloud. He has also contributed significantly to the development and scaling of KaneAI, TestMu AI's flagship GenAI-native testing agent that uses natural language to make software testing faster and more reliable in this AI era. He brings 7+ years of experience across software development and product management, starting as a backend developer at Infosys building solutions for Fortune 500 clients. Shantanu holds an MBA from IIM Calcutta and a B.Tech in Mechanical Engineering.
Did you find this page helpful?
More Related Blogs
TestMu AI forEnterprise
Get access to solutions built on Enterprise
grade security, privacy, & compliance