个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Clipboard history for your Mac. Search everything you copy and paste it back from the keyboard. Native SwiftUI app with pins and iCloud sync.
翻译准备中
正在加载完整 README。
查看完整 README ↗Clipstack is a native macOS clipboard manager built with SwiftUI and AppKit. It quietly keeps everything you copy, and a single shortcut brings it back: search, preview and paste straight into the app you're working in.
macOS only remembers the last thing you copied. Clipstack remembers the rest, and stays out of your way while doing it.
| Mac App Store | "ClipStack: Clipboard History" is in review and will be listed soon. |
| Direct download | Download the latest DMG. Signed with Developer ID, notarized by Apple, and it updates itself. |
| Homebrew | brew install --cask chiranjeebhub/tap/clipstack |
The direct download and the App Store version share the same history and settings, so install only one of them.
On first launch, Clipstack asks for Accessibility access. macOS requires this before an app can type ⌘V into other apps. Without it, choosing an item copies it to the clipboard and you paste it yourself. The Mac App Store version doesn't paste for you, because App Review doesn't allow apps to use Accessibility for this. There, choosing an item copies it, and you press ⌘V. The direct download and Homebrew versions paste for you.
| Shortcut | Action |
|---|---|
| ⇧⌘V | Open the quick panel (customisable) |
| ↩ | Paste the selected item |
| ⌥↩ | Paste as plain text |
| ⌘1–9 | Paste one of the top nine items |
| ⌘P | Pin or unpin the selected item |
| ⌘E | Edit a text item |
| ⌥1–9 | Paste a pinned item from the menu bar menu |
| Quick panel | Images |
|---|---|
| Pinned items | Menu bar menu |
Read the full privacy policy.
macOS 14 Sonoma or later.
Questions, bugs and feature requests are welcome. See the support page or open an issue.
If Clipstack saves you time, a ⭐ on this repo helps other Mac users find it.
Building needs Xcode 15 or later.
iCloud sync needs the app signed by the developer team set in project.yml. Sign Xcode into that team's Apple Account (Xcode › Settings › Accounts), then run:
scripts/build-signed.sh --install
On the first run, Xcode creates the signing certificate, app ID and iCloud container automatically. The script installs XcodeGen with Homebrew if it's missing.
Without a developer account, scripts/build-app.sh builds an ad-hoc-signed app with everything except iCloud sync:
scripts/build-app.sh
open build/Clipstack.app
To try changes quickly without bundling, run swift run Clipstack. Launch at login, iCloud sync and the app icon only work in a bundled app.
Run the tests with swift test.
The signed app runs in the App Sandbox, as the App Store requires. Its first launch moves history and settings from earlier unsandboxed builds into the sandbox container (Resources/container-migration.plist). To archive a build for the App Store:
scripts/archive-appstore.sh # exports build/AppStore/Clipstack.pkg
scripts/archive-appstore.sh --upload # uploads the build to App Store Connect
Uploading needs an app record for com.chiranjeebhub.clipstack in App Store Connect. Before the first App Store release, deploy the CloudKit schema to production in the CloudKit Console, because App Store builds use the production environment.
The same app is also distributed outside the App Store, as a DMG signed with Developer ID and notarized by Apple, so it opens without Gatekeeper warnings. This build (the ClipstackDirect target) adds Sparkle so it updates itself, and shows Check for Updates… where the App Store build shows Rate Clipstack…. It stays sandboxed and uses the same bundle ID, so it shares history and settings with the App Store version; install only one of them.
Set up the Mac that makes releases once. The script says what it still needs from you: a Developer ID Application certificate, an app-specific password for notarization, and a signed-in GitHub CLI. It also creates the Sparkle signing key and writes the public key into Resources/Info-Direct.plist; commit that change and back up the private key.
scripts/setup-direct.sh
Then, for each release (raise MARKETING_VERSION in project.yml first):
scripts/release-direct.sh # builds and notarizes build/Direct/Clipstack-<version>.dmg
scripts/release-direct.sh --publish # also publishes it
Publishing creates a GitHub release in this repo with the DMG and the Sparkle update feed (appcast.xml, which installed copies read from https://github.com/chiranjeebhub/ClipStack/releases/latest/download/appcast.xml), and updates the Homebrew cask in chiranjeebhub/homebrew-tap, so people can install it with:
brew install --cask chiranjeebhub/tap/clipstack
| Path | What's there |
|---|---|
Sources/ClipboardCore | History model, storage, search and filters, content detection, and the drawn app icon. Covered by tests. |
Sources/Clipstack | The app: pasteboard monitor, global shortcut, paste service, quick panel, menu bar menu, Settings and onboarding. |
Sources/MakeIcon | Renders the app icon to an .iconset during the build. |
scripts/build-signed.sh | Builds the signed app (with iCloud) through the Xcode project generated from project.yml. |
scripts/archive-appstore.sh | Archives the signed app and exports or uploads it for the Mac App Store. |
scripts/setup-direct.sh | One-time setup for direct download releases: certificate check, Sparkle key, notarization login. |
scripts/release-direct.sh | Builds, notarizes and (with --publish) releases the direct download DMG. |
packaging/clipstack.rb | Template for the Homebrew cask. |
scripts/build-app.sh | Builds an ad-hoc-signed Clipstack.app with SwiftPM only, without iCloud. |
Clipstack is released under the MIT License. Copyright © 2026 Chiranjeeb Jena.