A lightweight, high-performance Windows system-tray application that captures and stores your clipboard history β text, images, and files.
- π Auto-capture β text, image, and file clipboard events recorded instantly
- π Instant search β fuzzy-filter across the full history as you type
- π Pin items β prevent pinned entries from being evicted
- π Text transforms β 14 one-click transforms (UPPER, lower, Title, URL-encode, Base64, β¦)
- β¨οΈ Rebindable global hotkey β default
Ctrl+Shift+V, change it live in Settings - π±οΈ Right-click context menu β Copy / Pin / Transform / Delete without lifting your hands
- π Dark mode β live toggle in Settings (no restart required); also activates on system High Contrast
- π Encrypted history β
history.jsonprotected with Windows DPAPI (current-user scope) - οΏ½οΈ Excluded-app list β silently skip capture from password managers and other sensitive apps (configurable)
- π Sensitive-content badge β items matching password/token/key patterns are visually flagged
- β±οΈ Auto-expire β unpinned items older than N days are automatically removed (configurable)
- π Copy frequency tracking β tracks how often each item is re-used across sessions
- π Structured logging β rolling log file at
%APPDATA%\ClipboardManager\logs\app-.log; clipboard content is never written - ποΈ Per-item delete and bulk Clear Unpinned
- βοΈ Settings β max history, auto-expire, exclude apps, start-with-Windows, dark mode, hotkey, disk persistence
- πΎ Optional persistence β history survives restarts via
%APPDATA%\ClipboardManager - π Low footprint β ~73 MB self-contained single EXE, targets < 500 ms startup
Grab the latest portable ZIP or installer from the Releases page.
| Artifact | Description |
|---|---|
ClipboardManager-portable-vX.Y.Z.zip |
Extract anywhere and run β no install required |
Requirements: Windows 10 / 11 (x64). No .NET runtime required β the EXE is self-contained.
| Shortcut | Action |
|---|---|
Ctrl + Shift + V |
Open / close the history window (default; rebindable in Settings) |
Tab |
Navigate: Search β List β Pin β Delete β Clear β Copy |
Enter |
Copy the selected item to clipboard |
Space |
Toggle full-size preview (image items) |
Delete |
Delete the selected item |
Escape |
Close the history window |
| Right-click on item | Context menu: Copy / Pin-Unpin / Transform / Delete |
| Tool | Version |
|---|---|
| Windows | 10 or 11 |
| .NET 8 SDK | 8.0.x |
| Git | any recent version |
git clone https://github.com/GetGabed/Clipboard-Manager.git
cd Clipboard-Manager
dotnet restore
dotnet build
dotnet run --project src\ClipboardManagerdotnet testdotnet publish src\ClipboardManager -c Release -r win-x64 --self-contained true `
/p:PublishSingleFile=true -o publish\win-x64.\scripts\release.ps1
# Optional flags:
# -SkipTests skip dotnet test
# -SkipInstaller skip Inno Setup stepTests are in tests/ClipboardManager.Tests/ and run with:
dotnet test| Layer | Class | Line Coverage |
|---|---|---|
| Helpers | CircularBuffer<T> |
93% |
| Helpers | TextTransformHelper |
100% |
| Models | AppSettings |
100% |
| Models | ClipboardItem |
79% |
| Services | ClipboardStorageService |
71% |
| Services | HistoryPersistenceService |
83% |
| Services | SettingsService |
90% |
| ViewModels | BaseViewModel |
100% |
Note: WPF views, Win32 hooks (
ClipboardMonitorService,HotkeyService), and XAML converters are excluded from unit coverage β they require a live WPF runtime.
To regenerate the HTML coverage report:
dotnet test --collect:"XPlat Code Coverage" --results-directory ./coverage
reportgenerator -reports:"coverage/**/coverage.cobertura.xml" -targetdir:"coverage/report" -reporttypes:Htmlsrc/ClipboardManager/
βββ Models/ β ClipboardItem, AppSettings
βββ ViewModels/ β HistoryViewModel, SettingsViewModel (MVVM)
βββ Views/ β HistoryWindow, SettingsWindow (WPF)
βββ Services/ β ClipboardMonitorService, HotkeyService, SettingsService,
β HistoryPersistenceService
βββ Helpers/ β RelayCommand, CircularBuffer<T>, TextTransformHelper,
β StartupHelper, TimestampConverter
βββ Resources/ β Styles (Theme.xaml, DarkColors.xaml), Icons
tests/
βββ ClipboardManager.Tests/ β 99 xUnit unit tests
installer/
βββ ClipboardManager.iss β Inno Setup 6 installer script
scripts/
βββ release.ps1 β full release pipeline
βββ build-portable.ps1 β builds portable ZIP only
Contributions are welcome! Please read CONTRIBUTING.md before opening a pull request.
Quick checklist:
- Branch from
mainusingfeature/,fix/, orchore/prefix dotnet build -c Releasemust produce zero warnings- All existing tests must pass; add tests for new logic where feasible
- Update this README if your change affects user-visible behaviour
For security issues see SECURITY.md.
For feature ideas or bug reports use the GitHub Issues templates.
MIT Β© Gabriel Dubois

