{"id":47865305,"url":"https://github.com/mekedron/clipslop","last_synced_at":"2026-05-31T21:00:47.752Z","repository":{"id":349021748,"uuid":"1200511086","full_name":"mekedron/ClipSlop","owner":"mekedron","description":"AI writing tool for macOS — fix grammar, translate, rewrite, format text with a hotkey. Chain prompts into pipelines. Works with ChatGPT, Anthropic, Ollama. Free and open-source.","archived":false,"fork":false,"pushed_at":"2026-05-31T09:37:10.000Z","size":34443,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-05-31T11:13:30.152Z","etag":null,"topics":["ai","anthropic","chatgpt","clipboard","grammar-checker","keyboard-shortcuts","macos","macos-app","ocr","ollama","open-source","productivity","prompt","shortcuts","swift","swiftui","text-transformation","translation","writing-tool"],"latest_commit_sha":null,"homepage":"https://mekedron.github.io/ClipSlop/","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mekedron.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":"SupportingFiles/AppIcon.icns","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-04-03T13:56:16.000Z","updated_at":"2026-05-31T09:37:09.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/mekedron/ClipSlop","commit_stats":null,"previous_names":["mekedron/clipslop"],"tags_count":30,"template":false,"template_full_name":null,"purl":"pkg:github/mekedron/ClipSlop","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mekedron%2FClipSlop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mekedron%2FClipSlop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mekedron%2FClipSlop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mekedron%2FClipSlop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mekedron","download_url":"https://codeload.github.com/mekedron/ClipSlop/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mekedron%2FClipSlop/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33748607,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-31T02:00:06.040Z","response_time":95,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["ai","anthropic","chatgpt","clipboard","grammar-checker","keyboard-shortcuts","macos","macos-app","ocr","ollama","open-source","productivity","prompt","shortcuts","swift","swiftui","text-transformation","translation","writing-tool"],"created_at":"2026-04-04T00:08:59.524Z","updated_at":"2026-05-31T21:00:47.746Z","avatar_url":"https://github.com/mekedron.png","language":"Swift","funding_links":["https://buymeacoffee.com/mekedron"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/icon.png\" width=\"128\" height=\"128\" alt=\"ClipSlop icon\"\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eClipSlop\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eSelect text. Press a hotkey. Grammar fixed.\u003c/strong\u003e\u003cbr\u003e\n  AI-powered text transformations for macOS — fix grammar, translate, rewrite, format — without leaving your app.\u003cbr\u003e\n  Free and open-source.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/mekedron/ClipSlop/releases/latest\"\u003eDownload\u003c/a\u003e \u0026nbsp;·\u0026nbsp;\n  \u003ca href=\"https://buymeacoffee.com/mekedron\"\u003eBuy Me a Coffee ☕\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\nClipSlop is a free, open-source AI writing tool for macOS that works in any app. Fix grammar, translate text, rewrite in different tones, format as email or Markdown — all with a keyboard shortcut. Use it as a simple AI grammar checker with a single hotkey, or chain multiple AI prompts into a full text transformation pipeline. Supports ChatGPT (free sign-in), OpenAI API, Anthropic Claude, Ollama (local models), and any OpenAI-compatible provider.\n\n## Table of Contents\n\n- [Why ClipSlop?](#why-clipslop)\n- [Demos](#demos)\n- [How it works](#how-it-works)\n- [Built-in prompts](#built-in-prompts)\n- [Keyboard shortcuts](#keyboard-shortcuts)\n- [Features](#features)\n- [Comparison with other AI writing tools](#comparison-with-other-ai-writing-tools)\n- [Install](#install)\n- [Requirements](#requirements)\n- [Contributing](#contributing)\n- [Acknowledgements](#acknowledgements)\n- [License](#license)\n- [Support](#support)\n\n---\n\n## Why ClipSlop?\n\nMost AI writing tools make you copy text, switch to a browser, paste, wait, copy the result, switch back, paste. ClipSlop does it with a hotkey — right where you're already typing.\n\n**Fix grammar without thinking about it:**\n```\nselect text → ⌃⌘G → grammar is fixed in place. Done.\n```\n\nThat's **Inline Run** — assign any prompt to a global hotkey, and it runs inline: captures the selected text, transforms it, pastes the result back. You never leave your app.\n\n**Need more than one step?** Chain transformations into a pipeline:\n\n```\n⌃⌘C → RB → TE → FE → done.\n```\n\nEach key picks a prompt from a navigable tree — `RB` Rewrite → Business, `TE` Translate → English, `FE` Format → Email. Every step is saved, arrow keys to go back, branch from any point. No browser, no copy-paste, no tab switching.\n\nFree, open-source, works with any AI provider — ChatGPT, Claude, Ollama, or your own API.\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/screenshot.png?v=2\" width=\"680\" alt=\"ClipSlop — AI text transformations for macOS with prompt tree, Inline Run, transformation history, and search\"\u003e\n\u003c/p\u003e\n\n## Demos\n\nUnedited screen recordings of the released app.\n\n### Run inline anywhere \u0026nbsp;·\u0026nbsp; Inline Run \u0026nbsp;·\u0026nbsp; `⌃⌘G` · `⌃⌘T` · `⌃⌘/`\n\nThree lines, three global shortcuts. Select the first line — **Fix Grammar**. Select the second — **Translate → English**. Select the third (prefixed with `//`) — **Run Custom Prompt** with the instruction typed inline after `//`. Every result pastes back where the cursor is.\n\nhttps://github.com/user-attachments/assets/456456ff-75af-4920-a2f9-e7b5b6d3de4f\n\n\u003e More on this mode in the docs: [Inline Run](https://mekedron.github.io/ClipSlop/docs/use/quick-paste).\n\n### Chain prompts across providers \u0026nbsp;·\u0026nbsp; Full pipeline \u0026nbsp;·\u0026nbsp; `⌃⌘C → R B → T F`\n\nA rough draft typed straight into Gmail: trigger ClipSlop, rewrite for business tone, translate to Finnish, paste back into the same message. Every step is saved as a history node — branch off if you want a different turn.\n\nhttps://github.com/user-attachments/assets/7964a98f-84a3-4194-93df-98e9cd85f2b1\n\n\u003e More on this mode in the docs: [The full pipeline](https://mekedron.github.io/ClipSlop/docs/use/full-pipeline).\n\n### Analyze any selection on the web \u0026nbsp;·\u0026nbsp; Run in Editor \u0026nbsp;·\u0026nbsp; `⌃⌘⌥T → A S`\n\nOpen a Finnish news article, highlight a paragraph, translate to English with **Run in Editor**, then condense it into a short summary with **Analyze → Summary**. The full pipeline goes anywhere you can highlight text.\n\nhttps://github.com/user-attachments/assets/c323d995-c262-4f9c-ad39-8e62065e4170\n\n\u003e More on this mode in the docs: [Run in Editor](https://mekedron.github.io/ClipSlop/docs/use/open-and-run).\n\n### OCR images, then keep going \u0026nbsp;·\u0026nbsp; Screen OCR \u0026nbsp;·\u0026nbsp; `⇧⌘2 → T E → A S`\n\nCapture a region of the screen. Apple Vision recognises the text on-device, drops it into the panel, and you can keep chaining — translate, then summarise, then copy. Useful when the source is an image, a PDF, or an app that won't let you `⌘C` its text.\n\nhttps://github.com/user-attachments/assets/74a685ae-9561-4fa0-a73f-856652bcc18e\n\n\u003e More on this mode in the docs: [Screen OCR](https://mekedron.github.io/ClipSlop/docs/use/screen-ocr).\n\n## How it works\n\n### Inline Run (fastest)\n\n```\nSelect text → ⌃⌘G → grammar fixed in place\n```\n\nAssign any prompt to a global hotkey. ClipSlop captures the text, runs the prompt, pastes the result — all in the background.\n\n### Full pipeline\n\n```\nSelect text → ⌃⌘C → Navigate prompts with keys → Chain transformations → Copy result\n```\n\n1. **Trigger** — Select text anywhere, press `⌃⌘C`. Text appears in a floating panel.\n2. **Navigate** — Prompt tree with single-key mnemonics: `T` → Translate, `R` → Rewrite, `F` → Format. Drill into folders, pick a prompt — one keypress each.\n3. **Chain** — Result becomes input for the next prompt. Translate → Elaborate → Format as Email. Each step saved.\n4. **History** — Arrow keys navigate the full transformation chain. Jump to any step, branch off.\n5. **Use** — Copy (`⌘C`), edit (`⌘E`), save (`⌘S`), or keep chaining.\n\n## Features\n\n- **Inline Run** — Assign a global hotkey to any prompt. Captures selected text, runs the prompt, pastes the result inline — you never leave your app\n- **Run in Editor** — Like Inline Run, but opens ClipSlop and auto-runs the prompt so you can review, edit, or keep chaining\n- **Prompt shortcuts** — Configure per-prompt in Settings → Prompts; shortcuts appear in the menu bar organized by folder\n- **Keyboard-first** — Single-key mnemonics for prompt navigation, all actions have shortcuts\n- **Full pipeline** — Chain unlimited transformations, navigate history with arrow keys, branch from any step\n- **Multi-provider** — OpenAI (sign in with ChatGPT or API key), Anthropic, Ollama, CLI tools, any OpenAI-compatible API\n- **Nested prompt tree** — Organize prompts in folders, each with a mnemonic key\n- **Built-in prompts** — Translate (18 languages), Rewrite (7 tones), Format (7 tools), Dev (6 tools), Analyze (4), Convert\n- **Manual editing** — Edit any result inline (`⌘E`), saved as a history step\n- **Find in text** — `⌘F` search with highlighting across all display modes\n- **Screen OCR** — Capture and recognize text from any screen region with OCR (`⇧⌘2`)\n- **Blank editor** — Open an empty editor (`⌃⌘N`), write text, run prompts on it\n- **Generate prompts with AI** — Describe what you want, AI writes the system prompt\n- **Per-prompt settings** — Override provider, display mode per prompt\n- **Import/Export** — Share prompt configurations as JSON\n- **iCloud Sync** — Prompts sync across Macs\n- **Temperature \u0026 reasoning** — Per-provider temperature control, reasoning effort for ChatGPT models\n- **Multiple display modes** — Plain text, Markdown (native or HTML renderer), HTML\n- **Adjustable UI** — Opacity, size, theme, launch at login\n\n## Built-in prompts\n\n```\n[⌘/] // Your prompt — type // followed by your instruction to run a one-off custom prompt\n[T]  Translate   → English, Finnish, Russian, Spanish, French, German, + 12 more\n[R]  Rewrite     → Elaborate, Neutral, Professional, Warm, Business, Playful, Biblical\n[F]  Format      → Fix Grammar, Clean Up, Beautify Code, Reformat, Email, Markdownify, HTMLify\n[D]  Dev         → Add Comments, Beautify Code, Clean Logs, Explain Code, Explain Stack Trace, Naming\n[A]  Analyze     → Summary, Explain Simply, TL;DR, Condense 20%\n[C]  Convert     → HTML, Markdown\n```\n\nSome prompts ship with default global keyboard shortcuts (Inline Run pastes the result inline, Run in Editor opens ClipSlop):\n\n| Shortcut | Prompt | Mode |\n|----------|--------|------|\n| `⌃⌘/` | // Your prompt | Inline Run |\n| `⌃⌘⌥/` | // Your prompt | Run in Editor |\n| `⌃⌘G` | Fix Grammar | Inline Run |\n| `⌃⌘F` | Reformat | Inline Run |\n| `⌃⌘T` | Translate → English | Inline Run |\n| `⌃⌘⌥T` | Translate → English | Run in Editor |\n| `⌃⌘⌥A` | Explain Simply | Run in Editor |\n\nFully customizable — add your own prompts, folders, mnemonics, and global shortcuts in Settings → Prompts.\n\n## Keyboard shortcuts\n\n| Shortcut | Action |\n|----------|--------|\n| `⌃⌘C` | Trigger ClipSlop (selected text) |\n| `⌃⌘V` | Process from clipboard |\n| `⌃⌘N` | Blank editor |\n| `⇧⌘2` | Screen capture (OCR) |\n| `⌘E` | Edit mode |\n| `⌘F` | Find in text |\n| `⌘S` | Save to file |\n| `⌘O` | Open in TextEdit |\n| `⌘D` | Cycle display mode |\n| `⌘,` | Settings |\n| `↑↓` | Navigate history (↑ newer step, ↓ older step) |\n| `Space` | Page down |\n| `⇧Space` | Page up |\n| `Esc` | Close / Back |\n\n## Comparison with other AI writing tools\n\n| | ClipSlop | RewriteBar | WritingTools | Cai | ClipboardAI | WritersBrew | Elephas | Fixkey | ShortcutAI | Raycast AI | PopClip | ChatGPT (web) |\n|---|---|---|---|---|---|---|---|---|---|---|---|---|\n| **Prompt chaining** | ✅ Unlimited chaining, full history | ⚠️ Sequential action flow, no history | ❌ One action | ❌ One action | ❌ One action | ❌ One action | ❌ One action | ❌ One action | ❌ One action | ⚠️ Limited, no true pipeline | ❌ One action | ❌ Manual workflow |\n| **Keyboard-first** | ✅ Single-key mnemonics, full pipeline navigation, global shortcuts for text fields (Inline Run, Run in Editor) and on-screen text (OCR) | ⚠️ Shortcut + action picker | ⚠️ Hotkey + action picker | ⚠️ ⌥C hotkey + action list | ⚠️ Per-prompt shortcuts | ⚠️ Shortcut + menu | ⚠️ Super Command shortcut | ⚠️ Custom shortcuts | ⚠️ Shortcuts + `//` text commands | ⚠️ Launcher, menu-based AI | ❌ Mouse-driven | ❌ Browser UI |\n| **Prompt organization** | ✅ Nested folders with mnemonics | ⚠️ Flat action list | ⚠️ Fixed presets + custom instructions | ⚠️ Flat action list | ⚠️ Flat list | ⚠️ Flat preset list | ⚠️ Flat snippets | ⚠️ Flat list | ⚠️ Flat list | ⚠️ Flat command list | ⚠️ Flat list | ❌ Chat history |\n| **Step history** | ✅ Navigate back/forward, branch from any step | ❌ No | ❌ No | ❌ No | ❌ No | ❌ No | ❌ No | ❌ No | ❌ No | ❌ No | ❌ No | ⚠️ Scroll up |\n| **Branching history** | ✅ Branch from any intermediate step | ❌ No | ❌ No | ❌ No | ❌ No | ❌ No | ❌ No | ❌ No | ❌ No | ❌ No | ❌ No | ❌ No |\n| **Provider freedom** | ✅ ChatGPT sign-in (free), API keys, Ollama (local), CLI tools | ✅ 37+ providers, local models, Apple Intelligence | ✅ Gemini (free), OpenAI, Anthropic, Ollama, MLX local | ✅ Built-in local, Ollama, LM Studio, Apple Intelligence, cloud APIs | ⚠️ BYO key (OpenAI, OpenRouter) | ⚠️ BYO OpenAI key only | ⚠️ Built-in + BYO keys (OpenAI, Anthropic, Gemini) | ❌ Built-in only (provider unclear) | ❌ Managed API only (no BYO keys) | ⚠️ Multiple, not fully open BYO | ⚠️ OpenAI API | ❌ OpenAI only |\n| **Screen OCR** | ✅ Capture any screen region (`⇧⌘2`) | ❌ No | ⚠️ Image processing via AI vision | ✅ Screenshot text extraction | ❌ No | ✅ OCR to Text AI | ❌ No | ❌ No | ❌ No | ❌ No | ❌ No | ⚠️ Image uploads only |\n| **Platform** | ⚠️ macOS (native, works in any app) | ⚠️ macOS (native, works in any app) | ✅ macOS + Windows + Linux | ⚠️ macOS (native, works in any app) | ✅ macOS + Windows (native, works in any app) | ⚠️ macOS (native, works in any app) | ⚠️ macOS + iOS | ⚠️ macOS | ❌ Chrome extension only (browser text fields) | ⚠️ macOS | ⚠️ macOS | ✅ Web (any platform) |\n| **Price** | ✅ Free, open-source | ⚠️ $29 one-time (BYO key) or $5/mo | ✅ Free, open-source | ✅ Free, open-source | ⚠️ €29 one-time (7-day trial) | ⚠️ $24–$49 one-time + API costs | ❌ $9.99–$39.99/mo | ❌ $48/year | ⚠️ Free (limited) / $5.90–$19.90/mo | ⚠️ Free tier + Pro ~$8/mo | ⚠️ $30 one-time + API costs | ❌ $20/mo |\n\n## Install\n\n### Homebrew\n\n```bash\nbrew tap mekedron/tap\nbrew install --cask clipslop\n```\n\n### Download\n\nGrab the latest `.dmg` from [Releases](https://github.com/mekedron/ClipSlop/releases/latest). Drag to Applications.\n\n#### Opening the app (important)\n\nClipSlop is not signed with an Apple Developer certificate, so macOS will block it on first launch. This is expected — I simply don't want to pay Apple $99/year for a developer account.\n\n**The app is safe.** The source code is fully open, and all release builds are produced automatically by [GitHub Actions](https://github.com/mekedron/ClipSlop/actions) — nothing is added to the binary that isn't in this repository.\n\nTo open ClipSlop:\n\n1. **Drag** `ClipSlop.app` to your **Applications** folder\n2. **Double-click** to open — macOS will show a warning and refuse\n3. Open **System Settings → Privacy \u0026 Security**\n4. Scroll down — you'll see *\"ClipSlop was blocked from use because it is not from an identified developer\"*\n5. Click **Open Anyway**, then confirm\n\nYou only need to do this once. After that, the app opens normally.\n\n#### After updating to a new version\n\nBecause the app is unsigned, macOS may change its internal bundle identifier between versions. When this happens, previously granted permissions (Accessibility, Screen Recording) stop working. To fix this:\n\n1. Open **System Settings → Privacy \u0026 Security → Accessibility**\n2. Find ClipSlop in the list and **remove it** (select → click \"−\")\n3. Click \"+\" and **re-add** `ClipSlop.app` from your Applications folder\n4. Do the same for **Screen Recording** if you use the OCR feature\n\nThis is an unfortunate side effect of not having a signed app. Your prompts, providers, and settings are not affected.\n\n### Build from source\n\n```bash\ngit clone https://github.com/mekedron/ClipSlop.git\ncd ClipSlop\nswift build\n# Or open Package.swift in Xcode → Run\n```\n\nRequires macOS 14+ and Xcode with Swift 6.0+.\n\n## Requirements\n\n- macOS 14.0+\n- An AI provider: sign in with ChatGPT (free), API key (Anthropic, OpenAI), local Ollama, or CLI tools\n\n## Contributing\n\n### Pre-commit hooks (required)\n\nClipSlop ships with a pre-commit hook that blocks commits when any localization key is missing in any of the 16 translated languages. **Install it once after cloning** — `.git/hooks/` is not versioned, so the hook is not active out of the box:\n\n```bash\n./Scripts/install-hooks.sh\n```\n\nWhat the hook does:\n\n- Runs only when a `*.lproj/Localizable.strings` file is in the commit.\n- Compares every key in `en.lproj/Localizable.strings` against the other 16 languages.\n- Blocks the commit if any translation is missing, and prints the offending keys per language.\n\nTo check translations manually at any time:\n\n```bash\n./Scripts/check-localizations.sh\n```\n\nRe-run `./Scripts/install-hooks.sh` whenever the contents of `Scripts/hooks/` change. Bypassing the hook with `--no-verify` is strongly discouraged — missing translations break the UI for users of those languages.\n\n## Acknowledgements\n\nClipSlop is built with these open-source libraries:\n\n- [KeyboardShortcuts](https://github.com/sindresorhus/KeyboardShortcuts) by Sindre Sorhus — customizable global keyboard shortcuts\n- [LaunchAtLogin](https://github.com/sindresorhus/LaunchAtLogin-Modern) by Sindre Sorhus — launch at login support\n- [Sparkle](https://github.com/sparkle-project/Sparkle) — software update framework for macOS\n- [swift-markdown](https://github.com/swiftlang/swift-markdown) by Apple / Swift Project — Markdown parsing and rendering\n- [Textual](https://github.com/gonzalezreal/textual) by Guillermo Gonzalez — native SwiftUI Markdown rendering\n- [swift-rich-html-editor](https://github.com/Infomaniak/swift-rich-html-editor) by Infomaniak — WYSIWYG rich HTML editor\n- [Lobe Icons](https://github.com/lobehub/lobe-icons) by LobeHub — provider icons for OpenAI, Anthropic, Ollama, Claude, Codex\n\n## License\n\nMIT License — see [LICENSE](LICENSE).\n\n## Support\n\nIf ClipSlop saves you time, consider [buying me a coffee ☕](https://buymeacoffee.com/mekedron)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmekedron%2Fclipslop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmekedron%2Fclipslop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmekedron%2Fclipslop/lists"}