Beacon

A keyboard-first desktop API client

A fast alternative to Postman and Insomnia, for people who would rather drive their tools from the keyboard than reach for the mouse every few seconds. Compose requests, chain them into flows, script tests, mock APIs, and pull a response apart in an interactive tree — all stored on your machine.

Install script (recommended)

curl -fsSL https://raw.githubusercontent.com/quizuncle/beacon-releases/HEAD/install.sh | bash

One command. It picks the right build for your Mac, installs it to /Applications, and clears the macOS quarantine flag, so Beacon opens straight away. Read install.sh first

Homebrew

brew tap quizuncle/beacon && brew install --cask beacon

If you already use brew — it picks the right build too, and keeps Beacon updated alongside your other casks.

Or download the DMG

Apple SiliconSHA-2562a6871778347…
2a6871778347078dcdc476dff484bed0b75f36eff6deaa56ee1bea9be2e67824
IntelSHA-256cc83c0db5738…
cc83c0db5738d5f0d4cc2c78761c879783aa3d558a80b1250606d11faad8793e

Not sure which chip you have? Apple menu → About This Mac.

All releases

The manual route: drag Beacon into Applications yourself. This is the one path that needs a one-time xattr -cr /Applications/Beacon.app — the two above run it for you. Full install notes

macOSLocal-firstNo account neededFree

What it does

Six things worth knowing

Compose

A request builder that keeps up with typing. Method, URL, params, headers, auth and body sit in one builder, and the URL bar doubles as a command palette.

  • GraphQL bodies with the query, its variables and a schema explorer in one split view
  • OAuth 2.0 — including Authorization Code with PKCE — alongside bearer, basic and API-key auth
  • Environment, collection and global variables, resolved in that order — with a runner data row overriding all three
  • Code generation to ten targets: cURL, HTTPie, JS (fetch), Node (axios), Python, Go, Ruby, PHP, C# and Java

See what happened

Most clients hand back a formatted blob you scroll through once. Beacon makes a response something you can interrogate — and watch change.

  • Living Response — an interactive JSON tree, searchable by key or value
  • Pin a field and it gets charted across sends, beside live latency and status tiles
  • Re-send and the tree marks every changed value, with signed deltas on the numbers
  • Watch mode re-fires on an interval, turning one endpoint into a small live dashboard
  • A request timeline splitting the response into waiting (TTFB), downloading and total

Organize

Collections that stay tidy without a lot of clicking, and a way in from whatever you already have.

  • Auth and headers inherited down the collection → folder → request chain
  • Find and replace across every collection at once — URLs, headers, query params and JSON or raw bodies — preview the changes, then apply them
  • Import from Postman v2.1, OpenAPI 3, Swagger 2 or HAR
  • Or paste a curl command straight into the URL bar and it fills the tab, ready to send

Go further

The work you would normally export to a second tool for, run against the request you already built.

  • Collection runner with data-driven iterations — attach a CSV or JSON file and each row becomes one iteration
  • Flows: chain requests on a visual canvas, feeding one response into the next
  • Load testing with live latency percentiles (p50, p95, p99), throughput and error rate
  • Compare two finished load tests to confirm a change actually made the endpoint faster

Everything else in the box

The supporting cast, all included, all running on your machine.

  • A local mock server for endpoints that don't exist yet
  • A WebSocket client for connecting and exchanging messages
  • Monitors that re-run a saved request on an interval while Beacon is open, firing a native notification when its state changes
  • Request history — your last 200 sends — plus a per-domain cookie jar that captures and replays automatically

Yours, on your machine

Local-first is the default rather than a setting you have to go and find.

  • Collections, environments, history and settings live in a SQLite database on your Mac
  • Variable values you flag as secret are encrypted at rest through the macOS keychain; the rest of that database is plain text
  • An account is optional — everything but Cloud Sync and publishing a share works without one
  • Optional sync encrypts variable values you flagged as secret, plus auth credentials, credential headers and URL userinfo, before upload; names, URLs, bodies and scripts go up as plaintext, so a token pasted into a body or a script is not protected
  • Ten themes across three groups — Dark, Light and Bloom — and a ⌘K palette for new tab, theme, layout and the side panels

Worth knowing: Beacon is an indie project without a paid Apple Developer subscription, so it is not notarized, and macOS shows its standard warning for any unsigned app from the internet. The install script and Homebrew both clear that for you, so most people never see it. Only the manual DMG route hits it — one xattr -cr /Applications/Beacon.app in Terminal and it opens normally from then on. What that command does

Questions

Before you download

Is Beacon free?

Yes. Beacon is free to download and use, and no account is required. Free today. A pro tier is planned; nothing that is free now will be moved behind it.

Why does macOS say Beacon "cannot be opened"?

Most people never see this. Beacon isn't notarized by Apple — that needs a paid $99/year Apple Developer subscription this indie project doesn't have, so macOS shows its standard warning for any unsigned app from the internet. Both the install script and Homebrew clear the quarantine flag as part of installing, so Beacon opens straight away. Only the manual DMG route hits the warning: run xattr -cr /Applications/Beacon.app in Terminal once and it opens normally after that.

Does Beacon send my requests or data anywhere?

The requests you send go straight from your machine to whatever API you point Beacon at, and nothing about them passes through a server we run — that holds whatever else you have switched on. It is a claim about sending requests, not about storage. Collections, environments, history and settings are stored locally in a SQLite database on your Mac. With no account, Beacon makes exactly one network call of its own: an hourly check against the GitHub releases API to see whether a newer version exists. Signed in, it also refreshes your sign-in token against Google Firebase. Cloud Sync is optional and off until you turn it on, and it does change the storage answer: it encrypts the variable values you flagged as secret, along with auth credentials, credential headers and URL userinfo, before upload — but the names, URLs, non-credential headers, bodies and scripts of your saved requests are uploaded as plaintext we could read. There is no automatic secret detection, so a credential pasted into a body, a script, or a variable you did not flag goes up in the clear. Responses and request history are never uploaded either way. The privacy policy spells all of this out.

Does Beacon run on Windows or Linux?

Not currently. Builds are published for macOS only — Apple Silicon and Intel, both with every release — and there is no committed date for other platforms yet.

What do I need to run it?

macOS 12 (Monterey) or later, on either an Apple Silicon or an Intel Mac. Both builds ship with every release, and both the install script and Homebrew detect which chip you have and fetch the right one. You only need to know yourself if you are picking a DMG by hand.

Is Beacon open source?

No — the app's source is private right now. The compiled builds are free and public on GitHub (quizuncle/beacon-releases), but the source itself isn't open at this point.

Free today, and local by default.

Version 0.1.0 for macOS 12 or later, on Apple Silicon and Intel.