bolla replaces your API client, load tester, mock server, and CI runner with a single plain-text file. Define a request once β it does everything else. No account. No cloud. Fully offline.
Core features always on. Every module independently toggleable β disable what you don't use and it vanishes completely.
Send HTTP, GraphQL, WebSocket and SSE requests. Switch environments (local/staging/prod) in one click. Store your collection as YAML files alongside your code.
CoreWrite a scenario file, set a concurrency ramp, hit run. Watch live p50/p95/p99 latency and requests-per-second as the test runs.
CoreOne command turns your collection into a running HTTP mock. Returns hand-written examples or auto-generates realistic fake data (emails, UUIDs, pricesβ¦) β no extra config.
OptionalAdd bolla --ci to any pipeline. Set latency budgets, error rate limits and throughput minimums. bolla exits 0 on pass and 1 on failure. JUnit XML included.
Client credentials, auth code + PKCE, device flow. Tokens are cached and refreshed automatically. Presets for Google, GitHub and Microsoft.
OptionalPoint bolla at any OpenAPI 3.x spec and it generates a full collection instantly. Drift detection alerts you when live responses stop matching the spec.
OptionalEvery run is saved. Browse and filter past results, compare two runs side-by-side, or export as CSV, HTML, or JSON.
OptionalPaste a cURL command and get a bolla file back. Export any request as Python, JS or Go code. Security linter catches hardcoded secrets and missing auth.
OptionalBring your own Anthropic API key. bolla suggests assertions from any response and explains load test results in plain English. Your key never leaves your machine.
OptionalFrom a single YAML file to load test results, CI pass/fail, and mock server β all in one tool.
Real-time p50/p95/p99 latency and RPS as the scenario runs
bolla --ci exits 0 on pass, 1 on fail β works with any CI system
One command spins up a full mock from your collection
Export any request as cURL, Python, JS, or Go. Detect hardcoded secrets instantly.
A .bolla.yaml file is readable in any editor, diff-able in any PR, and drives every capability from one definition.
bolla isn't just another API client. It's the one tool that replaces the whole stack β with no compromises on any of the four.
| Capability | Bruno | Postman | k6 | Apidog | |
|---|---|---|---|---|---|
| Request builder & collections | β | β | β | β | β |
| Load & stress testing | β | β | paid | β | β |
| Built-in mock server | β | β | cloud | β | β |
| CI gates (exit 0/1) | β | bru CLI | Newman | β | paid |
| OpenAPI import + drift detection | β | import only | β | β | β |
| Plain text files, version-controlled | β | β | β | β | optional |
| Fully offline, no account | β | β | β | β | β |
| Free, no seat limit, ever | β forever | β | 1 user | β | 3 users |
| One definition drives all of the above | β | β | β | β | partial |
A single static binary. Download and run β no npm, no Docker, no runtime to manage.
Grab the pre-built binary for your platform and put it in your PATH.
Supports: macOS (Apple Silicon & Intel) Β· Linux (x86_64 & ARM64)
No seat limits. No subscriptions. No usage caps. No account. Ever.