BLXAde

Security & privacy

How BLXAde handles credentials, masking, local data, and license access.

BLXAde is designed as a local-first desktop app with a minimized webview capability set. This page summarizes user-facing security behavior — not a penetration-test report.

Local-first data

DataWhere it lives
Project filesYour project folder on disk
Canvas workfile.blxade/workspace.blxcanvas inside the project
App preferencesLocal SQLite (blxade.db) under app data
Recent pathsLocal profile config
Terminal full historyProcess RAM only
Provider API keysOS keyring (native vault)
Auth refresh / license leaseOS keyring under BLXAde auth accounts
Access tokenNative memory only (never SQLite/webview)

The webview does not receive broad filesystem APIs; workspace operations go through narrow native commands.

Authentication and license

  1. OAuth (GitHub/Google) via Bitslix for identity.
  2. Separate license lease authorizes productive use (lifetime license).
  3. Leases are Ed25519-signed, installation-bound, ~7-day lifetime, refreshed online.
  4. Offline use requires a still-valid cached lease + matching profile.
  5. Denial or expiry clears productive access and returns to login.

Suspend when access closes

Closing the access gate suspends or kills productive native work already in progress, including:

  • live PTYs and orchestration terminals
  • Global Agent work
  • Loop children and future scheduler fires
  • Voice capture / playback / realtime / TTS
  • Hermes runtimes, pending MCP calls, project preview servers

Loops and the loopback MCP server start only after access opens again. Reopening does not resurrect killed processes. Local project files remain on disk.

Debug Skip login never ships in release builds.

Provider secrets

  • OpenRouter, OpenAI, xAI, Groq, fal, etc. use isolated keyring accounts.
  • Optional ~/.blxade/.env is a one-shot import — deleted after successful import of all recognized keys.
  • Keys are not written into canvas documents, logs, or React IPC payloads.

YouTube Music OAuth

Tokens are native keyring-backed. Replaying onboarding or certain Danger Zone actions disconnect YouTube so setup can run cleanly again. Disconnect does not delete your Google account.

Terminal masking

Before agent tools or UI egress paths consume terminal output, BLXAde normalizes ANSI and masks common secret patterns (keys, tokens, private key blocks). Treat masking as a defense in depth, not a reason to print production secrets in terminals.

MCP local server

  • Bound to 127.0.0.1 only
  • Bearer authenticated
  • Descriptor under ~/.blxade/run/ is ephemeral
  • External principals get a reduced tool set vs Global Agent / Agent CLI

Do not expose the MCP port beyond loopback (the product is not designed for that).

Notifications privacy

Notification events reject arbitrary free text dumps of prompts, paths, and credentials. History is retention-capped and age-pruned.

What Danger Zone does not delete

Clearing history / replaying onboarding does not remove:

  • project folders and source code
  • canvas workfiles (except as separate explicit user deletion on disk)
  • general preferences
  • unrelated credentials (except documented YouTube disconnect cases)
  • agent hooks / MCP install state (unless you remove them in Agents settings)

Good practices

  1. Store projects in directories you control and back up.
  2. Prefer environment/secret managers over pasting keys into agent chats.
  3. Review agent CLI permissions before enabling broad hooks.
  4. Keep the app updated; early versions change security surfaces.
  5. On shared machines, log out and avoid Skip-login debug builds.

On this page