Courier
A desktop API-testing tool built with Go, React, TypeScript, and Wails. Features cURL import, live JSON syntax highlighting with CodeMirror, environment variables, and request history.
Why Courier?
Popular API tools such as Postman and Insomnia have gradually become heavier, introduced account requirements, and moved away from a local-first approach. Courier began as a lightweight alternative that runs locally and does not require an account.
Wails brings Go’s performance and a modern React interface together in a native desktop application.
Highlights
Request Management
- All major HTTP methods — GET, POST, PUT, DELETE, PATCH, HEAD, and OPTIONS.
- Collections and folders for hierarchical organization.
- Request history — Sent requests are saved automatically.
- Import and export for sharing and backing up collections.
Developer Experience
- cURL parser — Paste a cURL command to turn it into a request.
- Live JSON highlighting — CodeMirror provides syntax highlighting and error detection.
- Template variables — Dynamic requests with variables such as
{{baseUrl}}and{{token}}. - Environment management — Switch between development, staging, and production.
Design
- A dark theme based on the Catppuccin Mocha palette.
- A clean, minimal interface.
Architecture
Courier is built on Wails v2:
- Backend (Go) — HTTP client, file-system operations, and cURL parsing.
- Frontend (React/TypeScript) — Interface, state management, and CodeMirror integration.
- Storage — Data is stored locally as JSON under
~/.courier/. No cloud account is required.
Installation
Requires Go 1.21+, Node.js 18+, and the Wails CLI:
go install github.com/wailsapp/wails/v2/cmd/wails@latestgit clone https://github.com/0xydev/courier.gitcd courierwails devCreate a production build with:
wails buildThe compiled application is written to build/bin/.