MoePeek: The 5MB macOS Translator That Destroys Electron Apps
What if I told you your translation app is a bloated spyware machine?
You've been there. You're deep in a technical document, a foreign API reference, or a Japanese GitHub issue. You select the text, hit your shortcut, and... wait. The fan spins up. Your MacBook heats up like a griddle. A 300MB Electron behemoth awakens from the abyss, phones home to who-knows-where, and finally—finally—shows you a translation you could have gotten faster by opening Safari.
Here's the dirty secret nobody talks about: most macOS translation tools are privacy nightmares wrapped in bloated frameworks. They ship entire Chromium browsers to display 200 characters of text. They send your clipboard to remote servers. They consume more RAM than your entire IDE.
But what if translation could be instant, private, and invisible?
Enter MoePeek—a radical reimagining of what a macOS translator should be. Built from scratch in pure Swift 6, weighing in at a ridiculous 5MB, running at a stable ~50MB memory footprint, and leveraging on-device Apple Translation so your data never leaves your Mac. No Electron. No WebView. No excuses.
This isn't just another translator. This is what happens when a developer gets angry enough to build the tool they actually want.
What is MoePeek?
MoePeek is an open-source, lightweight macOS menu bar translation utility created by developer cosyu under the cosZone organization. Born from frustration with existing solutions, it represents a deliberate rejection of the "ship a browser and call it an app" philosophy that dominates modern desktop development.
The project is "AI vibe-coded"—the creator's own words—meaning it was built rapidly with AI assistance as a personal side project. But don't let that humble description fool you. MoePeek punches massively above its weight class, delivering functionality that rivals—and often exceeds—commercial alternatives costing $30-60 per year.
Why It's Trending Right Now
Three forces are converging to make MoePeek the talk of developer Twitter:
-
The Swift 6 revolution: With Apple's latest language version bringing improved concurrency, performance, and memory safety, MoePeek demonstrates what native development looks like when you actually use modern tools properly.
-
Privacy paranoia going mainstream: After years of data breaches and AI training scandals, developers are actively seeking tools that keep their code, documentation, and communications off cloud servers. MoePeek's on-device Apple Translation (macOS 15+) answers this demand perfectly.
-
The Electron backlash: The developer community has reached a tipping point with memory-hungry, slow-to-launch "native" apps that are really just websites in a trenchcoat. MoePeek's 5MB install size is a deliberate middle finger to this trend.
Licensed under AGPL-3.0, MoePeek is fully open source—meaning derivative works must remain open, protecting the community from enclosure.
Key Features That Will Make You Switch
Four Translation Modes for Every Workflow
Select & Translate: The bread and butter. Highlight text in any application—Terminal, Xcode, Safari, VS Code, Slack—and trigger instant translation in a floating panel. The magic happens through a three-tier fallback system: Accessibility API first (fastest, most reliable), AppleScript second, Clipboard as last resort. This aggressive fallback strategy means MoePeek works where other tools give up.
OCR Screenshot: Select a screen region and translate text from images, videos, or non-selectable UI elements. Essential for translating screenshots, scanned documentation, or that one weird app that doesn't expose text through APIs.
Clipboard Translation: ⌥ V translates whatever's currently on your clipboard—perfect for automated workflows or when selection isn't possible.
Manual Input: ⌥ A opens a dedicated input panel for typing or pasting longer texts. Think of it as your always-available quick-reference translator.
Translation Engine Buffet
MoePeek doesn't lock you into one provider. The built-in engine matrix covers every use case:
| Category | Engines |
|---|---|
| Free (no API key) | Google Translate, Bing Translate, Youdao Translate |
| API (pay-as-you-go) | DeepL, Baidu, NiuTrans, Caiyun, DeepLX |
| LLM (AI-powered) | OpenAI, Anthropic, DeepSeek, OpenRouter, 智谱 GLM |
| Local AI (fully private) | Ollama, LM Studio |
| System (on-device) | Apple Translation (macOS 15+) |
The Apple Translation integration deserves special emphasis. Running entirely on Apple's Neural Engine, it requires zero network calls, zero API keys, and zero subscription fees. Your source text never touches a server. For developers handling sensitive code, proprietary documentation, or confidential communications, this is non-negotiable.
Smart Language Detection & Auto-Flip
MoePeek automatically detects across 14 languages and intelligently flips translation direction. Select Chinese text while your system is in English? It translates to English. Select English text? It translates to Chinese. No manual language pair selection. No friction.
Non-Activating Floating Panels
Here's a subtle genius feature: MoePeek's translation panels never steal focus from your current application. They're "non-activating" windows in macOS terminology. This means:
- You can keep typing in your editor while reading the translation
- No context switch disruption to your flow state
- The panel disappears when you click elsewhere—no explicit close action needed
Text-to-Speech
Using Apple's built-in speech synthesis, MoePeek can read translated text aloud. invaluable for language learners, accessibility needs, or simply verifying that your Chinese-to-English translation actually sounds natural.
Sparkle Auto-Updater
Built-in automatic updates via the venerable Sparkle framework. Set it and forget it—new features and fixes arrive seamlessly.
Real-World Use Cases Where MoePeek Dominates
Scenario 1: The Multilingual Developer
You're reviewing a pull request with Korean comments, Japanese issue references, and Chinese documentation links. Your IDE shows the code fine, but the human-language context is opaque. With MoePeek, you select any text anywhere and get instant translation without leaving your workflow. The three-tier text grabbing means even awkwardly-rendered text in custom UI components becomes accessible.
Scenario 2: The Privacy-Conscious Contractor
You're under NDA. The documentation you're translating contains pre-release product names, unreleased API endpoints, and strategic roadmap items. Cloud translation is a liability. MoePeek's Apple Translation mode processes everything on-device. Your client's secrets stay on your Mac's Neural Engine, period.
Scenario 3: The Low-Bandwidth Digital Nomad
You're coding from a café with questionable WiFi, or worse—paying per-megabyte on international roaming. Every cloud translation call burns precious bandwidth. MoePeek's on-device mode works completely offline. The 50MB memory footprint also means it won't compete with your 47 Chrome tabs for scarce system resources.
Scenario 4: The PopClip Power User
You already use PopClip as your text-selection command center. MoePeek's official PopClip extension means translation becomes a single click in your existing workflow. Select text, click the MoePeek icon in PopClip's bar, done. No new shortcuts to memorize.
Scenario 5: The Screenshot Archaeologist
A bug report arrives with a screenshot of an error message in German. The user didn't copy the text. The error is in a modal dialog you can't select from. MoePeek's OCR Screenshot mode (⌥ S) captures the region, recognizes the text, and translates it—turning a dead-end support ticket into a solvable problem.
Step-by-Step Installation & Setup Guide
Method 1: Pre-built Binary (Recommended)
The fastest path to translation nirvana:
# Download latest release
open https://github.com/cosZone/MoePeek/releases/latest
# Or use curl to fetch the latest DMG
curl -LO $(curl -s https://api.github.com/repos/cosZone/MoePeek/releases/latest | grep browser_download_url | grep \.dmg | cut -d '"' -f 4)
- Mount the downloaded
.dmgor extract the.zip - Drag
MoePeek.appto/Applications - Launch—macOS will warn about an unsigned app (see FAQ below)
Method 2: Build from Source
For the paranoid, the curious, or the contributor:
# Clone the repository
git clone https://github.com/cosZone/MoePeek.git
cd MoePeek
# Open in Xcode 16+ (Swift 6 required)
open MoePeek.xcodeproj
# Build and run (⌘R) or archive for distribution
Requirements:
- macOS 14+ (macOS 15+ for Apple Translation)
- Xcode 16+ with Swift 6 toolchain
- Apple Developer account (free) for local signing
Critical First-Launch Setup
On first run, MoePeek presents an onboarding flow for required permissions. These aren't optional—without them, core functionality breaks.
Accessibility Permission (for text selection):
# Manual grant via System Settings → Privacy & Security → Accessibility
# Or trigger the prompt by attempting to use Translate Selection
Screen Recording Permission (for OCR):
# System Settings → Privacy & Security → Screen Recording
# Required for ⌥ S screenshot translation
Fixing Gatekeeper Blocks
Since MoePeek isn't notarized (personal project, no $99/year Apple Developer Program membership), macOS will block it. This is expected, not an error.
# Remove quarantine attribute—run in Terminal
sudo xattr -r -d com.apple.quarantine /Applications/MoePeek.app
After this, launch normally. The "damaged" warning is Apple's dramatic wording for "not notarized"—the binary is fine.
Resetting to First-Launch State
Need to re-run onboarding? Or debugging permission issues?
# Nuke all preferences—MoePeek will behave like a fresh install
defaults delete com.nahida.MoePeek
REAL Code Examples from the Repository
Let's examine actual implementation patterns from MoePeek's codebase and documentation.
Example 1: PopClip Extension Installation
The PopClip integration demonstrates practical macOS security handling:
# Remove quarantine from the extension bundle
xattr -dr com.apple.quarantine /path/to/MoePeek.popclipext
What's happening here: PopClip extensions are essentially AppleScript or shell script bundles. macOS tags downloaded files with com.apple.quarantine to trigger Gatekeeper warnings. The -d flag deletes this attribute; -r recurses into directories. Without this step, macOS silently refuses to load the extension in PopClip, leading to confusing "extension won't install" behavior.
Pro tip: The -r (recursive) flag is critical because .popclipext is a bundle directory, not a single file. Many users miss this and wonder why the extension still fails after "removing quarantine from the zip."
Example 2: Application Quarantine Removal
From the FAQ, the canonical fix for Gatekeeper issues:
# Full application quarantine removal
sudo xattr -r -d com.apple.quarantine /Applications/MoePeek.app
Deep dive: The xattr command manipulates extended filesystem attributes—metadata beyond standard Unix permissions. com.apple.quarantine stores download origin information (URL, timestamp, browser). Gatekeeper checks this attribute on first launch. The sudo requirement exists because /Applications is system-owned; for ~/Applications, sudo isn't needed.
Why -r -d and not just -d? Modern .app bundles are directories containing hundreds of files. The quarantine attribute must be stripped from the bundle root and all nested executables, frameworks, and resources. A partial removal leaves Gatekeeper-triggering files behind.
Example 3: Preferences Reset for Debugging
# Complete preference deletion to restore factory state
defaults delete com.nahida.MoePeek
The technical story: macOS uses NSUserDefaults (backed by plist files in ~/Library/Preferences). The defaults CLI manipulates these plists. com.nahida.MoePeek is the bundle identifier—reverse-DNS notation common in Apple ecosystems.
When to use this:
- Onboarding flow didn't appear (permissions pre-granted, state machine thinks you're past onboarding)
- Shortcut conflicts after manual changes
- Testing "fresh user" experience
- Corrupted preferences from beta builds
Warning: This is a destructive operation. All custom shortcuts, selected translation engines, and UI preferences reset. There's no undo.
Example 4: Keyboard Shortcut Architecture
While the exact Swift implementation isn't in the README, the documented shortcut system reveals architectural decisions:
| Action | Default | Customizable |
|---|---|---|
| Translate Selection | ⌥ D |
✅ Settings → General |
| OCR Screenshot | ⌥ S |
✅ Settings → General |
| Manual Input | ⌥ A |
✅ Settings → General |
| Clipboard Translation | ⌥ V |
✅ Settings → General |
Design insight: The ⌥ (Option) modifier prefix avoids conflicts with system shortcuts (which heavily use ⌘) and application-specific shortcuts (which vary). The letter choices—D for "default/translate", S for "screenshot", A for "ask/input", V for clipboard's "paste" neighbor—show intentional mnemonic design.
The customization via Settings → General rather than a separate "Shortcuts" tab suggests MoePeek uses the KeyboardShortcuts library by Sindre Sorhus, which provides standardized macOS shortcut recording UI. This is one of only three dependencies—remarkable minimalism.
Advanced Usage & Best Practices
Optimize for Your Translation Stack
For speed: Use Apple Translation (macOS 15+) or Google Translate. Zero API setup, minimal latency.
For quality: Configure DeepL API or Claude via Anthropic. The LLM engines understand context better for technical documentation with ambiguous terminology.
For air-gapped security: Run Ollama or LM Studio locally. MoePeek routes to your local endpoint—completely offline, completely private.
Memory Leak Prevention
The creator emphasizes "systematic memory leak prevention for long-running sessions." In practice:
- MoePeek is designed as a launch-and-forget menu bar app
- Translation panels are auto-released when dismissed
- The ~50MB baseline includes the Swift runtime and translation engine caches
- If memory creeps above 100MB, a restart (seconds) resets state
PopClip Integration Workflow
The optimal setup for text-heavy workflows:
- Install MoePeek and grant permissions
- Install the PopClip extension with quarantine removal
- Configure PopClip to show MoePeek icon prominently
- Now: select any text → click MoePeek in PopClip bar → instant translation
This eliminates even the ⌥ D shortcut—translation becomes purely gestural.
Contributing Back
Found a bug? Have a feature idea? The creator welcomes issues and PRs but notes: "I work a day job, so I may not respond immediately—typically batch-process on weekends."
The AGPL-3.0 license means any distributed modifications must also be open source. Fork freely, but share your improvements.
Comparison with Alternatives
| Feature | MoePeek | Easydict | Bob | Clicknow | PopClip + Extensions |
|---|---|---|---|---|---|
| Install Size | ~5 MB | ~80 MB | ~60 MB | ~45 MB | ~15 MB |
| Memory Usage | ~50 MB | ~150 MB | ~120 MB | ~100 MB | ~30 MB |
| Apple Translation | ✅ Native | ✅ | ❌ | ❌ | ❌ |
| On-Device Privacy | ✅ Maximum | Partial | ❌ | ❌ | Varies |
| OCR Screenshot | ✅ Built-in | ✅ | ✅ | ✅ | Via extensions |
| Open Source | ✅ AGPL-3.0 | ✅ GPL | ❌ | ❌ | ❌ |
| Free | ✅ | ✅ | ❌ ($8) | ❌ ($30/yr) | ❌ ($12) |
| Swift Native | ✅ Pure Swift 6 | ❌ (Obj-C/Swift mix) | ❌ (Electron) | ❌ (Electron) | ❌ (Obj-C) |
| PopClip Integration | ✅ Official | ❌ | ❌ | ❌ | ✅ Native |
| Production Polish | ⚠️ Side project | ✅ Mature | ✅ Polished | ✅ Active | ✅ Mature |
The verdict: MoePeek wins on purity—minimal size, native implementation, maximum privacy, zero cost. It loses on polish—edge cases in text selection, window handling, and localization that commercial tools have refined over years.
Choose MoePeek if: You value performance, privacy, and hackability over hand-holding.
Choose alternatives if: You need guaranteed reliability across all apps, professional support, or polished UI with no rough edges.
FAQ: Your Burning Questions Answered
Is MoePeek really free? What's the catch?
Completely free, no catch. AGPL-3.0 licensed open source. The creator accepts sponsorships via Afdian, but functionality is unrestricted. Some translation engines (DeepL API, OpenAI) require your own API key and payment to those services—MoePeek itself charges nothing.
Why does macOS say MoePeek is "damaged"?
It's not damaged—it's not notarized. Apple requires a $99/year Developer Program membership for notarization. This is a personal side project without that investment. The quarantine removal command (xattr -r -d com.apple.quarantine) fixes this permanently.
Does Apple Translation work on macOS 14?
No—macOS 15 (Sequoia) or later required. The Apple Translation framework debuted in macOS 15. On macOS 14, MoePeek falls back to other configured engines (Google, Bing, etc.).
Can I use MoePeek without internet?
Yes, with limitations. Apple Translation (macOS 15+) and local LLM engines (Ollama, LM Studio) work fully offline. Cloud engines (Google, DeepL, OpenAI) require connectivity. Configure offline engines in Settings for airplane-mode productivity.
How does MoePeek grab text from other apps?
Three-tier fallback: (1) Accessibility API (fastest, reads selected text directly), (2) AppleScript (fallback for apps with scripting dictionaries), (3) Clipboard (last resort, checks current clipboard content). This aggressive fallback maximizes compatibility across applications.
Is my data sent to the developer or third parties?
Only if you choose cloud engines. Apple Translation and local LLM modes keep everything on-device. Google/DeepL/OpenAI modes send text to those respective services per their privacy policies. MoePeek itself has no telemetry or data collection.
Can I contribute to development?
Absolutely! Issues and PRs welcome on GitHub. Be patient—responses typically come on weekends. Forks must remain open source per AGPL-3.0.
Conclusion: The Translator macOS Deserves
MoePeek is a deliberate provocation. It asks: why should a text translator weigh more than your entire photo library? Why should your private documents route through Silicon Valley servers? Why should "native app" mean "webpage in a costume"?
At 5MB install, 50MB runtime, zero dollars, and maximum privacy, MoePeek isn't just competitive—it's existentially threatening to the bloatware translation industrial complex. The Swift 6 implementation demonstrates what happens when developers reject framework excess and embrace platform-native craftsmanship.
Is it perfect? No. The creator is transparent about its side-project status, edge cases, and rough edges. But it's honest software—open source, privacy-first, and obsessively optimized.
For developers who've watched their Macs slow to a crawl under the weight of Electron translators, who've wondered if their API keys and documentation snippets are training someone else's AI, who simply want their tools to get out of the way and work—MoePeek is your answer.
⭐ Star MoePeek on GitHub • 📥 Download Latest Release • 🐛 Report Issues
Your menu bar has room for one more icon. Make it count.