Skip to content

← Products· beta

OxSay

Dictate, record calls, voice a script. All on your Mac: local, private, with an MCP server for agents.

What it does

Hold ⌃Space in any app, speak, let go, and the text appears at the cursor. A short dictation is text about a second after release: 0.9 s measured when the unfinished tail was short.

When a call starts in Zoom, Teams, Google Meet, FaceTime, Slack and a few other apps, OxSay asks whether to record it. It records two channels, your microphone and everything the Mac plays, so nothing joins the call and guests outside your company are no problem. You get a transcript with who said what, and notes written by a local language model: summary, decisions, action items, open questions, key numbers. On Apple Silicon with macOS 15 the other side's voices are told apart.

Drop an audio or video file on the Transcribe page and get text and subtitles. Write or paste a script and get a voiceover in a voice you cloned from a short clip or described in words. A separate tool strips noise and room sound from the voice in a video or audio file.

The speech recognizer is NVIDIA's Parakeet TDT 0.6B v3, which covers 25 European languages including Russian and English, running through whisper.cpp. Whisper large-v3-turbo is an optional second recognizer with 99 languages. The app ships in English and Russian.

Privacy: what stays on the Mac, what leaves it

Recognition, notes, voices and cleanup run in local processes. The daemon listens on 127.0.0.1 only and refuses requests a web page could send to it.

The only network traffic is to huggingface.co for model files and to github.com for the installer, release packages and the update check. The repository says the hosts in the code are these two and the loopback address.

What is stored, and where: meetings (both audio channels, transcript, notes), transcripts (text only, readable by you alone), voices, models and your glossary live under ~/Library/Application Support/ox-say. Dictated text is held in memory and never written to disk. The audio of a file you transcribe is not kept. Meeting audio is deleted after 7, 30 (default) or 90 days, or never; transcripts and notes stay until you delete the meeting.

Two things to know. A copy of each meeting's notes goes to a notes folder you choose, ~/Documents/ox-say Meetings by default, and macOS uploads that folder if "Desktop & Documents" iCloud sync is on; the app warns you in Settings. And the uninstaller's --purge leaves meetings, transcripts and the glossary in place, so you delete those folders yourself.

Recording other people is your responsibility: the law in some places requires everyone's consent. The app can copy a sentence for that to the clipboard.

How it gets names right

Speech recognizers fumble names. A Russian speaker saying "OxSay" gets «Воксей» on the page; a product name becomes two ordinary words.

OxSay keeps a glossary of corrections, each one a pair: what the recognizer wrote, and what you meant. After every recognition, in dictation, file transcripts, meeting transcripts and the MCP transcribe tool, the matching words are replaced with the right ones. Matching is whole-word, ignores case and treats ё as е.

Nothing enters the glossary silently. An agent that understood a wrong word can file a pair with ox-say vocab add "Воксей" "OxSay". The pair stays a candidate until you approve it, or until it has been filed from enough different sentences (two for a multi-word phrase, three for a single word). Approving, editing, rejecting and deleting need a person at a terminal or the app's Glossary page; the command refuses to run piped. A rejected pair stays rejected, and an agent cannot bring it back. The glossary stores a short fingerprint of each sentence a pair was seen in, never the sentence.

For AI agents

The daemon serves MCP on http://127.0.0.1:8094/mcp and an OpenAI-compatible API (/v1/audio/speech, /v1/audio/transcriptions). The installer registers the MCP server with Claude Code if it is installed; for another client:

claude mcp add --transport http --scope user ox-say http://127.0.0.1:8094/mcp

Tools: speak, transcribe, voice management and design, long-form produce, voice_clean, and read-only meeting access (meetings_list, meeting_get, meetings_search). Meeting text quotes other people, so the docs tell clients to treat it as data, never as instructions.

Install and requirements

curl -fsSL https://raw.githubusercontent.com/anatolykoptev/ox-say/main/get.sh | sh

The installer downloads the release for your Mac, checks its SHA-256, fetches checksummed models, starts the daemon as a LaunchAgent, runs a speak-and-transcribe self-test and installs the app. It never uses sudo. First launch asks for the microphone and Accessibility, which lets the app paste into other apps.

  • macOS 14.2 or later. The installer checks and changes nothing on an older Mac.
  • Apple Silicon, or an Intel Mac with AVX2. The tested Intel case is a 2019 to 2020 MacBook Pro with a Radeon Pro 5300M, 5500M or 5600M.
  • ffmpeg from Homebrew.
  • Disk: about 2.5 GB at install on Apple Silicon, about 2.3 GB on Intel. The notes model (2.7 to 5.7 GB) downloads the first time you ask for notes; the studio voice (about 3 GB) and Whisper (1.6 GB) are opt-in.
  • Memory on Apple Silicon: under 16 GB gets transcripts only, no notes; 16 to 23 GB gets the 4B notes model; 24 GB or more gets the 9B notes model and the studio voice.
  • Separating the voices of a call and voice cleanup need macOS 15 or later. On an Intel Mac the far side of a call is one speaker, the notes model runs on the CPU and a run can take many minutes, and the studio voice is not available.

Status and licence

Version 0.1.32, released 2026-11-14. It is pre-1.0, with a release most weeks. Planned and not built yet: live captions during a meeting (#527) and a live meeting transcript for your own agents (#549).

OxSay's code is Apache-2.0. Each model keeps its publisher's licence: the default models are Apache-2.0 and CC-BY-4.0, and Parakeet is CC-BY-4.0 from NVIDIA. The studio voice model's card forbids impersonation, fraud and disinformation and asks that AI-generated speech be labelled as such.

Get OxSay

Download from GitHub releases (macOS packages for arm64 and x86_64 with a SHA256SUMS file). Source. Issues.

Numbers

  • about 2.5 s Time to transcribe 6 minutes of audio on an Apple M5 Pro. Source: ox-say docs/engines.md; one measurement, release v0.1.32; as of 2026-11-14.

Documented: ox-say docs/engines.md and README on origin/main, read 2026-11-14.