Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

bitti

CI PyPI npm License: MIT Documentation

Plain-text web tests that run on real Chrome. One native binary drives the browser in-process through navigera: no Node, no transpile step, no driver process, and no model at run time.

# tests/shop.bt
base http://127.0.0.1:8000

before each
  goto /shop
  click --selector "#cookie-accept"

scenario "Adding a product counts it in the cart" @smoke
  click --text "Add to cart"
  expect --selector "#cart-count" text is 1
  goto /cart
  expect text "Your cart"
$ bitti run tests --junit report.xml
PASS  tests/shop.bt:7  Adding a product counts it in the cart  (557 ms)
1 passed, 0 failed in 0.9 s

API tests are .bt files too: a scenario of http steps and their checks runs with no browser at all, in milliseconds (API tests without a browser).

Start

  • Install: Every way to install bitti, and how to check it worked.
  • Quick start: One .bt file, one scenario, one run.
  • Worked examples: The example suites in the repository, as they are: a shop, a sign-in, data rows and shared flows, and a Kubernetes Job.

Guides

Concepts

  • Flows, sign-ins and hooks: Steps shared between scenarios: flows, optional steps and conditions, signing in once per run, the hooks around scenarios, and handing a step to a person.

Reference

  • The .bt format: Every top-level line, step and variable a .bt file can hold.
  • Checks: expect: The expect table: every check a step can make, and how each comparison reads.
  • Checks: soft, ax and screenshots: --soft failures that fail a scenario at its end, matching the accessibility tree, and screenshot baselines and diffs.
  • Running: bitti run and its flags: which scenarios run, and in which browsers and apps.
  • Reports and evidence: What a run prints and saves: console, jsonl, JUnit, Allure, the HTML report, video, traces, watch and shards.
  • Failures and fixes: What a failure prints, fixing locators with bitti fix, and the tools that write scenarios: navigera, from-session, record, mcp.
  • Config: bitti.toml: What a run takes by default from bitti.toml, the app it starts first, and named environments.
  • bitti –help: The commands and each one’s options, exactly as this build prints them.

Agents

  • For AI agents: What an agent gets: the skill, the MCP server with the browser and the test tools, and these docs as markdown.
  • Skill: The guide bitti skill gives an agent, as this version prints it.

Benchmarks

  • Results: bitti against Playwright Test on Node and on Bun, on Playwright’s own TodoMVC suite, from one CI run: time, CPU, and runner and browser memory.
  • Where bitti is not ahead: Each measure on which Playwright beat bitti in the same run.
  • The 40-scenario suite: bitti’s 40-scenario suite and its Playwright Test twin, on a shop and a gauntlet of awkward pages, which CI runs on three operating systems.

Project

  • Changelog: What changed in each release, and what is on the way.
  • Contributing: How to build bitti against navigera, run its tests, and keep its performance gate green.
  • Security: What bitti protects and how, and how to report a problem.

Built from commit c612c9e, 2 commits after v0.3.0, of 2026-11-13; bitti --version says bitti 0.3.1. These docs are ahead of the 0.3.0 release: what the changelog lists under Unreleased is not in 0.3.0 yet.