Skip to content

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:

git clone https://github.com/ideaconnect/helena
cd helena
go build -o helena ./cmd/helena

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.