v0.1.31

Documentation

v0.1.31

Keys

Keys live in your OS keychain, are never displayed again, and can be tested with one token before you trust them.

On this page

Provider keys

Settings → Providers picks the default LLM provider and model (see Extract for the seven and their billing). For a keyed provider, the API key section shows where the current key comes from — session, environment, keyring, sealed file, or none — and offers:

  • Use for this session — overrides everything until the app quits.
  • Save — persists to the OS keychain.
  • Test — spends one token and reports the model, latency in milliseconds, and prompt/completion token counts. A 401 is the diagnosis; the provider’s own error is shown verbatim.
  • Clear session key — back to the persisted stack.

The app never displays a stored key. Paste a new one to replace it.

Other credentials

Settings → Keys covers everything that is not an LLM provider:

Group Credentials
Search engines Brave, Exa, SerpAPI, Serper API keys; the SearXNG instance URL
Site extractors A GitHub token; Reddit app credentials (id, secret, a User-Agent string)

Each row shows its source badge. An environment variable wins over a stored value — the row says whose value is in play, and env-sourced keys are marked “may be stale”. Stored values are never shown again; paste to replace, remove with the confirm button.

Where keys live

The OS keychain: Windows Credential Manager, macOS Keychain, Linux’s Secret Service. Where a desktop has none, values are sealed encrypted into keys.json beside the config — the row’s badge says which. Nothing is sent anywhere except the provider it belongs to.

Environment variables still work and keep their CLI meaning: MAGPIE_<PROVIDER>_API_KEY for providers, MAGPIE_BRAVE_API_KEY and friends for engines, MAGPIE_SEARXNG_URL for a self-hosted SearXNG. The resolution order is flag > env > keyring > config file, so a key saved in the GUI is the fallback, not the fight.

Per-run keys

Every screen that can spend money — Scrape, Crawl, Research, Search — takes an API key (this run) field. It applies to that run’s provider only and is never stored: close the drawer and it is gone. Useful for a scoped or throwaway key, or for trying a second account without disturbing the saved one.

The monthly budget bounds everything a metered provider bills, whichever key paid for it.

v0.1.31 · updated