# pass **Repository Path**: tujiaw/pass ## Basic Information - **Project Name**: pass - **Description**: No description available - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-05 - **Last Updated**: 2026-06-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ClipForge ========= ClipForge is a Qt 6.11.1 + QML desktop clipboard workstation. It is designed around one distinctive idea: copied fragments are not only history items, they can become a replayable "Flow Queue" for repeated paste work. The default UI is a compact always-on-top popup that docks to the right side of the screen. Closing the panel hides it to the tray while clipboard monitoring continues in the background. Core features ------------- - Continuous copy capture with deduplication and size limits. - Signal plus low-cost polling clipboard monitor for reliable background capture on Windows. - Configurable max clip size and history retention limits for long-running local performance. - Privacy guard that skips likely passwords, API tokens, JWTs, private keys, and long high-entropy secrets by default. - SQLite local storage for history, favorites, tags, and workflow steps. - Fast search over content, app/source hints, and tags. - Type filters for text, links, code, JSON, email, and colors. - Favorite/pin management with inline tags and notes; pinned clips are promoted to the top of normal history. - Keyboard-first operation: - `Ctrl+Alt+V` opens the right-side popup. - `Ctrl+Alt+N` pastes the next loaded Flow Queue step. - `Ctrl+1` through `Ctrl+9` paste the corresponding visible history row. - `Ctrl+F` focuses search. - Click a history row to paste it directly into the active app. - The popup hides automatically after paste actions so it does not cover the target window. - Smart clip actions for trimming, single-line cleanup, JSON formatting, and case conversion. - User-defined local text actions based on safe find/replace rules. - Single-clip deletion and one-click cleanup of non-favorite history. - JSON backup export/import for favorites and workflows, stored under the user's Documents/ClipForge folder by default. - Workflow recording and replay: - start recording - copy several values in order - save as a workflow - load a workflow and press Next for manual step-by-step paste - replay the sequence into the clipboard with a configurable delay - edit saved workflow steps, adjust delays, delete steps, and move steps up or down - Extension-friendly C++ service layer exposed to QML. - System tray restore/quit menu and persisted capture switch. - Launch-at-login toggle on Windows. - Excluded active-window title keywords for password managers, remote desktop, and other private contexts. Product direction ----------------- ClipForge intentionally absorbs the parts users tend to value in mature clipboard tools: searchable hotkey-driven history, pinned/favorite clips, lightweight popup UX, type-aware browsing, reusable collections/flows, and script/action-style transforms. Its differentiator is keeping those features local, compact, and centered on the Flow Queue rather than becoming a large multi-window clipboard database. Build ----- Requirements: - Qt 6.11.1 or compatible Qt 6 release with QML, Quick Controls, and SQLite SQL driver. - CMake 3.24+ - A C++17 compiler ```powershell cmake -S . -B build -DCMAKE_PREFIX_PATH="C:\Qt\6.11.1\msvc2022_64" cmake --build build --config Release ``` Run the produced `ClipForge` executable from the build output directory. Quality gate: ```powershell build\ClipForge.exe --self-test ``` The self-test exercises SQLite clip persistence, search/meta updates, workflow step editing, and backup export. A zero exit code means the smoke test passed. Project shape ------------- - `src/ClipboardController.*` listens to the system clipboard and coordinates paste/replay behavior. - `src/ClipboardStore.*` owns SQLite persistence and query APIs. - `src/WorkflowEngine.*` records and replays ordered clipboard steps. - `src/Models.*` exposes Qt list models to QML. - `src/ExtensionManager.*` scans local extension manifests. - `qml/Main.qml` implements the workstation UI. Extension manifests ------------------- Drop JSON files into the extension directory shown in the app footer: ```json { "id": "plain-text-cleaner", "name": "Plain Text Cleaner", "version": "0.1.0", "description": "Future transform hook for copied text cleanup.", "enabled": true, "capabilities": ["transform", "workflow-step"] } ``` The current implementation intentionally treats extensions as declarative manifests. That keeps the first release safe while reserving clear hooks for future native plugins or sandboxed script actions.