# Use your Mac's built-in voices for AI agents

Every Mac ships with dozens of text-to-speech voices, and Apple offers Enhanced and Premium versions that sound more natural. The `say` command turns text into speech with any of them, entirely on the machine, with no account and no API key.

[SFCrew](https://sfcrewai.com/) is an open source app for AI teammates that do real work. You talk to each bot in chat, and you can also talk to it by voice: hold the mic to speak, have replies read aloud, or call a bot in real time. When the SFCrew server runs directly on a Mac, it can use that Mac's voices, so bots speak without any voice provider.

Updated November 4, 2026.

## What are macOS voices?

They are the system voices macOS uses for its own spoken content, such as reading selected text aloud. The `/usr/bin/say` command speaks with any installed voice and can save the result to an audio file instead of playing it, which is what SFCrew does.

More voices, and higher-quality Enhanced and Premium versions, download from Apple under **System Settings → Accessibility → Spoken Content → System voice → Manage Voices**.

## What you can do with macOS voices in SFCrew

The server renders each reply into a short audio clip with `say` and sends it to whoever is listening, so it plays on your phone or laptop like any other voice, not out of the server's speakers. The [voice and calls guide](https://sfcrewai.com/docs/voice-and-calls/) covers each feature.

- Hear replies. Choose **Speak this reply** on a message, or turn on **Read replies aloud** in a bot's settings.
- Call a bot with **Call** at the top of the chat, or have a bot call you when you ask it to.
- Talk instead of typing, using on-device speech recognition. macOS voices don't transcribe, so your words are recognized by your browser, such as Chrome, or by the SFCrew desktop app on a Mac.
- Choose any installed voice. Premium and Enhanced voices are listed first.

## When to choose macOS voices

Choose them when you run SFCrew on your own Mac and want bots to speak right away, with nothing to sign up for and nothing to install. Speech is made on the machine running SFCrew, with no vendor involved, then sent to whichever device is listening.

For voices that also transcribe, a [self-hosted speech server](https://sfcrewai.com/voice-providers/self-hosted/) keeps everything on your own hardware and works on Linux too. Hosted providers sound more natural and need a key: [ElevenLabs](https://sfcrewai.com/voice-providers/elevenlabs/) and [Fish Audio](https://sfcrewai.com/voice-providers/fish-audio/) clone voices, [OpenAI](https://sfcrewai.com/voice-providers/openai/) is the simplest, and [Cartesia](https://sfcrewai.com/voice-providers/cartesia/) is built for low latency. The [voice provider comparison](https://sfcrewai.com/voice-providers/) shows all six.

## Limits

- SFCrew only offers it when its server process runs directly on macOS. A server in Docker, including Docker Desktop on a Mac and the desktop app's **This computer** install, runs Linux inside the container, so the option doesn't appear. Linux hosts don't list it either.
- It doesn't transcribe. Hold-to-talk and calls depend on speech recognition in your browser or the desktop app, and voice notes from messaging apps reach bots without a transcript.
- macOS voices sound less natural than the best hosted voices, and there's no voice cloning.
- The voices are whatever is installed on the server's Mac. A newly downloaded voice can take a few minutes to show up.
- On the mobile app, calls can use your phone's own voices if you pick a **Device voice** in the bot's settings. Otherwise replies use this provider.

## How to set it up

This is for someone running SFCrew from source on their own Mac. The [self-hosting guide](https://sfcrewai.com/docs/self-host/) has the full instructions.

1. On the Mac, clone SFCrew, copy `.env.example` to `.env`, then run `pnpm install`, `pnpm sandbox:build` and `pnpm dev`. This runs the SFCrew API directly on macOS.
2. To use hold-to-talk and calls, set `PHONE_CALLS_ENABLED=true` in `.env` and restart.
3. Optionally download Enhanced or Premium voices under **System Settings → Accessibility → Spoken Content → System voice → Manage Voices**.
4. In SFCrew, open **Settings → Voice** and set **Provider** to **Mac voices**. There's no key to enter.
5. Pick a **Voice** and choose **Hear a sample**.

## FAQ

### Can an AI assistant use the macOS say command?

Yes. When SFCrew's server runs on a Mac, it uses `say` to turn each reply into an audio clip in the voice you pick, with no API key.

### Why don't I see macOS voices in SFCrew?

The option only appears when the SFCrew server runs directly on macOS. In Docker, even on a Mac, the server runs on Linux and can't reach `say`. Use a self-hosted speech server there instead.

### Can macOS voices transcribe what I say?

No, they only speak. SFCrew uses on-device speech recognition from your browser or the desktop app for your side, or you can switch to a provider that transcribes.

### How do I get better macOS voices?

Download Enhanced or Premium voices in **System Settings → Accessibility → Spoken Content → System voice → Manage Voices** on the server's Mac. SFCrew lists them first.

## More voice providers for AI agents

- [Compare all voice providers](https://sfcrewai.com/voice-providers/)
- [ElevenLabs](https://sfcrewai.com/voice-providers/elevenlabs/): The most natural voices, including ones you clone
- [OpenAI](https://sfcrewai.com/voice-providers/openai/): Reusing an OpenAI key you already have
- [Cartesia](https://sfcrewai.com/voice-providers/cartesia/): Fast, natural voices on calls
- [Fish Audio](https://sfcrewai.com/voice-providers/fish-audio/): Expressive voices and your own cloned voice
- [Self-hosted voice](https://sfcrewai.com/voice-providers/self-hosted/): Private, offline voice with no vendor account

## Sources

- [Apple, change the voice your Mac uses to speak text](https://support.apple.com/guide/mac-help/mchlp2290/mac)
- [SFCrew, voice and calls](https://github.com/Isuhail29/sfcrew-ai/blob/main/docs/voice-and-calls.md)
- [SFCrew, self-hosted voice settings](https://github.com/Isuhail29/sfcrew-ai/blob/main/docs/self-host-models.md#voice)
- [SFCrew, self-hosting](https://github.com/Isuhail29/sfcrew-ai/blob/main/docs/self-host.md)
