~/.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:(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 intui-config.json:
Updating Settings
Window Size
The Chrome window is launched at the configured resolution. Update it from the CLI: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:- The
--url <url>flag onkane-cli run/kane-cli testmd run. - (test.md only) the
url:key in the file’s frontmatter. - The configured
default_url, set withconfig set-url.
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
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:
<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
folder_id and folder_name. Select a project first. OAuth and basic-auth profiles both work.
To set a folder ID without the picker:
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, runkane-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.
--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 ofmode above: mode controls agent behaviour, while these choose which device a run drives.
target:desktop, the default, runs Chrome.emulatorruns a virtual Android device andsimulatora virtual iOS device. Web runs are not affected by the mobile settings.device_nameandos_version: the device a mobile run uses, named exactly askane-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-nameand--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 isAPPfollowed by six or more digits. Every mobile run requires an app. On thedesktoptarget, the device settings andappare ignored.
--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.
--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 isdom, which falls back to vision when needed. Override it for one run with--assertion-mode dom|visualonrunortestmd 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|offonrunortestmd 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|offandset-network-sse on|off: experimental capture of WebSocket and SSE traffic. Both are off by default.runalso accepts--network-wsand--network-sse. SSE capture works in Chromium only.testmd runandtestrun rundo 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 thecode_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
enabledandskip_validationon or off. The TUI saves the change totui-config.json. - Per-run flags on
kane-cli run:--code-exportto turn it on for this run only--code-language <lang>to pick the output language (pythonorjavascript; defaultpython)--skip-code-validation/--no-skip-code-validationto skip or run the worker-side validation after code is generated
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
~/.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:
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 thewindow_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 fromtui-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 fromtui-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:tui-config.json. It does not affect:
- Authentication credentials under
~/.testmuai/kaneai/profiles/(usekane-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/(usekane-cli context sync remove <name>to delete a location’s keys)