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.

v1.9.2发布于 2026-10-30 05:45 UTC753star +11 / 7 天45fork同步于 2026-11-10 17:56 UTC

怎么上手

由 README 提炼,执行前请确认
brew install --cask openclip
硬件要求按 README 说明

仅支持 macOS 14.0 及以上,需授予辅助功能权限;README 未说明 CPU/GPU 或显存要求,AI 动作可选本地 Ollama 或云端 API。

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

macOS 划词弹出操作栏,对选中文本跑脚本、快捷指令和 AI 动作

macOS 上选中文字后弹出操作菜单,可跑自定义脚本、AI 动作和可扩展工作流,把剪贴板与 LLM 调用串起来。

核心能力

  • 选中文本即在附近弹出上下文操作栏
  • 用 ⌥⌘C 热键模糊搜索全部动作目录
  • 支持 JS、Shell、AppleScript、URL 方案写扩展
  • 可接本地 Ollama、Apple Intelligence 或 OpenAI/Anthropic
  • Swift 6 原生实现,无遥测全部本地执行

容易踩的坑

必须在系统设置中授予辅助功能权限,否则无法检测选中文本;从源码构建还需额外安装 XcodeGen 并先执行 xcodegen generate;AI 动作需自行配置 Ollama 本地模型或 OpenAI/Anthropic 密钥。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v1.9.2
  1. 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.

  2. 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).

  3. 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)!

  4. 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 JSContext and per-run URLSession instances.
    • Calculator bounds & safety (#50): Bounded recursion depth in MathEvaluator and 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.

  5. 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!

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    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

    License

    AGPL-3.0 © 2026 Ganesh M and OpenClip Contributors. See NOTICE.md.