Skip to main content
Kane CLI saves its settings in ~/.testmuai/kaneai/tui-config.json. You change most settings with kane-cli config subcommands. A few also have interactive pickers in TUI mode, and one (code export) is switched on and off from the TUI menu. This page covers the settings saved in tui-config.json. Authentication credentials are stored 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

Every field in tui-config.json:

Updating Settings

Window Size

The Chrome window is launched at the configured resolution. Update it from the CLI:
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, you can also use an interactive window-size picker. Type the width and height, and the picker checks the limits and previews the new size before saving.

Default start URL

Every run needs a start URL for its first navigation. Kane CLI checks these sources in order and uses the first one that supplies a URL:
  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.
You can pass a bare domain, and Kane CLI adds the scheme: config set-url example.com stores https://example.com. If the value is not a valid URL, Kane CLI rejects it and leaves the saved config unchanged. The built-in playground value (https://kaneai-playground.lambdatest.io) counts as “unset”, so a fresh install behaves as if no default is 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 these three sources supplies a URL, Kane CLI uses a site named in the objective itself (for example, “Go to amazon.com and …”). If there is still no start URL, an interactive terminal asks you for one, and a non-interactive (CI) run fails. To let a non-interactive run start from the browser’s current page instead, pass --allow-missing-url. See Run options.

Test Manager Project

In an interactive terminal, this opens a project picker. The picker loads the projects available to your active profile, lets you search and move through them with the arrow keys, and saves the chosen project_id and project_name. You must be logged in for the picker to load projects. Either OAuth or basic-auth credentials work. 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 do not configure a project, Kane CLI picks a sensible default when your first run starts. See Auto-default on first run. See Test Manager Integration for how project selection feeds into uploads.

Test Manager Folder

This opens an interactive folder picker for the selected project. You can search the folders, which are shown with their hierarchy. The picker saves both folder_id and folder_name. Select a project first. OAuth and basic-auth profiles both work. To set a folder ID without the picker:
To look up folder IDs from a script or another non-interactive shell, 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

A configured project or folder can become unusable: it was deleted or renamed, you lost access, or you typed an invalid ID by mistake. Kane CLI detects the bad ID on the next run, clears it, and picks a new default. This prevents the run from going ahead with a dead ID and the upload failing silently. To choose a project yourself, 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 have set up the test and expect the agent to get past gates that would stop a real user.
  • action: the agent stops on authentication, blocked, and error pages so you can step in manually before the run continues.
To override the saved mode for a single run, pass --mode <action|testing> to kane-cli run.

Mobile Target

On macOS Apple Silicon, Kane CLI can run against a virtual mobile device on your machine instead of the desktop browser. Four settings save the default target and the device and app to use. They are independent of mode above: mode controls agent behaviour, while these choose which device a run drives.
  • target: desktop, the default, runs Chrome. emulator runs a virtual Android device and simulator a virtual iOS device. Web runs are not affected by the mobile settings.
  • device_name and os_version: the device a mobile run uses, named exactly as kane-cli devices list --target <kind> prints it. A name needs a version. A version on its own matches any device on that version. When these are unset, an interactive run asks once and saves your choice. Non-interactive runs need them set, either here or with --device-name and --os-version.
  • app: the app under test for a mobile run. Use a build path (emulator .apk, simulator .zip) or an uploaded app id, which is APP followed by six or more digits. Every mobile run requires an app. On the desktop target, the device settings and app are ignored.
A run uses these settings as its defaults. To override any of them for a single run, pass --target, --device-name, --os-version, or --app. Setup steps and the full list of accepted app formats are in Mobile Testing. These defaults describe local devices. A testrun run --remote run picks its device from the grid catalog with the same two flags (--device-name and --os-version).

Bug detection

bug_detection controls whether the agent watches for product bugs, not test failures, while it authors steps. When it is on, the agent can flag suspicious behaviour during the run, such as a broken flow, a wrong value, or an unexpected error. Kane CLI investigates each suspicion and either rejects it (the run continues and nothing fails) or confirms it as a product bug:
  • off (default): the agent does not watch for product bugs.
  • 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 setting applies to authoring steps only. Replayed steps do not need it, because a failed replay is always investigated automatically. To override the saved value for a single run, pass --bug-detection <off|stop|continue> to kane-cli run, kane-cli testmd run, or kane-cli testrun run. The setting appears as Bug Detection in the TUI Config screen and in the kane-cli config show output.

Assertion and capture controls

  • kane-cli config set-assertion-mode dom|visual: how assertions are checked. The default is dom, which falls back to vision when needed. Override it for one run with --assertion-mode dom|visual on run or testmd run.
  • kane-cli config set-final-validation on|off: turns the synthesized final checkpoint (cp_final) on or off. The default is off. Override it for one run with --final-validation on|off on run or testmd run. This setting works independently of action/testing mode, so keep writing explicit assertions at the end of your objectives.
  • kane-cli config set-network-ws on|off and set-network-sse on|off: experimental capture of WebSocket and SSE traffic. Both are off by default. run also accepts --network-ws and --network-sse. SSE capture works in Chromium only. testmd run and testrun run do not accept these flags.

Code Export

Code export turns a run into runnable code after a successful Test Manager upload. It supports Python and JavaScript, and it is on by default. A value saved in the code_export block of tui-config.json overrides the default. There is no kane-cli config subcommand for code export. Change it in one of these ways:
  • The TUI: open the config menu, choose Code Export, and switch enabled and skip_validation on or off. The TUI saves the change to tui-config.json.
  • Per-run flags on kane-cli run:
    • --code-export to turn it on for this run only
    • --code-language <lang> to pick the output language (python or javascript; default python)
    • --skip-code-validation / --no-skip-code-validation to skip or run the worker-side validation after code is generated
Code export needs a Test Manager upload, and a project and folder that you configured or that Kane CLI picked by default. The mode setting does not affect uploads; it controls only agent behaviour. 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 keeps state out of your everyday browser, 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: Kane CLI creates the directory under ~/.testmuai/kaneai/chrome-profiles/<name> and saves the path. 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 in tui-config.json. It is the right choice for CI and other environments without a display.

Window Size

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

Chrome environment variables

A few environment variables control how Kane CLI finds and launches Chrome. Kane CLI reads them from the environment, not from tui-config.json, which makes them handy for CI and one-off overrides. CDP is the Chrome DevTools Protocol, which Kane CLI uses to connect to Chrome. The CDP timeout and retry settings affect only temporary launch failures, where 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.

Context sync environment variables

Sharing the context graph uses the following environment variables. It never reads these values from tui-config.json. Two places on disk belong to sharing and are not touched by a settings reset:

Resetting Settings

To reset persistent settings to defaults, delete the config file:
Kane CLI creates a new file with default values the next time it saves 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/
  • Context sync credentials and caches under ~/.testmuai/kaneai/context-sync/ (use kane-cli context sync remove <name> to delete a location’s keys)