Skip to content

Privacy policy

This page describes the current app’s data paths and user choices. Provider privacy, payment, and legal terms remain governed by the policies published by the relevant provider and operator. Source code cannot establish actual server retention periods or refund outcomes.

  • Core features do not require a VoiceHotkey cloud account.
  • API keys, preferences, dictionaries, and history are stored locally by default. Commercial licensing also uses online device binding and status checks.
  • Your Mac sends cloud recognition and LLM requests directly to the ASR / LLM services you configure.
  • Third-party analytics and crash telemetry are not enabled by default, and there is no default transcript analytics upload.
  • Local Only Mode restricts non-loopback ASR / LLM and pauses updates. It does not block license requests or explicit model downloads.
  • Payment channels are temporarily closed. Payment information for existing orders remains governed by the relevant purchase provider’s privacy policy.
Data Location
ASR / LLM API keys, license key, trial and clock-protection state macOS Keychain
Preferences, word replacements, user commands including auto-learned entries UserDefaults
History text, actions, and metadata history.json and history.json.bak under ~/Library/Application Support/com.yeahhe365.VoiceHotkey/History/
Auto-learning observations, including phrases, actions, and counts AutoLearnedCommandFrequencies.json in the app’s Application Support; older installs may use a VoiceHotkey/ directory
Local models, runtimes, and download caches Application Support and other local model directories
Live microphone audio Memory / temporary processing; recognized text can be retained in history

See History for count / age limits. Exported text, subtitles, clipboard content, and system backups are managed separately and are not cleared with app history.

Cloud ASR can receive recorded audio or file audio. Enabled and configured cloud polish, intent, or translation models can receive transcripts, utterances, selected text, and enabled context. ASR / LLM keys authenticate requests to the corresponding provider; they are not sent to the VoiceHotkey license service. Each model provider defines its own retention, use, and deletion policy.

New installations default to real recording, and current Settings has no Demo switch. Legacy or test Demo configurations skip the microphone / ASR but do not automatically disable later LLM processing. Cloud polish or translation can still receive demo text and context.

The VoiceHotkey operator provides https://voicehotkey.pages.dev/api/activate, /api/check, and /api/deactivate through Cloudflare Pages / D1.

  • Activation sends the license key, device ID (normally the hardware UUID, with a locally generated and stored fallback), Mac name, platform, and app version.
  • Status checks / deactivation send the license key and device ID.
  • The server stores license status / device limit, bindings and the device information above, activation and last-seen timestamps, and active status to manage seats and license validity.

This flow does not contain ASR / LLM API keys, audio, or transcript content. Activated Pro installations can check status in the background, and Local Only does not block these requests. Deactivation marks a device binding inactive; it does not delete license or device records. The current implementation has no automatic deletion schedule, and this page promises no retention deadline. For server data questions, contact support without posting keys or personal information publicly.

  • Microphone: live recording.
  • Accessibility: global hotkeys, text insertion, key injection, and window actions.
  • Speech Recognition: Apple Speech.
  • Reminders / Calendar full access: requested only for corresponding system actions; you can decline. Ordinary dictation does not need them.

Reminders and events are saved to a default writable system list / calendar and may sync according to system account settings. Opening apps / files / URLs and running Shortcuts can trigger the target app’s or workflow’s own permissions and network behavior. The current version does not execute arbitrary Shell commands.

  1. Clear unused API keys in each voice-model and LLM configuration. LLM keys are shared per provider.
  2. In History, choose to clear all entries rather than only the current filter. This clears the app’s primary history file, backup, and legacy migration data. It does not clear exports, learning observations, or system backups.
  3. Delete unwanted word replacements and custom commands. Deleting a dictionary entry does not clear the learning observation file.
  4. Deactivate a commercial license on the License page to remove the local key and attempt to release its online seat. Stay online when doing this. A failed request may leave the cloud seat occupied; contact support if needed.
  5. For further local cleanup, fully quit the app, then inspect and clear its com.yeahhe365.VoiceHotkey UserDefaults domain, the Application Support directories above, and its Keychain items with that service identifier. Older installations may also leave com.playground.VoiceHotkey preferences / Keychain items and learning files under ~/Library/Application Support/VoiceHotkey/. Removing model directories requires downloading models again before reuse.

Deleting VoiceHotkey.app alone does not automatically erase preferences, Application Support, or Keychain. Deactivating a key does not clear trial state or other Keychain entries. Only remove items you have confirmed belong to this app. Third-party services, the license server, exports, and system backups need separate management.

See Contact & feedback. Hide API keys, license keys, device identifiers, and sensitive text in public reports. Use a suitable support channel when personal data is needed.