An API client.
Not a platform.
The API client that lives in your git repo. AI drafts the requests, your team reviews them like code, and nothing ever touches the cloud.
→ Read: Why we built curlr.dev ?{
"id": "ch_3Nf92K2eZvKYlo2C",
"amount": 4900,
"currency": "usd",
"status": "succeeded"
}Modern API tools became platforms. curlr.dev stayed a tool.
Why we built curlr.dev
API tools stopped respecting developers. Here are the principles we won't compromise on.
Why curlr.dev?
Four things we care about. Nothing you have to ask permission for.
Local-first by default
Your requests, environments, and secrets live on your machine, not in someone else's cloud.
Built for developers, not dashboards
No forced workspaces, no sync drama, no pop-ups asking you to upgrade.
Fast, lightweight, and focused
Starts instantly. Uses minimal memory. Does exactly what you need, nothing more.
AI Features
Turn plain English into requests, auto-generate tests, and explain responses. Bring your own key.
AI that works inside your workflow.
Build, explain, fix, and test requests with the model you already pay for. No curlr account, no middleman, no extra subscription.
Requests from plain English
Describe what you need in the URL bar. curlr builds the request, edits the one you have open, or answers questions about your collection.
> get failed charges from the last 24hResponses, explained
Get a plain-English read on what a response means, then keep asking follow-ups in a chat that can update the request for you.
explain 402 card_declinedFix with AI
Hit a 4xx or 5xx and curlr proposes a corrected request, points out a missing prerequisite, or tells you there is nothing to fix.
401 -> add Authorization headerTests from real traffic
Generate meaningful test() assertions from an actual request and response instead of writing boilerplate by hand.
test("amount matches request")Scripts on demand
Turn a sentence into pre-request or post-response scripts, written against the cr scripting API.
cr.env.set("token", res.json().token)Private by design
Credentials are stripped before any context leaves your machine, and everything sent to the model is treated as untrusted.
Authorization: **** (masked)Everything you
actually need.
No login. No vendor lock-in. No surprises.
- GETSend REST, JSON, GraphQL, and HTTP requests
- POSTManage environments and variables locally
- PUTOrganize collections without cloud lock-in
- PATCHInspect headers, payloads, and responses clearly
- GETRun requests from UI or CLI
- OPTWork completely offline
$ curlr run billing.post-charge → POST https://api.curlr.dev/v1/charges 200 OK 214ms · 892 B $ curlr env list ● production (~/.curlr/envs/prod.toml) ● staging (~/.curlr/envs/staging.toml) ○ local (~/.curlr/envs/local.toml) $ curlr --offline ✓ local cache ✓ 0 network calls ✓ 0 telemetry events
How developers actually work.
Simple UI
Clean, distraction-free interface that stays out of your way.
// 3 panes. No floating modals. ├─ collections ├─ request └─ response
CLI-friendly
Works naturally with scripts, terminals, and automation.
$ curlr run collection.yaml $ curlr assert status=200 $ curlr ci --junit out.xml
Secure by design
Secrets stay local. No background sync. No telemetry.
✓ secrets on-disk only ✓ telemetry disabled ✓ background sync never
curlr.dev vs Postman.
Postman is a platform. curlr.dev is a tool. That difference is the whole point.
Individuals and teams.
Fast, private, and predictable for whatever you're building.
Building APIs solo
Prototype, iterate, and ship without fighting your tool or paying per seat.
Debugging microservices
Switch environments and replay requests across services in a single window.
Testing integrations
Automate request suites from CI with the same config you use locally.
Teaching HTTP fundamentals
No login walls between a student and their first GET request.