A lightweight, native macOS menu bar translator. Select text, get translation.
English | 中文
Translation Modes
- Select & Translate: Select text in any app, get instant translation in a floating panel
- OCR Screenshot: Capture a screen region and translate the recognized text
- Clipboard Translation: Translate whatever's on your clipboard
- Manual Input: Type or paste text to translate on demand
Built-in Translation Services
| Free | API | LLM | System |
|---|---|---|---|
| Google Translate | DeepL | OpenAI | Apple Translation |
| Bing Translate | Baidu | Anthropic | (macOS 15+, on-device) |
| Youdao Translate | NiuTrans | DeepSeek | |
| Caiyun | OpenRouter | ||
| DeepLX | 智谱 GLM | ||
| Ollama (local) | |||
| LM Studio (local) |
And More
- Smart language detection across 14 languages, auto-flips translation direction
- Text-to-speech playback for translated text using Apple's built-in speech synthesis
- Non-activating floating panels that never steal focus from your current app
- 3-tier text grabbing: Accessibility API → AppleScript → Clipboard fallback
- Fully customizable keyboard shortcuts
- Built-in auto-updater via Sparkle
- ~5 MB app size: Pure Swift 6, only 3 dependencies. No Electron, no WebView.
- ~50 MB background memory: Systematic memory leak prevention for long-running sessions.
- Privacy-friendly: Apple Translation runs entirely on-device.
- Open source: AGPL-3.0 licensed. Issues and feedback welcome.
MoePeek is a personal, AI vibe-coded side project. It works well for my own use cases, but it's not designed to be a polished, production-grade tool — there are plenty of edge cases in text selection and window handling that commercial tools have spent years ironing out, and MoePeek likely misses many of them.
If you need a more robust solution, these apps are excellent:
- Clicknow — feature-rich, actively maintained selection translator
- PopClip — the gold standard for macOS text selection actions, with a rich extension ecosystem
Download the latest .dmg or .zip from GitHub Releases and drag MoePeek.app into /Applications.
On first launch, MoePeek walks you through an onboarding flow to grant the required permissions:
- Accessibility: Needed to grab selected text via the Accessibility API
- Screen Recording: Needed for OCR screenshot translation
| Action | Shortcut |
|---|---|
| Translate Selection | ⌥ D |
| OCR Screenshot | ⌥ S |
| Manual Input | ⌥ A |
| Clipboard Translation | ⌥ V |
All shortcuts can be customized in Settings → General.
If you use PopClip, you can translate selected text with a single click from the PopClip bar.
Install the extension:
- Make sure MoePeek is installed and running.
- Download
MoePeek.popclipext.zipfrom the latest release and unzip it. - Remove the quarantine attribute so macOS allows the extension to load:
xattr -dr com.apple.quarantine /path/to/MoePeek.popclipext
- Double-click
MoePeek.popclipext— PopClip will install it automatically. - Select any text in any app → click the MoePeek icon in the PopClip bar.
Note: If PopClip shows an error, also make sure MoePeek.app itself has been un-quarantined — see the FAQ below. (Related issue)
The app is not notarized with Apple, so macOS Gatekeeper may block it. This does not mean the file is corrupted. To fix:
- Open Terminal
- Run:
sudo xattr -r -d com.apple.quarantine /Applications/MoePeek.appThen launch the app as usual.
Reset all user preferences to restore the first-launch state:
defaults delete com.nahida.MoePeekThen relaunch the app.
Issues and PRs are welcome! A few things to know:
- I work a day job, so I may not respond immediately — I typically batch-process issues and PRs on weekends.
- Feel free to fork and build your own version. Per the AGPL-3.0 license, derivative works must also be open source.
MoePeek was inspired by Easydict and Bob. Thank you for paving the way.
Built with:
- KeyboardShortcuts by Sindre Sorhus
- Defaults by Sindre Sorhus
- Sparkle for auto-updates

