{"id":45498989,"url":"https://github.com/coszone/moepeek","last_synced_at":"2026-04-01T23:00:28.241Z","repository":{"id":339639021,"uuid":"1159186944","full_name":"cosZone/MoePeek","owner":"cosZone","description":"A lightweight macOS selection translator built with pure Swift 6, featuring on-device Apple Translate for privacy, only 5MB install size and stable ~50MB memory usage. 一款轻量级 macOS 划词翻译工具，纯 Swift 6 开发，设备端 Apple 翻译保护隐私，安装体积仅 5MB，后台运行内存稳定约 50MB","archived":false,"fork":false,"pushed_at":"2026-03-22T10:17:44.000Z","size":2809,"stargazers_count":574,"open_issues_count":4,"forks_count":33,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-30T06:21:03.059Z","etag":null,"topics":["apple","macos","ocr","short","swift"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cosZone.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-16T12:29:00.000Z","updated_at":"2026-03-30T05:56:09.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/cosZone/MoePeek","commit_stats":null,"previous_names":["yusixian/moepeek","coszone/moepeek"],"tags_count":27,"template":false,"template_full_name":null,"purl":"pkg:github/cosZone/MoePeek","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cosZone%2FMoePeek","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cosZone%2FMoePeek/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cosZone%2FMoePeek/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cosZone%2FMoePeek/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cosZone","download_url":"https://codeload.github.com/cosZone/MoePeek/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cosZone%2FMoePeek/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31292780,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T21:15:39.731Z","status":"ssl_error","status_checked_at":"2026-04-01T21:15:34.046Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apple","macos","ocr","short","swift"],"created_at":"2026-02-22T18:14:57.169Z","updated_at":"2026-04-01T23:00:28.224Z","avatar_url":"https://github.com/cosZone.png","language":"Swift","readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"Resources/AppIcon.icon/Assets/MoePeek.png\" width=\"128\" height=\"128\" alt=\"MoePeek Icon\" /\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eMoePeek\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  A lightweight, native macOS menu bar translator. Select text, get translation.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  English | \u003ca href=\"README_zh.md\"\u003e中文\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/cosZone/MoePeek/releases/latest\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/cosZone/MoePeek\" alt=\"GitHub Release\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/cosZone/MoePeek/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/downloads/cosZone/MoePeek/total\" alt=\"Downloads\" /\u003e\u003c/a\u003e\n  \u003cimg src=\"https://img.shields.io/badge/platform-macOS%2014%2B-blue\" alt=\"Platform\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/swift-6.0-orange\" alt=\"Swift\" /\u003e\n  \u003ca href=\"LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-AGPL--3.0-green\" alt=\"License\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"Resources/MoePeek-promo.webp\" alt=\"MoePeek Preview\" /\u003e\n\u003c/p\u003e\n\n## Features\n\n**Translation Modes**\n\n- **Select \u0026 Translate**: Select text in any app, get instant translation in a floating panel\n- **OCR Screenshot**: Capture a screen region and translate the recognized text\n- **Clipboard Translation**: Translate whatever's on your clipboard\n- **Manual Input**: Type or paste text to translate on demand\n\n**Built-in Translation Services**\n\n| Free | API | LLM | System |\n|------|-----|-----|--------|\n| Google Translate | DeepL | OpenAI | Apple Translation |\n| Bing Translate | Baidu | Anthropic | *(macOS 15+, on-device)* |\n| Youdao Translate | NiuTrans | DeepSeek | |\n| | Caiyun | OpenRouter | |\n| | DeepLX | 智谱 GLM | |\n| | | Ollama (local) | |\n| | | LM Studio (local) | |\n\n**And More**\n\n- Smart language detection across 14 languages, auto-flips translation direction\n- Text-to-speech playback for translated text using Apple's built-in speech synthesis\n- Non-activating floating panels that never steal focus from your current app\n- 3-tier text grabbing: Accessibility API → AppleScript → Clipboard fallback\n- Fully customizable keyboard shortcuts\n- Built-in auto-updater via Sparkle\n\n## Why MoePeek\n\n- **~5 MB app size**: Pure Swift 6, only 3 dependencies. No Electron, no WebView.\n- **~50 MB background memory**: Systematic memory leak prevention for long-running sessions.\n- **Privacy-friendly**: Apple Translation runs entirely on-device.\n- **Open source**: AGPL-3.0 licensed. Issues and feedback welcome.\n\n## Limitations \u0026 Alternatives\n\nMoePeek 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.\n\nIf you need a more robust solution, these apps are excellent:\n\n- **[Clicknow](https://clicknow.ai/)** — feature-rich, actively maintained selection translator\n- **[PopClip](https://www.popclip.app/)** — the gold standard for macOS text selection actions, with a rich extension ecosystem\n\n## Installation\n\nDownload the latest `.dmg` or `.zip` from [GitHub Releases](https://github.com/cosZone/MoePeek/releases) and drag `MoePeek.app` into `/Applications`.\n\n## Usage\n\nOn first launch, MoePeek walks you through an onboarding flow to grant the required permissions:\n\n- **Accessibility**: Needed to grab selected text via the Accessibility API\n- **Screen Recording**: Needed for OCR screenshot translation\n\n### Default Shortcuts\n\n| Action | Shortcut |\n|--------|----------|\n| Translate Selection | `⌥ D` |\n| OCR Screenshot | `⌥ S` |\n| Manual Input | `⌥ A` |\n| Clipboard Translation | `⌥ V` |\n\nAll shortcuts can be customized in **Settings → General**.\n\n### PopClip Integration\n\nIf you use [PopClip](https://www.popclip.app/), you can translate selected text with a single click from the PopClip bar.\n\n**Install the extension:**\n\n1. Make sure MoePeek is installed and running.\n2. Download [`MoePeek.popclipext.zip`](https://github.com/cosZone/MoePeek/releases/latest/download/MoePeek.popclipext.zip) from the latest release and unzip it.\n3. Remove the quarantine attribute so macOS allows the extension to load:\n   ```bash\n   xattr -dr com.apple.quarantine /path/to/MoePeek.popclipext\n   ```\n4. Double-click `MoePeek.popclipext` — PopClip will install it automatically.\n5. Select any text in any app → click the **MoePeek** icon in the PopClip bar.\n\n\u003e **Note:** If PopClip shows an error, also make sure MoePeek.app itself has been un-quarantined — see the [FAQ below](#moepeekapp-is-damaged-and-cant-be-opened). ([Related issue](https://github.com/cosZone/MoePeek/issues/9#issuecomment-4167992729))\n\n## FAQ\n\n### \"MoePeek.app is damaged and can't be opened\"\n\nThe app is not notarized with Apple, so macOS Gatekeeper may block it. This does not mean the file is corrupted. To fix:\n\n1. Open **Terminal**\n2. Run:\n\n```bash\nsudo xattr -r -d com.apple.quarantine /Applications/MoePeek.app\n```\n\nThen launch the app as usual.\n\n### Onboarding screen doesn't appear / want to re-trigger onboarding\n\nReset all user preferences to restore the first-launch state:\n\n```bash\ndefaults delete com.nahida.MoePeek\n```\n\nThen relaunch the app.\n\n## Contributing\n\nIssues and PRs are welcome! A few things to know:\n\n- I work a day job, so I may not respond immediately — I typically batch-process issues and PRs on weekends.\n- Feel free to fork and build your own version. Per the AGPL-3.0 license, derivative works **must also be open source**.\n\n## Acknowledgements\n\nMoePeek was inspired by [Easydict](https://github.com/tisfeng/Easydict) and [Bob](https://github.com/ripperhe/Bob). Thank you for paving the way.\n\nBuilt with:\n\n- [KeyboardShortcuts](https://github.com/sindresorhus/KeyboardShortcuts) by Sindre Sorhus\n- [Defaults](https://github.com/sindresorhus/Defaults) by Sindre Sorhus\n- [Sparkle](https://sparkle-project.org/) for auto-updates\n\n## Contributors\n\n\u003ca href=\"https://github.com/cosZone/MoePeek/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=cosZone/MoePeek\" /\u003e\n\u003c/a\u003e\n\n## Sponsor\n\n\u003ca href=\"https://afdian.com/a/cosyu\"\u003e\u003cimg width=\"20%\" src=\"https://pic1.afdiancdn.com/static/img/welcome/button-sponsorme.jpg\" alt=\"Sponsor on Afdian\"\u003e\u003c/a\u003e\n\n## Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=cosZone/MoePeek\u0026type=date\u0026legend=top-left)](https://www.star-history.com/#cosZone/MoePeek\u0026type=date\u0026legend=top-left)\n\n## License\n\n[AGPL-3.0](LICENSE)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoszone%2Fmoepeek","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcoszone%2Fmoepeek","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoszone%2Fmoepeek/lists"}