個人 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.