One ~35 MB binary. No Electron. Plain-text collections.

A fast API client you can keep in git.

Helena does everything you expect from an API client - send requests, script tests, run whole collections - but it's a single native app that opens instantly and stores everything as plain YAML you can diff and review. No browser engine, no account, no cloud.

Free and open source. Runs on Linux, macOS, and Windows.

Helena's Auth tab with a Bearer token and a JSON response
The Helena app: a collection sidebar, a POST request with a JSON body, and the 201 Created response

Everything you reach for in an API client, in a window that opens instantly.

Nine auth schemes, scripting and tests, request chaining, SSE and WebSocket, a headless CLI runner - and your collections stay as files in your repo.

Why Helena

Three things it does differently

Most API clients bundle a whole browser and keep your collections in formats that don't diff well. Helena goes the other way.

Native, no Electron

It's a real desktop app drawn with Fyne, not a packaged web page. The binary is about 35 MB and starts right away.

🗂️ Collections are just files

Collections, folders, and requests are plain YAML you can review and merge like the rest of your code. Secrets stay out of them.

🧪 Plain, testable Go

No sandbox to babysit and no surprising magic. The whole runtime is covered by go test.

What's inside

A lot of client for very little weight

🔐 Nine auth schemes

Basic, Bearer, API Key, OAuth 2.0 (with auth-code + PKCE), OAuth 1.0a, WSSE, AWS SigV4, Digest, and NTLM.

📡 Real-time

Stream Server-Sent Events and open two-way WebSocket sessions. Both are written straight on the standard library.

🔣 Variables everywhere

A layered {{var}} scope chain across the URL, query, headers, and body, with a live preview of the resolved URL.

📜 Scripting & tests

Pre/post JavaScript with a small helena.* API, plus test()/expect() and a no-code Assertions tab.

🔗 Chaining & a CLI runner

Run other requests first and pass their results forward; run a whole collection from CI with helena run.

🔄 Import & export

Import OpenAPI, Swagger, WSDL, and Postman; export to cURL, wget, fetch, Python, or Go.

See the roadmap →

Contribute

Helena is open - jump in

It's a single Go module with a clear set of rules and good test coverage, so it's an easy codebase to land a change in.

Star or fork

If Helena is useful to you, a star helps. Fork it and try a change - the build is just make build.

🐛 File an issue

Found a bug or want a feature? Open an issue - including "this was confusing" reports.

🔧 Send a PR

Read CONTRIBUTING for the setup and the project's invariants. Every change ships with tests and docs.

Have a question or an idea?

Drop a line and I'll get back to you.

Contact