The processing pipeline
When you stop a recording, Steno runs this sequence entirely on your device:What runs on your Mac
Transcription — Parakeet or Whisper Steno transcribes with one of two on-device engines. Parakeet (the default) runs via MLX on Apple Silicon and produces a live transcript while you record. Whisper (large-v3-turbo) is an optional alternate for the full 99-language set, selectable in Settings → Transcribe. Both run entirely in-process — the model weights are stored under ~/Library/Application Support/stenoai/ and there is no transcription API call.
Summarization — Ollama
Steno bundles Ollama, which manages and runs small language models locally. When Steno starts, it launches a local Ollama server that by default listens only on 127.0.0.1 (loopback). All summarization and query requests go to http://localhost:11434 — they do not leave your machine unless OLLAMA_HOST is overridden in your environment.
What network requests does Steno make?
None of these requests include your audio, transcript, or summary content. To verify this yourself, you can monitor network traffic with Little Snitch or macOS’s built-in
nettop while Steno is processing a recording.
Where your data is stored
All data lives in~/Library/Application Support/stenoai/:
~/.ollama/models/ (Ollama’s default location).
Using a cloud model (optional)
Steno optionally supports OpenAI, Anthropic, AWS Bedrock, or a custom API endpoint (“Cloud API” in Settings) as an alternative to the local Ollama model, plus a “Private Server” mode that points at a remote Ollama instance you control. If you configure one of these in Settings → AI, your transcript and any notes you’ve typed for that meeting (not audio) are sent to that provider’s API for summarization. Organizations can also connect Steno to a self-hosted adapter under Settings → Organisation, which proxies summarization requests server-side. As with the other cloud options, this sends the transcript (and notes) off-device but never the audio. Cloud and organization modes are opt-in, off by default, and clearly indicated in the UI. If you work with confidential data, use the local model.Does Steno send any telemetry or usage data?
Does Steno send any telemetry or usage data?
Yes, anonymous product-usage analytics are on by default — event names like “recording started” or “summarization completed,” plus error types and an anonymous install ID. This never includes audio, transcripts, notes, or summaries. You can turn it off in Settings → Advanced. Separately, the only other outbound requests from the app are the update check and model downloads during setup. If you enable a cloud summarization model, transcripts are sent to that provider’s API.
Can I use Steno in an air-gapped environment?
Can I use Steno in an air-gapped environment?
Yes, after the initial setup. Download the app and models on a connected machine, then move the installation to your air-gapped environment. All processing runs offline.
Is Steno suitable for confidential recordings?
Is Steno suitable for confidential recordings?
Steno is designed for professionals handling confidential audio. Because all processing is local and no meeting content (audio, transcript, notes, or summary) leaves your device by default, it is suitable for use cases where sending audio to a cloud service would be inappropriate — clinical consultations, legal calls, financial briefings. If you need zero network activity at all, turn off anonymous usage analytics in Settings → Advanced. Review your organization’s specific policies before using any recording tool for regulated data.
Where does Ollama run?
Where does Ollama run?
Steno bundles a copy of Ollama and starts it as a local process on
127.0.0.1:11434 when the app launches. It is not accessible from the network. When you quit Steno, Ollama is stopped.