{"slug": "show-hn-openclip-instant-popup-actions-for-highlighted-text-on-macos", "title": "Show HN: OpenClip – Instant popup actions for highlighted text on macOS", "summary": "OpenClip, a new macOS utility by developer Ganesh Shetty, offers instant popup actions for highlighted text, including copy, transform, calculate, and AI writing features. The app supports extensions via .openclipext packages and integrates with Apple Intelligence, Ollama, OpenAI, and Claude. It is available via Homebrew or direct download from GitHub releases.", "body_md": "**Instant actions for selected text on macOS.**\n\n[Features](#features) • [Installation](#installation) • [Getting started](#getting-started) • [Extending](#extending-openclip) • [Building from source](#building-from-source) • [Documentation](#documentation) • [License](#license)\n\n## all.mp4\n\nSelect any text in any app, and OpenClip appears with contextual actions — copy, transform, calculate, AI writing, or custom extensions. Press `⌥⌘C` to open a fuzzy search palette over your entire action library.\n\n**Instant contextual popup**— select text anywhere and a floating bar appears with the actions that make sense for it. Actions with no live selection (like Copy/Cut) drop out automatically, and a selection-free popup falls back to the current clipboard contents.**Action-search palette**— press`⌥⌘C` to turn the bar into a fuzzy search field over the*entire*action catalog, including disabled actions. Results are ranked by recency, then bar order, so your most-used actions float to the top.**Zero-config builtins**— Search, Copy, Cut, Paste, Services, and a Transform group (UPPERCASE, lowercase, Title Case, camelCase) work out of the box.**Extensions**— install`.openclipext`\n\npackages (JavaScript, AppleScript, shell, URL templates, key presses, Shortcuts, Services) from the built-in store, a file, or by dropping a folder into`~/.openclip/extensions`\n\n. No compile step — a manifest plus a script is a complete extension.**Custom actions from the GUI**— add a web-search URL template or an inline shell script straight from Preferences, no manifest authoring required.** Built-in AI assistant**— run selected text through Apple Intelligence, a local Ollama model, or a cloud provider (OpenAI/Claude), or hand the query to your browser. AI presets appear as regular actions in the palette.**AI presets as first-class actions**— every AI provider/model is a reorderable, toggleable action with its own keyboard-friendly entry point, so the AI flows you use live in the same bar as everything else.**Deep customization**— drag to reorder the bar, disable actions, override titles and icons, and pick a Classic or Glass theme (Liquid Glass on macOS 26+, frosted material on 14–15) in System, Light, or Dark.**App-specific rules**— scope actions to apps with allow/deny rules, selection regexes, and required options that prompt the user when missing.**Fast by design**— Swift 6 with strict concurrency, a pure`Core`\n\ndomain module, and a hover model that never re-evaluates the whole view per mouse move.\n\n```\nbrew install --cask ganeshmshetty/tap/openclip\n```\n\n-\nDownload the latest release (\n\n`.dmg`\n\nor`.zip`\n\n) from the[releases page](https://github.com/ganeshmshetty/openclip/releases). -\nDrag\n\n`OpenClip.app`\n\ninto your`/Applications`\n\nfolder. -\nLaunch OpenClip and grant\n\n**Accessibility** permission when prompted:\n\n```\nSystem Settings → Privacy & Security → Accessibility → enable OpenClip\n```\n\nImportant\n\nAccessibility permission is required: it's how OpenClip detects selections and reads the selected text without relying on the clipboard. You can grant or revoke it any time from Preferences.\n\nFirst launch walks you through a 4-step onboarding — permissions, essential extensions, and an interactive playground — before text-selection monitoring starts.\n\n**1. Select some text** in any app. The popup bar appears next to your selection:\n\n- Click an action to run it (copy, search, transform, run your extension…).\n- Click a group or the AI bar to open a scoped palette of its sub-actions.\n- Run an AI action to see its output in a native result card (Replace/Copy buttons; back chevron or Esc to exit).\n\n**2. Use the hotkeys:**\n\n| Shortcut | Action |\n|---|---|\n⌥⌘C |\nToggle the popup (or the action-search palette if the bar is up) |\nEsc |\nDismiss the popup / drop back from a scoped palette |\nCmd ⌘, |\nOpen Preferences while the popup is focused |\n\n**3. Search everything.** With the bar up, press `⌥⌘C` (or start typing) to filter the full\naction catalog — including disabled actions — by title. Type a fragment of any action name to jump\nstraight to it.\n\nTip\n\nNo text selected? The popup still appears and acts on the current clipboard contents — Copy/Cut just drop out because there's no live selection to copy from.\n\nOpenClip is designed to be extended without touching Swift. Anything in `~/.openclip/extensions/`\n\nis scanned at launch and turned into actions:\n\n```\n~/.openclip/extensions/\n├── my-extension.openclipext/\n│   ├── openclip.json        # manifest\n│   ├── main.js              # script\n│   └── icon.png\n├── wikipedia.openclipext/   # single URL-template action\n└── format-sql.sh            # standalone snippet with header metadata\n```\n\nA minimal extension is a folder with one `openclip.json`\n\n:\n\n```\n{\n  \"identifier\": \"com.example.wikipedia\",\n  \"name\": \"Wikipedia\",\n  \"actions\": [\n    { \"title\": \"Look up\", \"icon\": \"symbol(book)\", \"type\": \"url\",\n      \"url\": \"https://en.wikipedia.org/wiki/Special:Search?search={query}\" }\n  ]\n}\n```\n\nActions can also expose options (strings, booleans, dropdowns, `SecretStore`\n\n-backed secrets), gate\nvisibility with app/regex rules, and render rich results — status, notifications,\nor chained effects — from JSON emitted by a shell script.\n\n**Action kinds**—`url`\n\n,`javascript`\n\n(JavaScriptCore with an`openclip.*`\n\nbridge + async/`fetch`\n\n),`applescript`\n\n,`shell`\n\n,`textsnippet`\n\n,`keypress`\n\n,`shortcut`\n\n,`service`\n\n, and`group`\n\nsub-menus.**Install one-liner**—`./scripts/install_extension.sh path/to/extension.openclipext`\n\n**From the app**— browse and install from the built-in Extension Store in** Preferences → Extension Store**, or author URL/search/script actions in** Preferences → Actions**.** Authoring guide**— the full manifest schema, options, visibility rules, and the`openclip.*`\n\nbridge:.`docs/developer-guide/AGENTS.md`\n\n**Prerequisites:** macOS 14+, [Xcode 16+](https://apps.apple.com/us/app/xcode/id497799835), and [XcodeGen](https://github.com/yonaskolb/XcodeGen) (`brew install xcodegen`\n\n).\n\n```\ngit clone https://github.com/ganeshmshetty/openclip.git\ncd openclip\n\n# Populate the extension catalog submodule\ngit submodule update --init\n\n# Generate the Xcode project (re-run after adding/removing .swift files)\nxcodegen generate\n\n# Build and run\n./scripts/dev_run.sh\n\n# Run the test suite\n./scripts/test.sh\n\n# Build a Release app + build/OpenClip.zip\n./scripts/package_app.sh\n```\n\nNote\n\nThe repo is split into a pure-domain **Core** framework and the **OpenClip** app target (AppKit +\nSwiftUI), with XCTest suites for both. The `Extensions/`\n\nfolder is a git submodule hosting the\nofficial & community extension catalog (`openclip-extensions`\n\n).\n\nThe full technical documentation lives in the [ docs/](/ganeshmshetty/openclip/blob/main/docs/index.md) hub:\n\n**Architecture**— target split, the six core subsystems, popup internals, text selection, and the action-search palette.** Developer guide**— extension package format, manifest schema, and action authoring.** Runtimes**— AppleScript, JavaScript, URL templates, and shell/Python execution (env vars, JSON effects, 30-second watchdog).** User guide**— installation, preferences, app rules, and extension management.** Logging**— the single`Log`\n\nsurface and per-subsystem categories.\n\nOpenClip is released under the [MIT License](/ganeshmshetty/openclip/blob/main/LICENSE). Copyright (c) 2026 Ganesh M and OpenClip Contributors.", "url": "https://wpnews.pro/news/show-hn-openclip-instant-popup-actions-for-highlighted-text-on-macos", "canonical_source": "https://github.com/ganeshmshetty/openclip", "published_at": "2026-09-02 13:11:44+00:00", "updated_at": "2026-09-02 13:23:08.833290+00:00", "lang": "en", "topics": ["ai-tools", "ai-products"], "entities": ["OpenClip", "Ganesh Shetty", "Apple Intelligence", "Ollama", "OpenAI", "Claude", "GitHub"], "alternates": {"html": "https://wpnews.pro/news/show-hn-openclip-instant-popup-actions-for-highlighted-text-on-macos", "markdown": "https://wpnews.pro/news/show-hn-openclip-instant-popup-actions-for-highlighted-text-on-macos.md", "text": "https://wpnews.pro/news/show-hn-openclip-instant-popup-actions-for-highlighted-text-on-macos.txt", "jsonld": "https://wpnews.pro/news/show-hn-openclip-instant-popup-actions-for-highlighted-text-on-macos.jsonld"}}