VoxFlow Local is a dictation and voice-workflow application for macOS. Hold a key, speak, and release to place text into the application that has focus. Speech recognition runs on the Mac, and basic text cleanup uses local rules. A language model is an additional processing choice.

VoxFlow Local on GitHub carries the source, installation guide, releases, and issue tracker.

The local processing path

WhisperKit runs the speech-recognition model on the Mac. The result can pass through rules that tidy punctuation, spacing, repeated words, and fillers. These rules are implemented in Swift and Python; basic cleanup does not require a text-generating language model.

Polishing and structured actions can use a locally running model through Ollama. The configured model and endpoint matter: Ollama also supports hosted models, so its name alone does not establish that processing stays on the device. The source includes a rules-only option for polishing and rule-based fallbacks when model processing is unavailable.

Local processing describes where a particular operation runs. It does not mean the whole workflow has no external connections. Installing software or downloading models, using a hosted provider, exporting to Notion, and inserting text into another application each have a separate data boundary.

Where information can leave

Path What happens
On-device recognition and rule-based cleanup Audio is transcribed on the Mac; basic cleanup uses local code without an external inference provider.
A locally running model Text is sent to a model service on the same Mac. This depends on the configured endpoint and model, including whether the model is hosted elsewhere.
A configured remote provider Text can leave the Mac for polishing or structured actions. A configured fallback chain can reach a remote provider after a local provider fails or is skipped.
Remote speech recognition Selecting an external speech provider sends audio. The separate fallback from the Python speech engine requires explicit configuration and is off by default.
Export or insertion Notion export sends text to Notion. Text inserted into another application is then subject to that application’s handling, including any synchronization or further transmission.

Setup downloads are different from sending dictated content for processing. Neither should be folded into an unqualified claim of no egress.

Redaction and approval

The private-API workflow offers a redacted preview and binds approval to the submitted text and the choice to send raw or redacted content.

The configurable provider chains use a different path. The reviewed code applies pattern-based redaction to providers it classifies as remote, but it does not enforce the same per-request preview and approval token on that path. Configuring a provider is therefore a different decision from approving each payload. The current implementation should not be described as requiring a fresh approval before every external request.

Pattern matching can identify some formatted information, such as email addresses or social security numbers. It can miss names, client identity, facts about a matter, and legal strategy. A redacted result is not a determination that disclosure is appropriate.

What remains on the Mac

VoxFlow keeps diagnostic receipts under the user’s Library folder. By default, these receipts include dictated text. A retention setting can instead record a short digest and character count, or the character count alone.

A digest reduces readable content in the receipt; it is not encryption or anonymization. Someone with a candidate phrase can hash it and compare the result. Other receipt metadata remains.

Rejected captures can also be retained as audio. In the reviewed source, that store keeps up to eight clips by default and can be disabled with the VOXFLOW_KEEP_REJECTED_AUDIO=0 environment setting. The receipt-text setting does not govern this separate audio store, and disabling future retention does not itself delete existing files.

These are separate copies to account for when assessing access, backups, retention, and any applicable preservation duties. Local storage does not by itself establish privilege or exclude a record from discovery.

What it includes

  • On-device speech recognition through WhisperKit and Core ML.
  • Rule-based text cleanup and optional processing through a locally running model.
  • A workspace for transcription, review, and structured actions.
  • A personal dictionary that supplies vocabulary to speech recognition.
  • Reusable workflow chains and optional external integrations.
  • Provider configuration and macOS Keychain storage for credentials.

Keychain storage addresses credentials. It does not determine how a provider handles the content sent to it.

Recognition vocabulary

The personal dictionary supplies terms to the speech model through prompt tokens. This gives users a way to provide names and specialist vocabulary during recognition. It does not guarantee that a term will be transcribed correctly.

The mechanism ships. A curated legal term set does not. Users supply the dictionary today. Party names, citations, and other consequential wording still need review.

Assess the selected processing path, fallback providers, receiving application, and retained copies together. Local processing can reduce disclosure to an external inference provider, but professional confidentiality, privilege, work product, and discovery each require their own analysis. The tool supplies controls; it does not decide whether a particular communication is protected or may be disclosed.

The related analysis of AI and protected legal communications examines why the circumstances and the material claimed matter.

Install from source

VoxFlow Local is distributed as source code. Follow the current installation guide for system requirements, model downloads, microphone and Accessibility permissions, and signing options.

VoxFlow is an independent open-source project by Zola Valashiya, maintained in its own public repository.

Review scope: This description follows a September 10, 2026 source-code review at commit 3cc226b5bc8227829ed7879c5bcc3a0b4c60f115. It is not a packet-capture test, an audit of installed dependencies, or a verification of a particular user’s configuration.

Correction, September 10, 2026: An earlier version treated Ollama as necessarily local, overstated approval controls for external requests and the protection of diagnostic digests, and said rejected-audio retention had no off switch. This account corrects those descriptions at the same reviewed source commit; it does not describe newly added controls.

Disclaimer: Informational only; not legal advice.