Helena π±¶
A small, single-binary, cross-platform API client β a native alternative to Postman and Bruno, built with Go + Fyne. One self-contained ~35 MB binary, no Electron, no telemetry.
Get started β View on GitHub β
Why Helena¶
- Plain-text, version-controllable storage. Collections, folders, and requests are stored as Open Collection YAML on disk β diff and commit them like any other source. Credentials are kept out of that YAML (externalized to a store under your config dir), so a committed collection carries no cleartext secret.
- Variables everywhere.
{{variable}}resolution in the URL, query, headers, and body, across a layered scope chain (global β collection.envβ collection β environment β folder β request β script overlay), with a live resolved-URL preview. - A real request builder. Method, URL, query, headers, and bodies β JSON / XML / text / GraphQL / form-urlencoded / multipart / file β with Validate + Format for JSON and XML.
- Native, not a browser. Helena always sends the request and flags responses a browser's CORS policy would have blocked, instead of refusing to send.
Highlights¶
- :material-lock: **Nine authentication schemes** β Basic, Bearer, API Key,
OAuth 2.0 (client-credentials & auth-code + PKCE), OAuth 1.0a, WSSE, AWS
Signature v4, HTTP Digest, and NTLM. See [Authentication](guide/auth.md).
- :material-broadcast: **Real-time** β stream Server-Sent Events and open
bidirectional WebSocket sessions, both hand-rolled on the standard library.
See [Real-time](guide/realtime.md).
- :material-language-javascript: **Scripting & assertions** β pre/post
JavaScript hooks with a curated `helena.*` API (env, interpolate,
sendRequest, cookies, hashing, β¦), a `test()`/`expect()` framework, and
declarative no-code assertions. See [Scripting](guide/scripting.md).
- :material-console: **Chaining & a headless runner** β run other requests
first and feed their results forward, and run a whole collection from the CLI
with `helena run`.
Install¶
Grab a binary from the releases page, or build from source:
See Getting started for a first request and Packaging for platform builds.
Documentation
This site is generated from the Markdown in the repo's docs/ directory.
Deep, per-package design notes live alongside the code in each module's
README.md / STRUCTURE.md / WORKFLOW.md.