Skip to content

Executables

Every build can ship as standalone executables that launch a browser with the extension preloaded. No store, no review queue: the download is the distribution.

Formats

One executable per browser and platform:

PlatformArtifact
Windows<browser>-extension-windows.exe
macOS<browser>-extension-macos.app, delivered as a tar.gz
Linux<browser>-extension-linux, with the icon as a sidecar png

Extension sources

The launcher carries its extension one of two ways:

Embedded. The extension bytes live inside the binary. The download is the whole product.

Remote. The launcher fetches the extension over HTTPS, verified by sha256 integrity, into a per-user cache. Remote mode is not supported for Firefox.

The download updates itself on next launch, so a shipped launcher does not go stale.

macOS and notarization

Windows and Linux executables download straight from any build. The macOS app appears only after notarization at promote time, because an unsigned bundle trips Gatekeeper on the recipient's machine.

Notarization runs on the platform's side with rcodesign on Linux. No Mac is required. It is two phase: the promote signs and submits, then a sweep completes the notarization when Apple answers.

Notarize once, promote forever

Remote mode makes the launcher byte deterministic per project, browser, and channel. The consequence: notarize once, and every later promote refreshes the extension zip behind the same signed app. On a cache hit the promote publishes without contacting Apple at all.

When it fails

  • A macOS download missing from a build is not an error. It appears after promote-time notarization, not at build time.
  • A launcher that starts but loads nothing in remote mode points at the integrity check: the fetched zip did not match its sha256. Re-promote.
  • Firefox has no remote mode. A Firefox launcher is always embedded.
  • A Gatekeeper block on macOS means the bundle was obtained outside the notarized download, for example a rebuilt tar. Ship the artifact the platform produced.

Next