A lightweight, keyboard-first clipboard manager built for true cross-platform support. Inspired by Maccy.
Built with Tauri + Rust + React + TypeScript.
Get Paw installed and running in under 2 minutes on Ubuntu/Debian.
sudo apt install xdotool libwebkit2gtk-4.0-37 libgtk-3-0Go to the Releases page and download the .deb package, then:
sudo dpkg -i paw_*.deb
sudo apt-get install -f # fix any missing dependenciesAppImage (no install needed, works on any Linux distro):
chmod +x paw_*.AppImage && ./paw_*.AppImage
paw &Paw starts silently in the system tray. You won't see a window β that's normal.
- Copy anything in any app as usual (
Ctrl+C) - Press
Alt+Vanywhere to open Paw - Type to search your clipboard history
- Use
ββto pick an item, pressEnterto paste it - Press
Escapeor click outside to dismiss
That's it! β
# Create a systemd user service
mkdir -p ~/.config/systemd/user
cat > ~/.config/systemd/user/paw.service << 'EOF'
[Unit]
Description=Paw clipboard manager
[Service]
ExecStart=%h/.local/bin/paw
Restart=on-failure
[Install]
WantedBy=default.target
EOF
systemctl --user enable --now paw.service| Platform | Status | Notes |
|---|---|---|
| π§ Linux (X11) | β Supported | Primary development platform |
| π§ Linux (Wayland) | π‘ Partial | Paste via wtype/ydotool |
| π macOS | β Supported | Native paste via CGEvent, tray/menu integration |
| πͺ Windows | π² Planned |
- π Instant full-text search β fast substring search across title + content
- β¨οΈ Keyboard-first β full keyboard navigation, no mouse needed
- π Pin items β keep frequently used snippets at the top
- ποΈ Slideout preview β same-window preview panel for full content
- πΌοΈ Image support β copies and pastes images, shows thumbnails
- π Virtualized history list β smooth scrolling with large histories
- π Incremental updates β clipboard changes merge without full reload
- π― Auto-paste β select an item and it pastes to the active app
- π§© Tray + footer actions β Preferences, About, Quit, and quick clear
- βοΈ Configurable β hotkey, history size, poll interval and more
- πͺΆ Lightweight β ~4 MB deb package, ~11 MB binary, minimal RAM
- π Dark UI β clean, distraction-free floating panel
| Shortcut | Action |
|---|---|
Alt+V |
Show/hide Paw (configurable) |
β β / Ctrl+P Ctrl+N |
Navigate up/down |
Enter |
Paste selected item |
Escape |
Close preview / close window |
β |
Open preview panel |
β |
Close preview panel |
Alt+P |
Pin / unpin selected item |
Alt+Delete |
Delete selected item |
Ctrl+U |
Clear search |
Ctrl+, |
Open settings |
Ctrl+1β9 |
Paste item by position |
| Double-click | Pin / unpin item |
Open settings with Ctrl+, or via the tray menu. Config is stored in ~/.config/paw/config.json.
| Setting | Default | Description |
|---|---|---|
| Global Hotkey | Alt+V |
Shortcut to toggle Paw β click the field and press your desired combo |
| Max History | 1000 | Maximum items to keep |
| Auto-clear | Never | Auto-delete items after N days |
| Poll Interval | 500 ms | How often clipboard is checked |
| Paste on Select | Yes | Auto-paste when you pick an item |
sudo apt install xdotool
sudo dpkg -i paw_0.1.2_amd64.deb
sudo apt-get install -fchmod +x paw_0.1.2_amd64.AppImage
./paw_0.1.2_amd64.AppImagesudo rpm -i paw-0.1.2-1.x86_64.rpm
sudo dnf install xdotool# Ubuntu / Debian
sudo apt install libwebkit2gtk-4.0-dev libgtk-3-0 libayatana-appindicator3-dev librsvg2-dev xdotoolgit clone https://github.com/ZachL1/Paw.git
cd Paw
npm install
npm run tauri build
# Packages in: src-tauri/target/release/bundle/npm run tauri devPaw
βββ src-tauri/src/ # Rust backend
β βββ main.rs # App entry, Tauri commands, tray, hotkey
β βββ clipboard.rs # Clipboard polling monitor
β βββ database.rs # SQLite storage layer
β βββ config.rs # JSON config persistence
β βββ paste.rs # Paste simulation (xdotool/wtype)
β βββ models.rs # Data models
βββ src/ # React frontend
βββ App.tsx # Main app, window lifecycle, keyboard handling
βββ components/
βββ SearchBar.tsx # Auto-focus search input
βββ HistoryList.tsx # Scrollable item list
βββ PreviewPanel.tsx # Content preview sidebar
βββ SettingsView.tsx # Settings form with hotkey recorder
βββ Footer.tsx # Shortcut hints
| Layer | Technology |
|---|---|
| Framework | Tauri v1 |
| Backend | Rust |
| Frontend | React + TypeScript |
| Styling | Tailwind CSS v4 |
| Database | SQLite (rusqlite) |
| Search | SQLite (LIKE substring, backend) |
| Clipboard | arboard crate |
Paw is inspired by Maccy, an excellent clipboard manager for macOS by Alex Rodionov. While Paw shares no code with Maccy, its UX design β keyboard-first navigation, instant search, floating panel β is modeled after Maccy's elegant approach.
- macOS support β native CGEvent paste, menu bar tray, and keyboard-first popup flow
- macOS
.dmgpackaging β native installer bundle - Windows support β
.msi/.exeinstaller,SendInputpaste, system tray - Wayland full support β window focus and paste under Wayland compositors
- Cloud sync β E2E encrypted history sync across devices
- LAN sync β peer-to-peer sync on the same network (mDNS + TLS)
- Universal clipboard β copy on one device, paste on another
Contributions are welcome! Feel free to open a PR. For major changes, please open an issue first to discuss.