Inspiration
The Windows clipboard is one of the most frequently used parts of a developer's workflow, yet its history quickly becomes difficult to navigate. Useful code snippets, URLs, file paths, images, and temporary credentials are mixed together, source context is lost, and finding an older item interrupts the task at hand. I wanted a clipboard tool that felt as immediate as the clipboard itself while treating organization, privacy, and data ownership as first-class concerns.
What it does
ClipShelf is a local-first clipboard workspace for Windows. It captures text, URLs, Windows drive paths, and images through native clipboard APIs, records the source application, and presents the history in a keyboard-friendly bottom drawer opened with Alt+Space.
New captures can be routed by built-in detectors or user-defined rules. Rules can combine text, regular expressions, source applications, length, line count, and content type, and one capture can create independent entries in multiple categories. Users can search all active entries or selected categories with case-insensitive multi-term AND search, switch to regular-expression search, filter by source application, favorite entries, and restore archived items.
Sensitive entries can be moved manually into an encrypted vault. The vault uses one master password, Argon2id key derivation, and XChaCha20-Poly1305 authenticated encryption. It supports Windows Hello through current-user DPAPI wrapping, clears unlocked state after inactivity or a Windows session lock, and keeps protected content out of the normal SQLite FTS5 index. A public-key inbox also allows an entry to be moved into the vault while it is locked without retaining a decrypting key in memory.
How I built it
The core is written in Rust and packaged with Tauri 2. Rust owns clipboard capture and write-back, source-process detection, classification, search, expiration, archiving, encryption, SQLite transactions, and Windows integration. The React 19 and TypeScript interface runs in WebView2 and communicates with the core through typed Tauri commands and events. SQLite stores local data, while FTS5 accelerates full-text search without becoming the only copy of the content.
The app is split into two focused windows: a fast, bottom-positioned clipboard drawer for repeated search-and-paste workflows, and a larger management window for categories, rules, vault settings, retention, and destructive actions. Versioned database migrations preserve existing local data as the schema evolves.
How I used Codex and GPT-5.6
Codex powered by GPT-5.6 served as an engineering collaborator throughout the build. I used it to turn the product specification into implementation tasks, inspect and connect the Rust/Tauri/React layers, reason about Windows API edge cases, design database migrations, review security-sensitive vault state transitions, write focused tests, and iterate on the drawer and management UI. I kept the product requirements and security invariants in AGENTS.md, then reviewed and verified the generated changes against those constraints.
ClipShelf itself does not call the OpenAI API and has no runtime AI dependency. Clipboard content remains local; Codex and GPT-5.6 were used to build and validate the software, not to process a user's clipboard after installation.
Challenges I ran into
The hardest part was preserving clear product semantics across storage, search, and UI. When several rules target different categories, ClipShelf must create truly independent entries rather than tags pointing to one shared record. That required transactional writes, deduplication only within the same target category, and tests proving that moving, favoriting, archiving, or deleting one copy never changes another.
Search also required care. The visible behavior must work for Chinese, English, code, URLs, punctuation, and whitespace-separated AND terms instead of inheriting accidental tokenizer behavior from FTS5. Regular-expression errors must be reported without blocking the UI. On the security side, moving content into a locked vault required a separate public-key encrypted inbox so plaintext could leave the normal table and search index immediately without keeping the vault key unlocked.
Windows integration added another set of edge cases: clipboard formats, DIB/PNG conversion, source application icons, multi-monitor drawer placement, simulated paste, global shortcuts, single-instance activation, DPAPI, Windows Hello, and session-lock detection all had to fail safely.
Accomplishments that I'm proud of
ClipShelf is a complete native Windows workflow rather than a static prototype. It includes versioned SQLite migrations, independent multi-category capture, scoped full-text and regex search, source-aware filtering, archive lifecycle management, encrypted vault behavior, Windows Hello, automatic locking, global shortcut activation, tray controls, and installable Windows artifacts.
The Rust core currently has 30 passing tests covering the highest-risk rules, search, database lifecycle, migration, and vault behaviors. Most importantly, the security model does not depend on hiding plaintext in the UI: protected content is encrypted before storage and excluded from the ordinary search path.
What I learned
I learned that a clipboard manager is less about storing strings than about defining trustworthy state transitions. Capture, duplication, classification, movement, expiration, archive restoration, encryption, locking, and paste-back all interact. Writing explicit invariants first made both implementation and AI-assisted review much more reliable. I also learned how much product quality in a desktop utility depends on small Windows-native details such as focus restoration, monitor selection, clipboard format ownership, and safe failure behavior.
What's next for ClipShelf
The next steps are broader real-world compatibility testing across Windows applications, performance profiling with large histories and images, code-signing and installer polish, and continued keyboard and interaction refinement. I also want to expand automated end-to-end coverage around native clipboard and multi-window behavior while preserving ClipShelf's local-first model and explicit security boundaries.
Log in or sign up for Devpost to join the conversation.