Skip to content

shiqkuangsan/Recopy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

334 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Recopy

GitHub Release GitHub Downloads GitHub Stars GitHub Last Commit License Built with Tauri macOS Windows

A free, source-available clipboard history manager for macOS and Windows.

Every copy you make, always within reach.

English | 中文

Dark Mode

Recopy — Dark Mode

More screenshots

Light Mode

Recopy — Light Mode

Quick Look Preview

Quick Look Preview

Installation

Homebrew (macOS)

brew install --cask shiqkuangsan/recopy/recopy

# update to latest version
brew upgrade --cask recopy

Manual Download

Download the latest .dmg or .exe from the Releases page.

Important

macOS users: Recopy is not code-signed yet. macOS will show "app is damaged" or "cannot be opened" on first launch. This is normal — just run this command in Terminal to fix it:

xattr -d com.apple.quarantine /Applications/Recopy.app

Or right-click the app → Open → click "Open" in the dialog. You only need to do this once.

See the full macOS installation guide for more details.

Features

  • Full-type support — Plain text, rich text, images, files, and links
  • Instant recallCmd+Shift+V to summon, arrow keys to navigate, Enter to paste
  • Quick Look preview — Press Space to preview any item with Finder-style zoom animation
  • Flexible layout — Panel docks to any screen edge (bottom/top/left/right), adapts to your workflow
  • Smart dedup — SHA-256 hash prevents duplicate entries, bumps latest to top
  • Full-text search — FTS5 with trigram tokenizer, multi-keyword AND matching, Chinese/English fuzzy search
  • Link detection — URLs auto-recognized with dedicated cards, Cmd+Click to open in browser
  • IME friendly — Search works correctly with Chinese input methods (composition-aware)
  • Favorites — Pin frequently used items for quick access
  • Non-activating panel — NSPanel on macOS, keyboard hook on Windows — never steals focus from your active app
  • Copy HUD — Frosted glass feedback overlay when copying to clipboard
  • Auto-update — Built-in update checker with in-app download and one-click restart
  • Configurable — Theme, language, shortcut, panel position, auto-start, retention policy
  • Privacy first — All data stored locally in SQLite, nothing leaves your machine

Keyboard Shortcuts

Key Action
Cmd+Shift+V Toggle Recopy panel (customizable in settings)
Navigate between items
Jump between date groups
Enter Paste selected item
Space Quick Look preview
Cmd+C Copy to clipboard (with HUD feedback)
Cmd+F Focus search
Cmd+, Open settings
Delete / Backspace Delete selected item
Escape Close panel / blur search

Settings

Open settings via the gear icon in the panel header, tray menu, or Cmd+,.

  • General — Theme (dark/light/system), language (en/zh/system), global shortcut, panel position (bottom/top/left/right), auto-start, close-on-blur
  • History — Retention policy (unlimited/days/count), max item size (1–100 MB), clear history
  • Privacy — Accessibility permission guide, app exclusion list (coming soon)
  • About — Version, license, tech stack

Tech Stack

Layer Technology
Framework Tauri v2
Frontend React 19 + TypeScript + Tailwind CSS v4
Backend Rust
Database SQLite (SQLx, WAL mode)
State Zustand
UI Radix UI + Lucide Icons
i18n react-i18next
Platform NSPanel (macOS), keyboard hook (Windows), virtual scrolling (@tanstack/react-virtual)

Getting Started

Prerequisites

  • Node.js 22+
  • pnpm 10+
  • Rust 1.77+
  • Xcode Command Line Tools (macOS) or Visual Studio Build Tools (Windows)

Development

# Install dependencies
pnpm install

# Start dev server (Vite + Rust hot-reload)
pnpm tauri dev

# Run tests
npx vitest run             # Frontend
cd src-tauri && cargo test # Backend

# Type check
npx tsc --noEmit

# Production build
pnpm tauri build

Build Output

Platform Format
macOS .dmg
Windows NSIS installer

Architecture

Recopy
├── src/                  # React frontend
│   ├── components/       # UI components (cards, search, filters, settings)
│   ├── stores/           # Zustand state management
│   ├── hooks/            # Keyboard navigation, thumbnail lazy-loading
│   └── i18n/             # Locale files (zh, en)
├── src-tauri/
│   └── src/
│       ├── lib.rs        # App setup, tray (i18n), shortcuts, clipboard monitor
│       ├── commands/     # Tauri IPC commands (CRUD, paste, settings, shortcuts)
│       ├── db/           # SQLite models, queries, migrations
│       ├── clipboard/    # Hashing, thumbnails (async), image storage
│       └── platform/     # macOS NSPanel + HUD / Windows non-activating window + keyboard hook
└── website/              # Landing page

Paste Flow

macOS:

  1. User presses Enter on a clipboard item
  2. Rust writes content to system clipboard
  3. NSPanel resigns key window (returns focus to previous app)
  4. osascript simulates Cmd+V with 50ms delay
  5. Panel hides — user sees content pasted seamlessly

Windows:

  1. User presses Enter on a clipboard item
  2. Rust writes content to system clipboard
  3. Window hides and restores previous foreground app
  4. SendInput simulates Ctrl+V with 50ms delay
  5. Content pasted into the still-focused app

License

PolyForm Noncommercial 1.0.0

About

A free, source-available clipboard history manager for macOS and Windows.

Resources

License

Stars

Watchers

Forks

Sponsor this project

Packages

 
 
 

Contributors