2.4 KiB
Privacy
Linnet is designed for sensitive conversations. Medical appointments, HR discussions, legal calls, and family situations where the stakes of surveillance are real. Privacy is an architectural constraint, not a policy.
Audio
Audio never leaves your machine. Transcription runs locally via Whisper. Tone annotation runs locally via a wav2vec2-based SER (speech emotion recognition) model. No audio is transmitted anywhere at any point.
This is true on the Free tier and the Paid tier.
Session data
Session transcripts, tone timelines, speaker maps, and corrections are stored in a local SQLite database on your machine. The database location is configurable via LINNET_DATA_DIR in .env.
Linnet does not sync, back up, or transmit session data to CircuitForge servers or any third party.
Telemetry
Linnet does not collect telemetry by default. No usage analytics, no crash reports, no feature tracking. The docs site uses Plausible Analytics (privacy-preserving, no cookies, no cross-site tracking) but the application itself does not.
Correction data
Corrections you make to transcripts are stored in a local dataset and used to fine-tune your local Whisper checkpoint. Correction data is never uploaded to CircuitForge. Retraining happens entirely on your hardware.
Translation
Translation is the only feature that contacts an external server. When you translate a session, transcript text (not audio) is sent to DeepL. DeepL's privacy policy governs how they handle that data.
If your conversations are sensitive enough that even text transmission is a concern, do not use translation.
What CircuitForge receives
| Data type | Received by CF |
|---|---|
| Audio | Never |
| Transcript text | Never |
| Tone annotations | Never |
| Session metadata | Never |
| Correction data | Never |
| License key validation | Yes (key hash only, no session content) |
| Docs site visits | Yes (Plausible, aggregated, no PII) |
Self-hosting and air-gapped use
Linnet is designed to run on your hardware without any outbound connections. For fully air-gapped operation:
- Pre-download the Whisper and wav2vec2 model weights during setup
- Set
DEEPL_API_KEY=to blank (disables translation) - Do not configure a license server endpoint
See the air-gapped deployment guide in the repo for full offline setup instructions.