@tobq/boardclip
v2.1.114
Published
Cross-platform clipboard history tray app with numpad quick-paste and native cloud sync
Maintainers
Readme
BoardClip
Fast cross-platform clipboard history for desktop. BoardClip runs as a tray app, opens with a global shortcut, and keeps your useful text and image clips searchable, pinnable, and quick to paste.
Install
Everyday desktop builds are available from the website:
With a package manager:
# macOS (Homebrew): the app opens with no security prompt
brew install --cask tobq/tap/boardclip
# Windows (Scoop)
scoop bucket add tobq https://github.com/tobq/homebrew-tap
scoop install tobq/boardclip
# Any OS with Node.js 18+ (then run `boardclip`; update with `npm update -g @tobq/boardclip`)
npm i -g @tobq/boardclipOr try it without installing: npx @tobq/boardclip.
Terminal install keeps a source checkout on your machine and reuses the same local lifecycle scripts for future updates. This path requires Git, and install/dependency updates also require npm.
It also registers a normal launcher: BoardClip in the Windows Start Menu or ~/Applications/BoardClip.app on macOS.
macOS / Linux:
curl -fsSL https://boardclip.sh/install.sh | shWindows PowerShell:
irm https://boardclip.sh/install.ps1 | iexPrefer to inspect first? Open the script URL in your browser, or download it before running:
curl -fsSLO https://boardclip.sh/install.sh
sh install.shUpdate
macOS / Linux:
curl -fsSL https://boardclip.sh/update.sh | shWindows PowerShell:
irm https://boardclip.sh/update.ps1 | iexLocal checkout update scripts are also available:
./update.shupdate.batLocal update scripts are production-safe by default: they fast-forward only and
refuse to run if tracked app files have local edits. Runtime data files are
ignored and do not block updates. The public update commands above set
BOARDCLIP_UPDATE_ALLOW_DIRTY=1, so normal installs can repair a dirty checkout
with Git autostash. For a developer checkout, set that variable yourself only
when you intentionally want Git to autostash local code changes.
Features
- Hotkey popup: Cmd+Shift+V on macOS, Win+V on Windows.
- Text and image history with automatic deduplication.
- Numpad quick-paste slots 1-9 for snippets you reuse constantly.
- Pins and groups for keeping durable clips organized, with include/exclude filters.
- Native cloud sync through Google Drive, OneDrive, and iCloud folders.
- Regex search, external editor support, and image export.
- Local-first data: no hosted clipboard database or BoardClip account.
Keyboard Shortcuts
| Shortcut | Action | | --- | --- | | Cmd+Shift+V / Win+V | Toggle popup | | Cmd+Numpad 1-9 / Win+Numpad 1-9 | Quick-paste slot | | 1-9 right after the popup opens | Quick-paste slot | | N right after the popup opens | New note | | Win+N (Windows; record one on macOS in Settings) | New note | | Arrow keys | Navigate items | | Enter | Paste selected item | | Escape | Close popup | | Cmd+N / Ctrl+N in the note editor | New note |
Development
Requirements:
- Git
- Node.js and npm
Run from a checkout:
npm install
npm test
npm startBuild desktop binaries locally:
npm run distPlatform-specific package scripts are available as npm run dist:win, npm run dist:mac, and npm run dist:linux. Tagged releases matching v* are built by GitHub Actions and attached to the GitHub release.
Regenerate the shared app, installer, and site icons:
npm run sync:iconsUseful local scripts:
./start.sh
./update.sh
./kill.shstart.bat
update.bat
kill.batProject Structure
main.js: Electron main process, tray, shortcuts, clipboard polling, sync, IPC.index.html: single-file renderer UI.preload.js: safe renderer API bridge.lib/clipboard-model.js: shared pure history/pin/group merge logic.lib/cloud-accounts.js: Google Drive, OneDrive, and iCloud folder discovery.lib/windows-hook*: Windows low-level keyboard hook for Win+V / Win+N / Numpad.site/: static landing page and remote install/update scripts.
Data
Source installs store data in the app checkout. Packaged installs store data in Electron's per-user app data directory:
clipboard-history.jsonclipboard-settings.jsonclipboard-images/clipboard-text/for large text snippets
Cloud sync writes the same files into detected provider folders under clipboard-tray/. That folder name is retained for compatibility with earlier installs.
Contributing
Issues and pull requests are welcome. Please run npm test before opening a PR and keep changes focused; most behavior should go through shared helpers in lib/clipboard-model.js instead of duplicating merge logic in UI or IPC code.
License
MIT
