必须在系统设置中授予辅助功能权限,否则无法检测选中文本;从源码构建还需额外安装 XcodeGen 并先执行 xcodegen generate;AI 动作需自行配置 Ollama 本地模型或 OpenAI/Anthropic 密钥。
openclip
ganeshmshettyAGPL-3.0活跃维护macOS 上选中文字后弹出操作菜单,可跑自定义脚本、AI 动作和可扩展工作流,把剪贴板与 LLM 调用串起来。
An open-source, macOS text action popup for running custom scripts, AI actions, and extensible workflows on selected text.
brew install --cask openclip仅支持 macOS 14.0 及以上,需授予辅助功能权限;README 未说明 CPU/GPU 或显存要求,AI 动作可选本地 Ollama 或云端 API。
macOS 划词弹出操作栏,对选中文本跑脚本、快捷指令和 AI 动作
macOS 上选中文字后弹出操作菜单,可跑自定义脚本、AI 动作和可扩展工作流,把剪贴板与 LLM 调用串起来。
核心能力
- 选中文本即在附近弹出上下文操作栏
- 用 ⌥⌘C 热键模糊搜索全部动作目录
- 支持 JS、Shell、AppleScript、URL 方案写扩展
- 可接本地 Ollama、Apple Intelligence 或 OpenAI/Anthropic
- Swift 6 原生实现,无遥测全部本地执行
容易踩的坑
- v1.9.2最新正式版2026-10-30 · 2026-10-30 05:45 UTC
Improvements
- Contextual actions in search: matching contextual actions appear before other available actions, with a small gap separating the two groups.
- Lower idle overhead: extension monitoring no longer polls the extensions directory while idle.
- Faster search shortcut: the palette opens using the current cached selection, clipboard, or an empty context without waiting for a fresh selection read. The source indicator is now read-only; switching between selection and clipboard in the palette is no longer available.
Fixes & Stability
- Brave Origin support: Search and URL actions now open in Brave Origin (and Origin Beta) when that's where you selected the text, instead of your default browser (#180).
- Group settings: disabling a group also disables its child actions while preserving their individual settings.
- Sub-bar navigation: moving toward an open sub-bar no longer immediately switches to an adjacent group (#194).
- Search input safety: pending selection reads are cancelled before the palette takes focus, preventing a late copy from reaching its search field.
- v1.9.12026-10-24 · 2026-10-24 04:17 UTC
查看更新说明
Fixes & Stability
- Capture Text keeps the source app in place: drawing a region no longer activates OpenClip, so full-screen windows and Safari Picture in Picture stay put. Escape still cancels.
- Capture Text reading order: recognized text keeps Vision's line order across columns, and fragments on the same line join with a space.
- Clearer capture feedback: failures name their cause, a Recognizing text… spinner shows progress, and a Paused toast explains when an app rule blocks the shortcut.
- Hover panels recover across Spaces: tooltips and sub-bars left on another Space reappear instead of staying hidden until restart.
- Show in card on every click: right-click and ⇧-click on a text result now show the card when Show in card is your preference, instead of copying.
- Custom URL schemes open through the right app: only http(s) links go to the source browser, so actions such as
goodlinks://no longer trigger the browser's "allow this website to open…" prompt (#177). - AI Tools ordering: AI Tools now shows your arranged actions on hover and in its search, including presets you moved in, moved out or reordered on the Actions page (#175).
- v1.9.02026-10-20 · 2026-10-20 13:13 UTC
查看更新说明
- Action sounds: play a sound when any action finishes. Choose Click, Drop, Tink, Pop or your own file, and silence individual actions.
- AI follow-ups as chat, with undo and redo (⌘Z / ⇧⌘Z).
- Per-action AI provider and model, with self-updating cloud model lists.
- Editable AI system prompt, and a new AI tab in Settings (#161).
- Smarter selections: rich text is preserved, extensions can require detected content, and several selected links open at once.
- oMLX preset for local LLM servers.
- Screen Recording permission in Settings and a restyled onboarding.
- Fixed selection missing in Chrome, Ghostty and Electron apps.
- Fixed AI settings being lost across dev and release builds, and saved prompts being renamed when re-run.
Contributors
- 🎉 First-time contributor: thanks to @entttom for making the AI system prompt editable (#161)!
- v1.8.22026-10-12 · 2026-10-12 15:53 UTC
查看更新说明
Features & Improvements
- Removed modifier key triggers: Reverted modifier key selection triggers to ensure 100% reliable popup appearance across all apps, restoring the direct "Appear Automatically" toggle.
- OCR auto-copy setting: Added a "Copy to Clipboard Automatically" setting under General ▸ Shortcuts with cursor status feedback.
- Script action options in env: Exposed custom script options to child processes via
OPENCLIP_OPTION_<NAME>. - Popup paging & UI polish: Added fit-to-width paging and refined count stepper in glass theme.
Fixes & Stability
- Fixed JS extension memory leaks (#46, #47): Prevented the fetch bridge from retaining
JSContextand per-runURLSessioninstances. - Calculator bounds & safety (#50): Bounded recursion depth in
MathEvaluatorand safely rejected overflowing inputs. - AI stream cancellation (#43): Correctly surfaced stream cancellations for Cloud and Local AI actions.
- AI key persistence (#42): Prevented recursion on API key save failures.
- Classic card shadow clipping: Added rasterization padding to prevent shadow buffer clipping on promoted AppKit layers.
- Toast placement & Spaces: Fixed status toasts to prefer placement above cursor and bars, and enabled them across fullscreen Spaces.
- Loading pill shadow: Reserved insets to eliminate shadow clipping on cancellable loading pills.
- Update reminders: Added reliable menu bar update badges and reminders.
- v1.8.12026-10-09 · 2026-10-09 02:31 UTC
查看更新说明
Features & Improvements
- Automatic extension updates: Store-installed extensions update at launch and every six hours while OpenClip is running. Control this with the new About → Extension Updates → Automatically Update Extensions toggle, enabled by default. Disabled extensions stay disabled, and developer and sideloaded packages are excluded.
- Extension store improvements: The New section uses first-publish dates, the store displays the full catalogue total, and search and update lifecycle handling are improved.
- Task-focused AI prompts: AI actions follow the selected task more closely, including translation, code fixes, and editing.
- Simpler update preferences: Software updates use the stable channel with streamlined About settings.
- Added Android emulators to the app exclusion filter and moved Ghostty to menu-based copy handling.
Fixes & Stability
- Fixed group and AI Tools sub-bars failing to open when delayed SwiftUI hover events cancelled the opening timer. Hover tracking now uses a shared target-transition handler.
- Restored popup hover highlights, tooltips, and sub-bars over other apps' fullscreen Spaces.
Contributors
Thanks to @deskangel for improving Ghostty copy handling and adding Android emulator exclusions!
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
Select text in any app, and OpenClip pops up with contextual actions — transform text, run shell scripts, trigger shortcuts, evaluate math expressions, or query AI models.
Installation
Homebrew (Recommended)
brew install --cask openclip
Direct Download
Download the latest .dmg from Releases.
Note: Requires Accessibility permission (
System Settings → Privacy & Security → Accessibility) to detect selected text without relying on clipboard polling.
Features
- Contextual bar: Appears instantly near your selection with relevant actions (case transform, search, copy/cut, math, or custom scripts).
- Search palette (
⌥⌘C): Press hotkey to fuzzy search your entire action catalog. - Extensions: Write or install custom extensions in JavaScript, Shell, AppleScript, or URL schemes.
- Native & fast: Written in Swift 6 with strict concurrency; lightweight background footprint.
- Optional AI actions: Run text through local Ollama models, Apple Intelligence, or OpenAI/Anthropic keys.
- Privacy-first: Zero telemetry, no analytics, 100% local execution.
Extensions
Extensions are simple folders in ~/.openclip/extensions/. A basic URL lookup extension only needs an openclip.json:
{
"identifier": "com.example.lookup",
"name": "Wikipedia Lookup",
"actions": [
{
"title": "Lookup",
"icon": "symbol(magnifyingglass)",
"type": "url",
"url": "https://en.wikipedia.org/wiki/Special:Search?search={query}"
}
]
}
Install community extensions from Preferences → Extension Store, or read the extension docs.
Building from Source
Prerequisites: macOS 14+, Xcode 16+, and XcodeGen (brew install xcodegen).
git clone https://github.com/ganeshmshetty/openclip.git
cd openclip
# Generate Xcode project
xcodegen generate
# Build and run
./scripts/dev_run.sh
# Run tests
./scripts/test.sh
# Package release DMG
./scripts/package_app.sh
Community & Support
- Docs: Documentation Hub
- Discord: Join Community
- Issues: Report a bug
- Sponsor: GitHub Sponsors · Buy Me a Coffee · Ko-fi
License
AGPL-3.0 © 2026 Ganesh M and OpenClip Contributors. See NOTICE.md.