{"id":"8999bab0-5ffb-4e54-8872-3864fb944040","slug":"clipth","kind":"mcp","name":"Clipth","summary":"An elegant and powerful clipboard manager designed specifically for macOS.一款专门为 macOS 设计、界面优雅且功能强大的剪切板历史管理 App.","owner":"wavever","repoUrl":"https://github.com/wavever/Clipth","license":"MIT","licenseTier":"permissive","trust":"community","stars":28,"match":null,"fewStars":false,"format":"mcp","createdAt":null,"addedAt":"2026-10-14T05:17:26.067Z","logoUrl":"https://avatars.githubusercontent.com/u/9565322?u=1e58209a3cddc7ebd4034bb22ba0642d1cedeb9a&v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["search","memory-knowledge"],"tags":["ai-tools","clipboard-history","clipboard-manager","local-first","macos","menubar-app","privacy","productivity"],"runtime":"binary","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-14T05:30:55.994Z","sample":false,"url":"https://conduits.dev/tools/clipth","language":"Swift","transports":["stdio"],"install":{},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"<p align=\"center\">\n  <img src=\"Clipth/Assets.xcassets/AppLogo.imageset/AppLogo@2x.png\" width=\"96\" alt=\"Clipth logo\" />\n</p>\n\n<h1 align=\"center\">Clipth</h1>\n\n<p align=\"center\">\n  <strong>English</strong> · <a href=\"README.zh-CN.md\">中文</a>\n</p>\n\n<p align=\"center\">\n  Local-first clipboard history for macOS and AI tools.\n</p>\n\n<p align=\"center\">\n  <a href=\"https://clipth.app\"><img src=\"https://img.shields.io/badge/website-clipth.app-7AA487\" alt=\"Website\" /></a>\n  <a href=\"https://github.com/wavever/Clipth/actions/workflows/ci.yml\"><img src=\"https://github.com/wavever/Clipth/actions/workflows/ci.yml/badge.svg\" alt=\"CI\" /></a>\n  <a href=\"https://clipth.app\"><img src=\"https://img.shields.io/badge/download-macOS-blue\" alt=\"Download for macOS\" /></a>\n  <a href=\"LICENSE\"><img src=\"https://img.shields.io/badge/license-MIT-yellow.svg\" alt=\"MIT License\" /></a>\n  <img src=\"https://img.shields.io/badge/macOS-14%2B-blue\" alt=\"macOS 14+\" />\n</p>\n\nClipth is an open-source macOS clipboard manager with offline semantic search and a built-in [Model Context Protocol](https://modelcontextprotocol.io/) server. It lets you search clipboard history locally, organize useful clips, and optionally let AI clients such as Claude Desktop, Claude Code, or Cursor query your clipboard. Cloud sync is off by default and only connects to a destination you configure.\n\nThe name comes from \"clip path\": a trail of things you copied.\n\n## Edition Boundary\n\nThis repository is the open-source base edition of Clipth. It contains the core clipboard, search, organization, privacy, sync, and MCP functionality released under the license in this repository.\n\nClipth Pro is a separate commercial edition. Pro-only features, commercial services, payment and licensing logic, and other proprietary implementation are intentionally not part of this repository and are not included in the open-source release. Do not assume that code or behavior from the Pro edition is available here.\n\n## Why Clipth?\n\n- **Local-first by default** - clipboard history, OCR text, tags, and embeddings stay on your Mac unless you explicitly enable encrypted sync.\n- **Conflict-resilient encrypted sync** - optionally sync through iCloud Drive, WebDAV, S3-compatible storage, or a local folder without exposing clipboard plaintext.\n- **Offline semantic search** - Apple `NLEmbedding` powers meaning-based search without hosted embedding APIs.\n- **AI-native workflow** - the app binary can run as an MCP stdio server with searchable and writable clipboard tools.\n- **Native macOS utility** - menu bar app, global hotkeys, Quick Paste, previews, snippets, and SwiftUI interface.\n- **Content protection** - sensitive values such as phone numbers and API keys are redacted across the UI, exports, and MCP by default, while the original stays on your Mac for reuse.\n- **Privacy controls** - pause capture, exclude source apps, ignore sensitive pasteboard markers, strip URL trackers, disable MCP tools, and delete history.\n\n## Highlight: Encrypted Sync That Merges, Not Overwrites\n\nClipth does not replace one Mac's entire database with another. It sends encrypted incremental operations, merges each field independently, and keeps a recoverable copy when two devices change non-mergeable content.\n\nChoose automatic sync or keep it manual. The main window always exposes a compact sync state: one-click sync when automation is off, an immediate in-progress indicator, and explicit success or failure feedback when the run finishes.\n\n| What happens | How Clipth protects it |\n|---|---|\n| Two Macs edit different fields | Hybrid logical clocks and field versions preserve both changes |\n| Both devices write at once | Immutable encrypted journals survive the snapshot race |\n| Tags or group membership change independently | Convergent set merging combines additions and preserves removals |\n| A device returns with stale data | Acknowledged tombstones prevent deleted clips from silently reappearing |\n\nEverything is encrypted locally with AES-256-GCM before it reaches iCloud Drive, WebDAV, S3-compatible storage, or your chosen sync folder. The losing version is retained as an encrypted conflict copy for 30 days, while old journals and orphan attachments are cleaned conservatively. [Read the sync architecture →](https://github.com/wavever/clipth-website/blob/main/docs/sync-architecture.md)\n\n## Preview\n\n<p align=\"center\">\n  <img src=\"assets/screenshots/board-mainpage-lits-cn-transparent.png\" alt=\"Main window - list layout\" width=\"720\" />\n  <br/>\n  <em>Main window - list layout</em>\n</p>\n\n<p align=\"center\">\n  <img src=\"assets/screenshots/board-mainpage-list-cn-transparent.png\" alt=\"Main window - grid layout\" width=\"720\" />\n  <br/>\n  <em>Main window - grid layout</em>\n</p>\n\n<p align=\"center\">\n  <img src=\"assets/screenshots/board-filter-cn-transparent.png\" alt=\"Filters\" width=\"720\" />\n  <br/>\n  <em>Filters and content organization</em>\n</p>\n\n<p align=\"center\">\n  <img src=\"assets/screenshots/board-quick-copy-cn-transparent.png\" alt=\"Quick Paste\" width=\"720\" />\n  <br/>\n  <em>Quick Paste with keyboard navigation</em>\n</p>\n\n<p align=\"center\">\n  <img src=\"assets/screenshots/board-mcp-cn-transparent.png\" alt=\"MCP integration\" width=\"720\" />\n  <br/>\n  <em>MCP server integration</em>\n</p>\n\n<p align=\"center\">\n  <img src=\"assets/screenshots/board-widget-cn-transparent.png\" alt=\"Widgets\" width=\"720\" />\n  <br/>\n  <em>macOS widgets</em>\n</p>\n\n<p align=\"center\">\n  <img src=\"assets/screenshots/board-website-preview-cn-transparent.png\" alt=\"Website preview\" width=\"720\" />\n  <br/>\n  <em>Link preview</em>\n</p>\n\n## Features\n\n### Capture and Reuse\n\n- Auto-captures text, images, video, files, URLs, and rich text\n- Double-click to copy an entry back to the clipboard\n- Duplicate refresh keeps re-copied items at the top instead of creating duplicates\n- Optional paste-as-plain-text and trailing-whitespace trimming\n- Soft-delete trash with restore, permanent delete, and retention controls\n- Global hotkeys for the main window and snippets\n- Efficient image storage — clipboard images are kept compressed with external binary storage, so memory and disk usage stay low even with a long image history\n- Switch between list and grid layouts: the main window uses a responsive grid, while Quick Paste and the menu bar panel offer independently configurable two-column grids in Settings. Grid image previews preserve their aspect ratio and show the image name as an in-place overlay.\n\n### Search and Organization\n\n- Full-text search with type filters\n- Offline semantic search over text and OCR content\n- Source-app and time filters such as `app:Safari`, `since:2d`, and `before:2026-05-01`\n- Favorites, pinned clips, tags, custom titles, and tag autocomplete\n- Multi-select merge for clips of the same type\n\n### Content Awareness\n\n- Rich preview popover\n- OCR indexing for images\n- Smart text parsing for timestamps, Base64, and JSON\n- Video preview with thumbnail or inline player mode\n- URL tracking-parameter stripping for `utm_*`, `fbclid`, `gclid`, and more\n- Screen-recording hide mode for the app window\n\n### Content Protection\n\n- Automatic, conservative redaction of sensitive spans: Chinese mainland phone numbers (`13812345678` → `138****5678`) and API keys, tokens, secrets, and passwords — labeled values such as `appkey=…` plus high-confidence prefixes like `sk-`, `ghp_`, `AKIA`\n- Masks only the sensitive value while keeping surrounding labels and structure; conservative enough to leave UUIDs, hashes, timestamps, and ordinary URLs untouched\n- Redacted display across the history list, previews, menu bar, Dynamic Island, Quick Paste, Quick Look, and search snippets, with a lock badge on protected clips\n- The original value is never modified in storage — copy, quick paste, paste-as-plain-text, and edits still use the raw clip\n- Default exports and MCP responses return redacted content with `isProtected` metadata; raw egress requires an explicit opt-in\n- Master switch and one editable rule list in Settings → Data → Privacy: the built-in phone/app-key rules can be edited, reset, or turned off, alongside your own keyword or regex rules\n\n### Export and Stats\n\n- JSON export with type, date, favorite, and pinned filters\n- Per-item export to original formats such as text and PNG\n- Copy statistics, 14-day chart, and GitHub-style yearly heatmap\n\n### Encrypted Sync\n\n- Optional bidirectional sync through iCloud Drive, WebDAV, S3-compatible object storage, or a local folder (including folders managed by Dropbox, OneDrive, Syncthing, and network drives)\n- Manual or automatic sync with a compact main-window status, immediate progress feedback, and clear success or failure notifications\n- AES-256-GCM end-to-end encryption before data leaves the Mac; WebDAV passwords, S3 secret credentials, and the 256-bit recovery key are stored in Keychain\n- Hybrid logical clocks merge independently edited fields; tags and group membership use convergent set merging, while losing content is retained as a 30-day conflict copy\n- Encrypted incremental journals protect concurrent writers and compact into conditional-write snapshots; acknowledged deletion tombstones, old journals, and orphan attachments are garbage-collected conservatively\n- Syncs history, images, tags, groups, favorites, pins, trash state, and individual file attachments up to 25 MB; device settings, statistics, and semantic vectors remain local\n- Another Mac needs the same recovery key. Losing it makes existing remote data unrecoverable.\n- Existing v1 manifests are upgraded in place on the next successful sync; the recovery key is reused and the remote `.clipth-sync-v1` location stays stable for Clipth releases.\n- See [Sync Architecture](https://github.com/wavever/clipth-website/blob/main/docs/sync-architecture.md) for merge, commit, migration, and retention invariants.\n\n## MCP Server\n\nThe app binary doubles as an MCP stdio server.\n\n**One-click setup.** Settings → AI lists the agents actually installed on your Mac — CLIs and apps alike — and writes the entry into their config file for you. Supported: Claude Code, Codex CLI, Claude Desktop, Cursor, OpenClaw, VS Code, Zed, Windsurf, Gemini CLI, opencode, Qwen Code, Cline, Kiro, LM Studio, and Amazon Q CLI. The original file is backed up alongside it as `.clipth.bak`, comments and formatting are preserved, and each client's own syntax is used (Codex is TOML, VS Code keys the map `servers`, Zed uses `context_servers`, opencode takes `command` as an array). Restart the client afterwards so it picks Clipth up.\n\nImport never writes straight away: it opens a confirmation dialog showing the exact edit — the affected lines of that config file, in that file's own syntax, with the additions highlighted — and nothing is written until you confirm. Each row can also open its config file in Quick Look or hand it to your editor.\n\nTo configure a client by hand instead:\n\n```json\n{\n  \"mcpServers\": {\n    \"clipth\": {\n      \"command\": \"/Applications/Clipth.app/Contents/MacOS/Clipth\",\n      \"args\": [\"--mcp\"]\n    }\n  }\n}\n```\n\nCodex uses TOML rather than JSON — in `~/.codex/config.toml`:\n\n```toml\n[mcp_servers.clipth]\ncommand = \"/Applications/Clipth.app/Contents/MacOS/Clipth\"\nargs = [\"--mcp\"]\n```\n\nAvailable tools:\n\n| Tool | Description |\n|---|---|\n| `search_clipboard` | Keyword or semantic search over clipboard history |\n| `list_recent` | List recent entries, optionally filtered by type |\n| `get_clip` | Fetch one entry by UUID with full content and metadata |\n| `list_tags` | List all tags and usage counts |\n| `list_recent_activity` | List entries added since an ISO date or relative time such as `30m`, `2h`, `3d`, `1w` |\n| `tag_clip` / `untag_clip` | Add or remove tags |\n| `favorite_clip` / `pin_clip` | Update favorite or pinned state |\n| `delete_clip` / `restore_clip` | Soft-delete, permanently delete, or restore entries |\n| `create_snippet` | Create a snippet with optional title and tags |\n\nProtected clips are redacted in MCP responses by default and carry `isProtected` metadata; returning raw protected content requires an explicit opt-in in Settings → Data → Privacy. MCP can still expose other clipboard contents to the client you configure — read [PRIVACY.md](PRIVACY.md) before enabling it for sensitive workflows.\n\n## Install\n\nDownload the latest DMG from the official website, [clipth.app](https://clipth.app), open it, and drag Clipth into Applications.\n\nCurrent public releases are signed with a stable self-signed identity so macOS can keep Accessibility permission across updates. Public notarization is on the roadmap. If macOS blocks a downloaded build, you can build from source with unsigned local signing disabled.\n\n## System Requirements\n\n- macOS 14.0 Sonoma or later\n- Xcode 16.0 or later recommended for development\n\n## Build from Source\n\nOpen `Clipth.xcodeproj` in Xcode, select \"My Mac\", and run.\n\nCommand line:\n\n```bash\nxcodebuild \\\n  -project Clipth.xcodeproj \\\n  -scheme Clipth \\\n  -configuration Debug \\\n  -destination 'platform=macOS' \\\n  -derivedDataPath build \\\n  -skipMacroValidation \\\n  CODE_SIGN_IDENTITY=\"-\" \\\n  CODE_SIGNING_REQUIRED=NO \\\n  CODE_SIGNING_ALLOWED=NO \\\n  build\n```\n\n### Code Signing for Maintainers\n\nReleases use a stable self-signed certificate so macOS keeps Accessibility permission across rebuilds and updates. Without a stable signing identity, the permission can be invalidated after each build even if the System Settings toggle still appears enabled.\n\nRun once to create and install the certificate:\n\n```bash\nscripts/generate-signing-cert.sh\n```\n\nThe script prints `SIGNING_CERT_P12_BASE64` and `SIGNING_CERT_PASSWORD` values for GitHub Actions secrets.\n\n## Keyboard Shortcuts\n\n| Shortcut | Action |\n|---|---|\n| `⌘⇧V` | Open main window |\n| `⌘,` | Open settings |\n| `⌘N` | New snippet |\n| `⌘⏎` | Save in snippet editor |\n| `Esc` | Dismiss preview, go back, or cancel edit |\n\n## Project Docs\n\n- [Privacy](PRIVACY.md)\n- [Security policy](SECURITY.md)\n- [Contributing](CONTRIBUTING.md)\n- [Roadmap](ROADMAP.md)\n- [Code of Conduct](CODE_OF_CONDUCT.md)\n\n## Contributing\n\nIssues and pull requests are welcome. Good first areas include documentation, localization, MCP resources/prompts, URL sanitizer tests, search parser tests, and privacy polish.\n\nBefore contributing, read [CONTRIBUTING.md](CONTRIBUTING.md). For private security or privacy reports, follow [SECURITY.md](SECURITY.md).\n\n## License\n\nClipth is released under the [MIT License](LICENSE).\n"}