Why autocurl
Why autocurl combines the universal reliability of curl with structured JavaScript definitions, human-readable .autocurl files, and interactive terminal execution.
Developers reach for curl because it is fast, ubiquitous, and has zero moving parts. It runs everywhere—from your local terminal to containerized CI/CD pipelines.
However, managing more than a handful of curl commands quickly breaks down:
- Shell history is ephemeral and hard to search.
- Scratchpads and Markdown documents suffer from corrupted quotes and unescaped characters.
- Complex JSON payloads and authentication tokens get tangled up in messy shell scripts.
API clients like Postman or Insomnia solve organization, but introduce heavy GUI footprints, account logins, proprietary cloud storage, and massive JSON export files that ruin version control.
autocurl delivers the ideal middle ground: write structured request collections in JavaScript, version-control them as clean, human-readable .autocurl files, and trigger requests instantly through an interactive terminal runner.
Core Philosophy: Three Clear Phases
Instead of forcing you into a proprietary format, autocurl separates your API workflow into three simple, transparent stages:
1. Author in JavaScript (requests.js)
Define URLs, HTTP methods, headers, and request bodies as typed or structured JavaScript objects. Use variables, loops, helper functions, and process.env secrets natively.
2. Version in Plain Text (requests.autocurl)
Compile your definitions into clean, readable multi-line curl commands separated by simple comment headers. These files live right in your git repository alongside your codebase.
3. Run Directly with Native cURL
Execute requests through an interactive keyboard-navigated picker or pass flags like --run and --dry-run directly from your terminal. Under the hood, autocurl executes standard system curl.
Postman JSON vs. .autocurl in Git
When teams commit Postman or Insomnia exports to git, even a tiny URL or header tweak generates huge diffs filled with internal UUIDs, timestamps, and deeply nested metadata.
With autocurl, every request is plain text. A one-line URL edit produces a clean, readable one-line git diff:
❌ Postman Collection Export
@@ -124,18 +124,18 @@
- "id": "4a71f08e-28c9-4b61-9c88-29bf33ef4a01",
+ "id": "b93c8d10-38e2-47c1-8419-f538e19e0b12",
- "raw": "https://api.dev/v1/users",
+ "raw": "https://api.dev/v2/users",
- "updatedAt": "2026-10-02T18:24:00Z",
+ "updatedAt": "2026-10-03T09:12:00Z"
✔ autocurl Plain Text Diff
@@ -3,2 +3,2 @@ # List users
- curl -X GET "https://api.dev/v1/users"
+ curl -X GET "https://api.dev/v2/users"
Your team reviews actual API changes in pull requests—not database schema noise.
Designed for Developers, Scripts, and AI Agents
Because .autocurl files are standard plain text curl statements:
- AI Agents & LLMs: Language models can read, generate, and edit
.autocurlfiles effortlessly without needing proprietary schemas or heavy JSON wrappers. - CI/CD Pipelines: Automated workflows can invoke requests without launching a headless browser or heavyweight runner.
- Zero Lock-in: If you ever decide to stop using autocurl, your
.autocurlfiles remain validcurlcommands that run anywhere.
Ready to get started? Head over to the Getting Started Guide to set up autocurl in under two minutes.