Minimal macOS clipboard manager in the menu bar, built with Tauri v2 + Svelte + Rust.
- Menu bar popover with tray icon toggle
- Clipboard text/URL capture in Rust backend
- Persistent clipboard history on disk
- Event-driven UI refresh on clipboard changes
- Click-to-copy, delete per item, escape to close
- Light/dark mode follows system
- macOS 14+
- Node.js 18+
- Rust toolchain >= 1.88
If Homebrew Rust is preferred in your shell, run:
export PATH="$HOME/.cargo/bin:$PATH"The repo pins Rust via rust-toolchain.toml (1.88.0) for reproducible local/CI builds.
npm install
npm run tauri devnpm run check
npm run test
npm run ci:preflightApp bundle:
npm run build:macos:appDMG for distribution tests:
npm run build:macos:dmgbuild:macos:app/build:macos:dmg disable updater artifacts for local testing, so no signing key is required.
Outputs:
src-tauri/target/release/bundle/macos/ClipStack.appsrc-tauri/target/release/bundle/dmg/ClipStack_*.dmgLatest/ClipStack_latest_*.dmg
- Run preflight:
npm run release:preflight - Bump version in all three files:
package.jsonsrc-tauri/Cargo.tomlsrc-tauri/tauri.conf.json
- Build and validate DMG:
npm run build:macos:dmg - Push to
main:git push origin main - GitHub Actions (
.github/workflows/release.yml) creates signed artifacts andlatest.json - Workflow also syncs newest DMGs to release tag
latestwith stable asset names:ClipStack_latest_aarch64.dmgClipStack_latest_x64.dmg
- Required repository secrets:
TAURI_SIGNING_PRIVATE_KEYTAURI_SIGNING_PRIVATE_KEY_PASSWORD
- Stable website download URLs:
https://github.com/Glossardi/ClipStack/releases/download/latest/ClipStack_latest_aarch64.dmghttps://github.com/Glossardi/ClipStack/releases/download/latest/ClipStack_latest_x64.dmg
- Clipboard history file:
<app_data_dir>/clipboard_history.json - Data remains local on device (no telemetry/sync)
- CSP is enabled and frontend uses module imports (no global
window.__TAURI__)
Source-available under LICENSE (non-commercial for third parties; commercial use reserved to the licensor).