Skip to content

Getting Started

Terminal window
curl -sSf https://raw.githubusercontent.com/codesoda/bugatti-cli/main/install.sh | sh
Terminal window
git clone https://github.com/codesoda/bugatti-cli.git
cd bugatti-cli
sh install.sh

The installer places the binary at ~/.bugatti/bin/bugatti and creates a symlink at ~/.local/bin/bugatti. If ~/.local/bin isn’t on your PATH, the installer will tell you what to add to your shell profile.

Re-run the same install command. The installer replaces the existing binary.

1. Create a test file:

smoke.test.toml
name = "Smoke test"
[[steps]]
instruction = "Create a file called hello.txt with the contents 'Hello, world!'"
[[steps]]
instruction = "Read hello.txt and verify it contains 'Hello, world!'"
[[steps]]
instruction = "Delete hello.txt and verify it no longer exists"

2. Run it:

Terminal window
bugatti test smoke.test.toml

3. See the results:

bugatti 0.2.0
RUN 20260403-141523-001-a1b2
TEST smoke.test.toml — "Smoke test"
STEP 1/3 ... Create a file called hello.txt with the contents 'Hello, world!'
OK 1/3 (4.2s)
STEP 2/3 ... Read hello.txt and verify it contains 'Hello, world!'
OK 2/3 (3.1s)
STEP 3/3 ... Delete hello.txt and verify it no longer exists
OK 3/3 (2.8s)
DONE 3 passed, 0 warned, 0 failed (10.1s)

Each step is sent to an AI agent which figures out how to verify it and reports back with OK, WARN, or ERROR.

Terminal window
bugatti test

This discovers and runs all *.test.toml files recursively, skipping _-prefixed files (those are for includes).

If your project needs setup commands or a server, create bugatti.config.toml in your project root:

[commands.server]
kind = "long_lived"
cmd = "npm start"
readiness_url = "http://localhost:3000/health"

Bugatti will start the server, wait until it’s ready, run your tests, then tear it down. See Configuration for the full details.