Skip to main content

Using Claude Code, Cursor, or another coding agent? Paste this into your prompt to run cross-browser and real-device tests, debug sessions, and wire up CI on the TestMu AI cloud:
Kane CLI stores persistent settings at ~/.testmuai/kaneai/tui-config.json. Most settings are managed through kane-cli config subcommands; a few are managed through interactive pickers in TUI mode, and one (code export) is toggled from the TUI menu. Authentication credentials are managed separately under ~/.testmuai/kaneai/profiles/ — see Authentication.

Viewing Settings

Print the current configuration:
The output groups settings under three headings:
Empty fields are shown as (none). The chrome path is empty by default, in which case Kane CLI launches Chrome with a temporary profile each run.

Settings Reference


Updating Settings

Window Size

The Chrome window is launched at the configured resolution:
The format is WIDTHxHEIGHT (lowercase x separator). Width must be between 800 and 3840; height must be between 600 and 2160. Invalid values are rejected without changing the saved config. In TUI mode, the same setting can be edited through an interactive window-size picker.

Default start URL

kane-cli needs a start URL for the first navigation of a run. It resolves one in this order, first match wins:
  1. The --url <url> flag on kane-cli run / kane-cli testmd run.
  2. (test.md only) the url: key in the file’s frontmatter.
  3. The configured default_url — set with config set-url.
Bare domains are accepted and normalized — config set-url example.com stores https://example.com. The value is rejected without changing the saved config if it is not a valid URL. The built-in playground value (https://kaneai-playground.lambdatest.io) counts as “unset”, so a fresh install behaves as if no default were configured. In TUI mode, set the same value with /config set-url <url>, or pick Default URL from the interactive /config menu. If none of the three sources supplies a URL, kane-cli falls back to a site named in the objective itself (e.g. “Go to amazon.com and …”). When nothing provides a start URL at all, an interactive terminal asks you for one, while a non-interactive (CI) run fails — pass --allow-missing-url to a non-TTY run to proceed from the browser’s current page instead. See Run options.

Test Manager Project

In a TTY, this opens an interactive project picker. The picker fetches the projects available to your active profile, lets you search and arrow-key through them, and saves the chosen project_id and project_name. Login is required before the picker can fetch projects. Either OAuth or basic-auth credentials are sufficient — you no longer have to also store a username/access-key pair to use the picker. You can also set a project ID directly without the picker:
In a non-interactive shell (CI, pipes), pass an explicit <project-id>. To discover the right ID first, use kane-cli projects list (see Test Manager Integration). If you don’t configure a project at all, kane-cli auto-resolves a sensible default when the first run starts — see “Auto-default on first run” in Test Manager Integration. See Test Manager Integration for how project selection feeds into uploads.

Test Manager Folder

Opens an interactive folder picker for the currently selected project. Folders are searchable and shown with their hierarchy. The picker writes both folder_id and folder_name. You must have a project selected first. OAuth and basic-auth profiles are both supported. To set a folder ID without the picker:
For scripted discovery in non-TTY contexts, use kane-cli folders list — see Test Manager Integration. See Test Manager Integration for how folder selection feeds into uploads.

Self-healing for stale IDs

If a previously-configured project or folder later becomes unusable (deleted, renamed, you lost access, or you typed an invalid ID by accident), kane-cli detects the bad ID on the next run, clears it, and auto-resolves a new default instead of letting the run proceed with a dead value and silently failing the upload. To rebind explicitly, run kane-cli config project again (or kane-cli projects list followed by kane-cli config project <id>).

Mode

mode controls how the agent behaves when a run hits an authentication wall, a blocked page, or an error page:
  • testing (default) — the agent treats those pages as part of the run and continues. Use this when you expect the agent to push through gates that would otherwise stop a real user.
  • action — the agent hard-stops on authentication, blocked, and error pages so you can intervene manually before the run proceeds.
You can override the saved mode for a single run with --mode <action|testing> on kane-cli run.

Mobile Target

