0.14.0
Released 7 October 2026Added
- An admin of a paid organization can start another organization under the same e-mail: Plan & billing has the link, and the sign-up page says the new one gets the same address. Free organizations and code trials without a card do not open the way, so they cannot be chained.
--jsonis a contract now: stdout holds only the JSON answer, progress and notes go to stderr, and a failed command ends stderr with one line{"error":{"message":"…","code":"…","next":"…"}}. New onshare(the run id and its URL),evaluate,build,validate,scenarios,auth list,browser statusandci preview-url.- Two more exit codes: 3 when the Kaloko service cannot be reached (no connection at all), 4 when the token is missing, invalid, expired or revoked. 0, 1 and 2 mean what they meant; an error answer from the service other than 401 is still 1, and
docs check,driftanddesign lintstill report their findings with 1. - Lists page through the API: runs, comments, notifications, tokens and the audit log take
?cursor=and name the next page inX-Next-CursorandLink: <…>; rel="next". Bodies keep their shape. The MCP toolslist_runs,list_notificationsandlist_commentstakecursorand answernext. kaloko runs --allfollows those pages to the last run instead of stopping at 300;--limit Nlists at most N and--cursorgoes on where a list stopped.kaloko export run|steps|docs|live|designas sub-commands, each with its own--help. The flag forms (export --live,--design,--format,--scenario) keep working.kaloko affected --fail-if-none: exit 1 when nothing is affected.--checkdoes the same and says it has a new name; workflows written bykaloko ciuse the new one.- Durations take units:
--timeout 90s,ci preview-url --wait 10m,share --expires 72h,prune --older-than 14d. A bare number means what it meant before. default_token_modein a design environment names its default token mode;tokens_modestill works.- A step picture in docs and changelogs plays the step's recording. When the accepted run has a recording (
kaloko walk --record), the picture shows a play button; a click or tap plays it without sound, and the picture comes back at the end. Nothing plays by itself.?media=videoin a step reference says the step needs its recording, andkaloko docs checkwarns when the run has none;?media=imagekeeps the picture only. It works in "Walk through it step by step" too. - Recordings that published docs or a changelog play are kept as long as they play them, instead of expiring after 30 days, and they count in storage.
- Settings → Security → Experiments shows how Clef triage does in your organization: useful findings per kind, how well its probabilities hold, findings turned into comments, the time to the first review on runs with findings and without, and triage requests per useful finding. The same numbers come from
GET …/findings/statsand MCPget_triage_report. - Exports carry the recordings: Markdown, Docusaurus, VitePress and offline HTML get a player with the MP4 and WebM in
assets/, MkDocs a picture linked to the recording; the PDF keeps the picture. MCPresolve_step_imageandGET …/steps/resolveanswervideowith the MP4 and WebM addresses and the length. - Required approvers are asked by name. When a run waits for them, each approver whose e-mail is in your Slack workspace gets a direct message with a link straight into review mode, and Slack and Teams channels that take the new event "Waiting for approval" name them (Teams workflows cannot write to one person). One reminder follows after 24 hours if nobody has decided; the hours, the reminder and quiet hours are in Settings → Integrations, and admins can read and change them through
GETandPATCH /api/v1/orgs/<org>/approval-messages. Slack connected earlier needs to be connected once more so Kaloko can look people up. - Hosted runs start after a deploy.
kaloko schedule hook <id>(or Settings → Integrations → Hosted runs → Run after a deploy) makes a trigger URL and a secret, shown once. APOSTwith the secret as a bearer token, an HMAC signature of the body (X-Kaloko-Signature) or Netlify's signed deploy notification starts the run at the next quarter hour. The hosted runs guide has copy-paste examples for curl, Vercel and Netlify. Business plan and up, at most 30 triggers an hour per schedule, each one in the audit log. - An invitation that cannot be delivered says so. When the mail provider reports a hard bounce or a spam complaint, the pending invitation shows "Address bounced: check the spelling" in Settings → People and in the Share dialog, the person who sent it gets an inbox item, and Kaloko stops sending it.
GET /invitationsnames the mark inbounced. - Links to the pricing page, the comparisons, the situations, the "for…" pages and every guide show their own card in Slack, LinkedIn, X and other previews: the page's title and description on the Kaloko card, in the page's language. The other pages keep the default card.
Changed
- New API tokens start with
kal_. Tokens that start withqwk_keep working until they expire. - Domain verification shows the TXT record
_kaloko.<domain>withkaloko-verify=…. A_qawalkrecord added earlier still verifies the domain. - Names from before the rename print one line on stderr when used: the
qawalkcommand,QAWALK_*variables,qawalk.config.ymland~/.config/qawalk/.env. They keep working;kaloko doctorlists them with their new names. - Public docs and changelogs take their language from
?lang=, as the app does. Links, the canonical address, hreflang, the sitemap and llms.txt use it; the former?language=(docs) and?locale=(changelog) redirect there, so old links keep working.











