Docs

Kaloko

Download
Markdown with pictures (.zip)Docusaurus folder (.zip)VitePress folder (.zip)MkDocs folder (.zip)Offline HTML (.zip)PDFChangelog as JSON
Pages

Configuration file

kaloko.config.yml sits in the root of the repository and tells the CLI where your flows run. kaloko init writes a commented one; kaloko doctor checks it. Its format is qawalk.config.v1, and schema, org and environments are required.

schema: qawalk.config.v1
org: acme
project: shop
scenarios: [qa/flows/*.yml]
environments:
  local:
    base_url: http://localhost:3000
  staging:
    base_url: https://staging.acme.test
    access:
      basic: { user_env: STAGING_USER, password_env: STAGING_PASSWORD }
    accounts:
      member: { user: qa@acme.test, password_env: MEMBER_PASSWORD }
  production:
    base_url: https://acme.com
    readonly: true
    blocked_paths: ["/account/**"]
walk:
  browsers: [chromium]
share:
  expires_days: 30

Top-level keys

KeyWhat it holds
schemaalways qawalk.config.v1
orgthe organization's slug on kaloko.app
projectthe Kaloko project for runs; default: the repository's name
scenariosglob patterns of scenario files
outputthe run folder (default tmp/kaloko)
environmentswhere flows run (below)
browserchannel (a Playwright channel such as chrome; empty = the bundled Chromium) and port of the shared browser (default 9333)
walkdefaults for every run: concurrency (languages at once, 1–16), browsers, color_schemes, reduced_motion, forced_colors, display_modes
capturedefaults for every scenario: record, trace
evaluatorsthe semantic evaluator jev and the vision evaluator (below)
shareurl (default https://kaloko.app), token_env (default KALOKO_TOKEN), expires_days (default 30)
docschangelog and docs settings (below)
productswhat you release and version as a whole (below)

Environments

Each key under environments is a name you use with kaloko start --env.

KeyWhat it holds
kindapp (default) or design (a folder of live HTML steps)
base_urlthe address, or one per language with a default fallback; ${VAR} is filled from the environment (review apps)
readonlytrue for production: the CLI only reads, never signs in to back offices, never creates data
blocked_pathspath globs a read-only run never opens
allowed_post_pathspath globs a read-only run may still POST to (a cart)
may_create_datafalse forbids creating data (default true)
accessprotection in front of the whole environment: basic (user_env, password_env), headers (service tokens), client_certificate, origins that receive them
accountspeople who sign in, keyed like the scenario's account: user or user_env, password_env, totp_env, storage_state (a sign-in saved by kaloko auth save)
mailthe mailbox: provider (mailpit, script, none), url, user_env, password_env, address, script, options, auth
appthe app under test per platform: android, ios, electron, desktop, windows
serve, fixtures, tokens_modedesign environments: the folder of steps, JSON fixtures, the token mode
html_viewexperimental: keep a static HTML view of every capture

Evaluators

KeyWhat it holds
evaluators.jev.api_key_envthe variable with your own evaluator key (default TYPESAFE_API_KEY)
evaluators.jev.hostedwithout a local key, evaluate through your plan's allowance (default true); false uses only your key
evaluators.jev.thresholdspass and fail scores
evaluators.jev.model, base_url, max_state_chars, signals, concurrencyfiner settings, rarely needed
evaluators.visionthe second evaluator that looks at the screenshot (provider anthropic, key in ANTHROPIC_API_KEY); false turns it off

Docs and products

KeyWhat it holds
docs.dirdocs sources (default docs)
docs.changelogthe changelog file (default CHANGELOG.md)
docs.stylekeep-a-changelog or release-notes
docs.version_sourceauto, git-tag, package.json, release-please, changesets, semantic-release, pyproject, cargo, gemspec, manual
docs.languageslanguages of the docs; the first is the originals'
docs.frameworkauto, docusaurus, vitepress, mkdocs, nextra, plain
docs.publishwho reads: members, domain or public (the last two need an admin)
docs.imagesviewport and locale (reader or a language) of the pictures
products.<slug>name (text or per language), version (source, path, pattern), docs, project or projects, modules, reference_env, default_scenario, publish

Without products, the project is the product.

Secrets

Secrets never go into the config. Wherever one is needed, the config names an environment variable (password_env: STAGING_PASSWORD, { env: CF_ACCESS_CLIENT_SECRET }). Kaloko reads the value from:

  1. the environment of the process,
  2. .env next to kaloko.config.yml,
  3. ~/.config/kaloko/.env.

A variable already set wins over the files. Values are removed from captured HTML, page text and console output. kaloko doctor says which named variables are missing. The token for sharing is KALOKO_TOKEN unless share.token_env says otherwise; see Roles and tokens.

On this pageOn this page