> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stenoai.co/llms.txt
> Use this file to discover all available pages before exploring further.

# How on-device processing works

> Steno transcribes and summarizes your meetings using AI models that run entirely on your Mac. No audio is sent to any server.

Steno processes your recordings using two AI models that run locally on your hardware. Your audio, transcripts, and summaries stay on your Mac unless you optionally configure a cloud summarization model (see below) -- meeting content is never uploaded by default. The app does send anonymous product-usage analytics (see below), which is on by default and can be turned off in Settings.

## The processing pipeline

When you stop a recording, Steno runs this sequence entirely on your device:

```
Audio file (local)
  → Parakeet or Whisper (on-device transcription)
  → transcript.txt (saved locally)
  → Ollama (on-device LLM)
  → summary.md (saved locally)
```

In the default local configuration, no step in this pipeline contacts an external server. The models are downloaded once during setup and then run offline indefinitely. If a cloud summarization model is configured, the transcript step is sent to that provider's API instead of local Ollama.

## 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](https://ollama.com), 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?

| Request | When | Why |
| - | - | - |
| Model download | First launch / setup only | Downloads transcription and Ollama model weights |
| Update check | On app launch, then periodically | Checks `github.com/ruzin/stenoai` for new releases |
| Anonymous usage analytics | On events like recording start/stop, transcription/summarization completion, and errors | Anonymous product-usage telemetry (event names and counts only -- never meeting content); on by default, can be turned off in **Settings → Advanced** |

None of these requests include your audio, transcript, or summary content. To verify this yourself, you can monitor network traffic with [Little Snitch](https://www.obdev.at/products/littlesnitch/) 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/`:

```
stenoai/
├── recordings/      # .webm audio files
├── transcripts/     # .txt verbatim transcripts
├── output/          # .md summaries and notes
└── models/          # transcription model weights
```

Ollama model weights are stored separately in `~/.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.

***

<Accordion title="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.
</Accordion>

<Accordion title="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.
</Accordion>

<Accordion title="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.
</Accordion>

<Accordion title="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.
</Accordion>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.