- Persistent clipboard history — text and images, kept across restarts.
- Pin items so they never get auto-pruned, regardless of history limits.
- Groups with custom icons — file your snippets, links, and code blocks into named categories from a 35-icon library.
- Fuzzy search across the entire history.
- Quick paste —
⌘1–⌘9to paste any of the top nine items without leaving your keyboard. - QR code for any text item — scan it from your phone instead of e-mailing it to yourself.
- Customizable global shortcut to toggle the window from anywhere.
- System tray support; runs as an accessory app on macOS (no dock icon).
- Light / dark / system theme.
- Auto-start on login, always-on-top, and hide-on-blur are all togglable.
- Cross-platform — macOS, Windows, and Linux from a single Rust + React codebase.
Place your captures in
public/and link them here. Suggested set: main list, group filter, settings, QR modal.
Pre-built artifacts are published on the Releases page.
- Download
Glyphs_x.y.z_aarch64.dmg(Apple Silicon) orGlyphs_x.y.z_x64.dmg(Intel). - Open the
.dmgand drag Glyphs to your Applications folder. - Launch it. The first run will ask for Accessibility permission so it can simulate
⌘Vwhen you click an item — grant it under System Settings → Privacy & Security → Accessibility. - Press the global shortcut (
⌘Bby default) to toggle the window.
- Download
Glyphs_x.y.z_x64-setup.msi. - Run the installer.
- Launch from the Start Menu or system tray.
- Download the
.AppImageor.debartifact. - AppImage:
chmod +x Glyphs_x.y.z_amd64.AppImage && ./Glyphs_x.y.z_amd64.AppImage. - Debian/Ubuntu:
sudo dpkg -i Glyphs_x.y.z_amd64.deb. - Launch from your application launcher.
Glyph uses Tauri 2. Install the Tauri prerequisites for your OS first: https://v2.tauri.app/start/prerequisites/.
git clone https://github.com/devoctane/glyphs.git
cd glyph
npm install
# Development (hot-reloading dev build)
npm run tauri:dev
# Release artifact for your current OS
npm run tauri:buildThe built binary lands in src-tauri/target/release/bundle/.
- Node.js 20 or newer
- Rust 1.77.2 or newer (the version pinned in
src-tauri/Cargo.toml) - Platform deps documented at the Tauri prerequisites link above.
Open Glyph with the global shortcut (default ⌘B on macOS, Ctrl+B on Windows/Linux). Navigate with the keyboard:
| Action | Shortcut |
|---|---|
| Focus search | ⌘ K |
| Move selection | ↑ / ↓ or J / K |
| Switch group | H / L |
| Paste selected | Enter |
| Paste as plain text | Shift + Enter |
| Quick-paste item N | ⌘ 1–⌘ 9 |
| Pin / unpin selected | P |
| Delete selected | ⌘ D |
| Create new group | ⌘ G |
| Open settings | ⌘ , |
| Show shortcuts dialog | ? |
| Hide window / clear search | Esc or ⌘ [ |
The full list also lives in-app at the ? shortcut.
Open Settings with ⌘, (or the gear icon in the footer). Available controls:
- Launch on login — start Glyph automatically when you sign in.
- Max history items — soft cap on unpinned items (10–500). Pinned items are never auto-trimmed.
- Toggle Glyph shortcut — record a new global shortcut. Conflicts with other apps are detected before persisting.
- Theme — System / Light / Dark.
- Always on top — keep Glyph above other windows when shown.
- Hide when window loses focus — auto-close as soon as another app takes focus.
- Show footer — hide the bottom hint bar to reclaim screen space.
- Reset — wipe history, groups, and settings.
Settings are persisted via tauri-plugin-store and survive restarts.
- Frontend — React 18, Zustand, Tailwind CSS v4, Lucide icons.
- Shell — Tauri 2.
- Backend — Rust, with
arboard(clipboard read/write),clipboard-master(cross-platform watcher),tauri-plugin-store(persistence),tauri-plugin-global-shortcut(system-wide hotkey),tauri-plugin-autostart(login items), andenigo/osascript/xdotoolfor synthetic paste keystrokes.
glyph/
├── public/ static assets (icon, screenshots)
├── src/ React app
│ ├── App.tsx
│ ├── components/ shared UI primitives (Kbd, …)
│ ├── features/
│ │ ├── clipboard/ list, item row, modals, shortcut hook
│ │ └── settings/ settings page, recorder, toggles
│ └── store/ Zustand store (talks to Tauri commands)
├── src-tauri/ Rust backend
│ ├── src/
│ │ ├── lib.rs plugin wiring, tray, window toggle
│ │ ├── commands.rs all #[tauri::command] entry points
│ │ ├── clipboard_watcher.rs
│ │ └── store.rs data shape + persisted helpers
│ ├── capabilities/ Tauri permission scopes
│ └── tauri.conf.json
└── ...
Issues and PRs are welcome. Please read CONTRIBUTING.md before opening a PR — it covers local setup, expected code style, and the pre-submission checklist. By participating you agree to abide by the Code of Conduct. Security issues should follow the disclosure process in SECURITY.md.
Looking for somewhere to start? Search the issues for the good first issue label, or pick one of the open areas listed in CONTRIBUTING.md.
MIT © Glyph Contributors.