Fast and simple CLI for API testing.
Aimed for developer hapiness.
Axotly makes it easy to write and run API tests with a clear and concise syntax, so you can focus on building great applications.
Install and Try Now
Expressive DSL
Tests read like clear specifications — easy to write and maintain.
Fast by Default
Run many tests concurrently with minimal overhead.
Local-first
No login, no cloud dependency — work offline and privately.
Developer-first
Clean output and clear failures you can trust.
How Axotly compares to other tools.
Axotly started as a personal project, I wanted the simplicity of curl, with the structure and assertions needed for real API testing.
| Feature | curl | HTTPie | Postman | Axotly |
|---|---|---|---|---|
| CLI-first | ✔ | ✔ | ✖ | ✔ |
| Built-in assertions | ✖ | ✖ | ✔ | ✔ |
| Local-first / offline | ✔ | ✔ | ✖ | ✔ |
| Concurrent test runs | ✖ | ✖ | ✔ | ✔ |
| Clear diff-style failures | ✖ | ✖ | ✔ | ✔ |
| No accounts / cloud required | ✔ | ✔ | ✖ | ✔ |
Install Axotly
Axotly is a single binary. No runtime, no setup, no accounts. Download the binary for your OS and start testing immediately.
Download binaries from the GitHub Releases page .
Readable tests. Clear results.
Axotly tests read like specifications. When something fails, you see exactly what failed and why.
Create a Test file "tests.ax"
TEST My first test
GET https://httpbin.org/get
EXPECT status == 200
END
TEST My second test
POST https://httpbin.org/post
Content-Type: application/json
BODY
{
"name": "Axotly",
"role": "tester"
}
BODYEND
EXPECT status == 200
EXPECT body.json.name == "Axotly"
EXPECT body.json.role == "admin"
END
Run the tests
Human readable output
axotly -f ./tests.ax
Axotly — API tests
Running 2 tests...
✓ My first test (848ms)
✗ My second test (431ms)
Failures
1) My second test
- Expected body.json.role Eq "admin"
────────────────────────────────────
Results
✓ Passed: 1
✗ Failed: 1
⏱ Total duration: 1.28s
────────────────────────────────────
Test suite completed in: 848.26ms
Diff style terminal output
axotly -f ./tests.ax -r diff
Axotly — API tests
Running 2 tests...
examples/test1.ax
✔ My first test (255.095899ms)
✖ My second test (255.928481ms)
1 body.json.role
- expected: "admin"
+ actual: "tester"
────────────────────────────────────────
✔ 1 passed, ✖ 1 failed
Completed in: 256.10ms