Courier

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.

Visit project
GoReactTypeScriptWailsCodeMirror

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:

Terminal window
go install github.com/wailsapp/wails/v2/cmd/wails@latest
git clone https://github.com/0xydev/courier.git
cd courier
wails dev

Create a production build with:

Terminal window
wails build

The compiled application is written to build/bin/.

Commands

Pages

Links