On macOS Apple Silicon, Kane CLI can run against a virtual mobile device instead of the desktop browser. Three settings persist the default target and how to reach it. They are a separate axis from mode above: mode tunes agent behaviour, while these choose what device a run drives.
  • target: desktop, the default, runs Chrome. emulator runs a virtual Android device and simulator a virtual iOS device. Existing web runs are unaffected.
  • device: the device a mobile run selects, by name, serial, ip:port, or udid. When unset, a TTY run prompts once and saves the choice. Non-interactive runs need it set, either here or with --device.
  • app: the app under test for a mobile run, a build path (emulator .apk, simulator .zip) or an uploaded app id, APP followed by six or more digits. Required for every mobile run. On the desktop target, device and app are ignored.
A run reads these as its defaults. Override any of them for a single run with --target, --device, and --app. Setup and the full list of accepted app formats are in Mobile Testing.

Bug detection

bug_detection controls whether the agent watches for product bugs — not test failures — while it authors steps. When enabled, the agent can flag a suspicious behaviour mid-run (a broken flow, a wrong value, an error where none should be); the suspicion is investigated, and either rejected (the run continues, nothing fails) or confirmed as a product bug:
  • off (default) — no bug detection; behaviour is identical to previous releases.
  • stop — a confirmed product bug fails the step and ends the run.
  • continue — the confirmed bug is recorded (in the run result and the evidence pack) and the run keeps going.
This applies to authoring steps only. Replayed steps don’t need it: a failed replay is always investigated automatically, regardless of this setting. Override the saved value for a single run with --bug-detection <off|stop|continue> on kane-cli run, kane-cli testmd run, or kane-cli testrun run. The setting appears in the TUI Config screen as Bug Detection and in kane-cli config show output.

Code Export

The code_export block enables and configures generated code output produced after a successful Test Manager upload. There is no kane-cli config subcommand for this block. Set it from one of:
  • The TUI — open the config menu, choose Code Export, and toggle the enabled and skip_validation switches. The TUI writes the change back to tui-config.json.
  • Per-run flags on kane-cli run:
    • --code-export to enable for this run only
    • --code-language <lang> to pick the output language (python or javascript)
    • --skip-code-validation / --no-skip-code-validation to control post-codegen validation
Code export requires a Test Manager upload, so it is only meaningful when a project is configured. See Test Manager Integration for the full upload pipeline.

Chrome Management

Chrome Profile

By default, chrome_profile_path is empty and Kane CLI launches Chrome with a fresh, temporary user-data directory each run. A clean per-run profile isolates cookies and storage between runs and prevents extensions, password autofill, or signed-in sessions from leaking into automation. When you select a named Chrome profile, Kane CLI stores it under ~/.testmuai/kaneai/chrome-profiles/<name> and reuses that directory across runs. This is useful when a test depends on having a logged-in session, a saved address, or a specific extension installed.

Choosing a Different Profile

In a TTY, this opens an interactive Chrome-profile picker. The picker lists every profile under ~/.testmuai/kaneai/chrome-profiles/ plus a “temporary” entry that clears the path back to empty (per-run fresh profiles). You can also create a new named profile from the picker. To set a path directly without the picker:

Headless Mode

To run Chrome without a visible window, pass --headless on kane-cli run:
Headless mode is per-run; there is no persistent setting. It is the right choice for CI and other environments without a display.

Window Size

The Chrome window dimensions for both headed and headless modes come from the window_size setting. See Window Size above to update them.

Chrome environment variables

A handful of environment variables control how kane-cli locates and launches Chrome. They are read from the process environment, not from tui-config.json, so they are convenient for CI and one-off overrides. The CDP timeout and retry settings only affect transient launch failures (Chrome started but did not become reachable in time) — a missing or invalid binary fails immediately without retrying. See Chrome failed to launch for the matching troubleshooting steps.

Resetting Settings

There is no kane-cli config reset subcommand. To reset persistent settings to defaults, delete the config file:
Kane CLI recreates the file with defaults the next time it writes a setting. This only resets tui-config.json. It does not affect:
  • Authentication credentials under ~/.testmuai/kaneai/profiles/ (use kane-cli logout)
  • Session history under ~/.testmuai/kaneai/sessions/
  • Variables under ~/.testmuai/kaneai/variables/ and .testmuai/variables/
  • Chrome profiles under ~/.testmuai/kaneai/chrome-profiles/