Files
VoiceStudio/docs/install/macos.md
T
Palash DebnathandClaude Opus 4.8 f757b77a59 docs(install): clarify macOS Gatekeeper "damaged" workaround (#134) (#155)
Reword the macOS install doc's Gatekeeper section so it's findable by the
exact symptom ("App is 'damaged' / can't be opened"), and spell out both the
GUI path (right-click -> Open, or System Settings -> Privacy & Security ->
Open Anyway) and the Terminal path (xattr -dr com.apple.quarantine ...).

Explains WHY macOS shows "damaged" (the build isn't notarised yet, so it gets
quarantined) and why the workaround is safe (downloaded from the official
repo/Releases). Proper fix remains Apple Developer signing + notarisation,
already wired in release.yml behind the documented secrets.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-30 08:12:35 +05:30

5.0 KiB
Raw Blame History

OmniVoice Studio — Install on macOS

This page is self-contained: follow it top to bottom and you'll end up with a working OmniVoice Studio install on macOS (Apple Silicon or Intel).

Prerequisites

  • macOS 12 (Monterey) or newer — Apple Silicon or Intel.
  • Python 3.11+brew install python@3.11 (or use pyenv / the system Python if you already have ≥3.11).
  • Buncurl -fsSL https://bun.sh/install | bash.
  • Xcode Command Line Toolsxcode-select --install.
  • FFmpeg (used by the dubbing + capture pipelines) — brew install ffmpeg.

Optional but recommended:

Install (from source)

git clone https://github.com/debpalash/OmniVoice-Studio.git
cd OmniVoice-Studio
bun install
bun run desktop-prod

The first launch builds the Tauri shell, creates the Python venv via uv, syncs deps, and downloads model weights (~2.4 GB). The splash screen shows live progress for every step.

Install (pre-built .app)

Download the latest DMG from the Releases page, double-click to mount, drag OmniVoice Studio.app into /Applications.

If the first launch shows "app is damaged and can't be opened", that's macOS Gatekeeper — see the next section.

App is "damaged" / can't be opened (Gatekeeper)

If you see "OmniVoice Studio.app" is damaged and can't be opened. You should move it to the Trash, the app is not damaged — that misleading message is macOS Gatekeeper blocking an app it can't verify (issues #134, #72).

Why: the build isn't yet notarised by Apple, so macOS quarantines any copy downloaded from the internet outside the App Store and shows the "damaged" message. This is expected for open-source unsigned builds — releases are only notarised once the project's Apple Developer ID signing pipeline is configured (see "For maintainers" below). The workaround below is safe because you downloaded the app from the official repo / Releases page; if you want belt-and-braces, verify the SHA-256 against the *.dmg.sha256 checksum on the release page first.

Fix — GUI (no terminal): in Finder, right-click (or Control-click) the app → Open → click Open again in the dialog. Or go to System Settings → Privacy & Security, scroll to the security section, and click "Open Anyway" next to the OmniVoice Studio prompt.

Fix — Terminal: after dragging the app into /Applications, run:

xattr -dr com.apple.quarantine "/Applications/OmniVoice Studio.app"

(Adjust the path if you put the app somewhere other than /Applications. The broader xattr -cr "/Applications/OmniVoice Studio.app" also works — it clears all extended attributes rather than just the quarantine flag.)

That clears the quarantine attribute so Gatekeeper stops blocking the launch — a one-time fix per install.

For maintainers — enabling notarised builds

The release workflow (.github/workflows/release.yml) is already wired to code-sign + notarise the macOS bundle; it activates automatically once these repository secrets are set (it skips signing — producing today's unsigned build — when they're absent):

Secret What
APPLE_CERTIFICATE Developer ID Application cert, exported as a base64-encoded .p12
APPLE_CERTIFICATE_PASSWORD password for that .p12
APPLE_SIGNING_IDENTITY e.g. Developer ID Application: Your Name (TEAMID)
APPLE_ID Apple ID email used for notarisation
APPLE_PASSWORD an app-specific password for that Apple ID
APPLE_TEAM_ID your 10-char Apple Developer Team ID

Requires a paid Apple Developer account ($99/yr). Once set, downloaded DMGs open without the quarantine step.

Apple Silicon vs Intel

  • Apple Silicon (M-series): OmniVoice automatically picks the mlx-whisper and mlx-audio backends where available — these use the Apple Neural Engine and Metal Performance Shaders for ~2× the throughput of the CPU path.
  • Intel macs: falls back to faster-whisper (CTranslate2) on CPU. Still fast; just no ANE acceleration.

The picker in Settings → Engines shows which backend is active.

The default install works without a token, but diarization (the pyannote/speaker-diarization-3.1 model) is gated and the larger voice-design engines also download faster with a token attached.

  • Open Settings → API Keys in the app.
  • Or set the env var export HF_TOKEN=hf_… in ~/.zshrc.

Full details: docs/setup/huggingface-token.md.

Troubleshooting

Hit a wall? See docs/install/troubleshooting.md.

The in-app error UI (the React error boundary that fires on backend errors) includes an "Open docs for this error" button — that button deeplinks back into this docs tree at the right section for the error class.