Security

Private by architecture, backed by concrete security choices.

No telemetry, no phone-home

The app sends no usage data or analytics of any kind. Everything it does reach the network for is listed below — the same list as Privacy & your data, rendered from one definition.

Every network call Zerds makes. There are no others.
CallWhenWhere to
Model downloadThe first time you use a model, then cached and run offline. Nothing of yours is sent — it is a file download, and every file is checked against a build-time checksum before it is used
  • huggingface.co
  • hf-mirror.com (fallback, if huggingface.co is blocked)
  • github.com (k2-fsa/sherpa-onnx, microsoft/onnxruntime releases)
  • raw.githubusercontent.com (uhstray-io/zerds-public — ours)
  • registry.ollama.ai (only for Ollama models)
Model catalogueWhen you open the model list in Settings, to see which models exist and how big they are. Asks for a file listing — nothing of yours is part of the request
  • huggingface.co
ONNX Runtime downloadFirst run, if the runtime is not already present. Checked against a build-time checksum before it is used
  • github.com (microsoft/onnxruntime releases)
Bug report / feedback formOnly when you click Report a bug or Send feedback. Opens a form in your browser — Zerds sends nothing to it, and attaches no recording, transcript or log
  • docs.google.com (opened in your browser, not by Zerds)
Your remote AI endpointOnly if you configure one. Transcript text goes to the server you chose
  • whichever endpoint you configure — nothing by default
DiscordOnly during a Discord recording you start
  • discord.com
Store ownership confirmationOn launch, on a Microsoft Store build. Windows confirms the licence you already own — no Zerds account, and no transcript, recording or filename is part of it
  • Windows licensing services — no Zerds server

The local dashboard is locked down

The optional web dashboard binds to 127.0.0.1 only, is read-only, escapes all HTML (XSS-defended), and sets a Content-Security-Policy. It can't be reached from other machines.

Verified, bounded downloads

Model downloads are checked against expected digests before use, with size caps to guard against decompression bombs. Archive extraction is hardened against path-traversal ("zip-slip").

Safe by construction

  • All database queries are parameterized — no SQL injection surface.
  • TLS connections use your OS trust store, with no insecure fallbacks.
  • External processes are spawned via argument lists, never by feeding transcribed text to a shell.

Credentials & encryption

Any stored credentials (a Discord bot token, or a bearer token for your own AI server) live in a config file restricted to your own Windows user account. The transcript database can additionally be encrypted at rest with a password you set.

Audited dependencies

The dependency tree is scanned against the RustSec advisory database; the latest review reported zero known vulnerabilities. Discord audio is decrypted end-to-end (Discord's DAVE, MLS + AES-256-GCM).