Skip to content

Local Only Mode

Local Only Mode (LocalOnlyPolicy) rejects non-loopback ASR/LLM endpoints and pauses Sparkle update checks. Use with Apple Speech, built-in on-device ASR (SenseVoice / Whisper Turbo / Fun-ASR-Nano / Parakeet), or a loopback-hosted gateway.

Settings → General → Privacy → Local Only Mode.

UI preview: General · Privacy · Local Only Mode
Settings → General → Privacy (UI replica · ts-03-local-only.webp)

Only loopback counts (Spokenly-style):

Allowed Not allowed
localhost Public hostnames
127.0.0.0/8 (e.g. 127.0.0.1) LAN IPs (192.168.x.x, …)
::1 .local names

Pointing Base URL at a NAS on your LAN fails Local Only — it must be loopback on this Mac.

Allowed Blocked / skipped
Apple Speech Fixed cloud ASR (e.g. Doubao official)
Built-in on-device ASR: SenseVoice, Whisper Turbo, Fun-ASR-Nano, Parakeet TDT Other public ASR / LLM
Loopback Base URL ASR / LLM
Local history & settings Automatic update checks (paused)

If the active engine needs the internet, dictation fails with a prompt to switch to Apple, a built-in on-device model, or localhost. Cloud polish / translation / intent are skipped.

  1. Use Apple or any built-in on-device engine (SenseVoice / Whisper Turbo / Fun-ASR-Nano / Parakeet), or set a compatible Base URL to http://127.0.0.1:….
  2. Turn Local Only on.
  3. For polish / translation, point those LLM Base URLs at a local gateway too.

Picking a local model alone may still allow update checks. Local Only enforces non-loopback ASR/LLM blocks and pauses updates. First-time weight downloads still need the network; inference can be offline afterward.