Klip 是一个当前以 Windows 为 MVP 交付目标的桌面剪贴板管理器,解决操作系统剪贴板只能保存一条内容的限制,帮助用户高效管理复制粘贴历史。
| 用户类型 | 使用场景 |
|---|---|
| 知识工作者 | 收集资料、整理笔记 |
| 开发者 | 复制代码片段、命令行 |
| 内容创作者 | 写作素材收集 |
| 数据录入人员 | 重复性粘贴操作 |
- 效率提升 - 快速访问历史剪贴板内容,减少重复复制
- 隐私保护 - 本地存储,数据不上传云端
- 平台聚焦 - 当前 MVP 以后端 Windows 体验为主,后续扩展 macOS/Linux
- 轻量高效 - 低内存占用,快速启动
Klip - 简短有力,K 开头有辨识度,易于记忆和搜索。
| 属性 | 内容 |
|---|---|
| 描述 | 自动监听并保存剪贴板内容变化 |
| 用户场景 | 用户复制文本后,内容自动保存到历史列表 |
| 验收标准 | 1. 复制内容后 100ms 内出现在列表 2. 最多保存 100 条记录 3. 自动去重相同内容 |
| 技术要点 | 使用 clipboard-rs 统一监听/读写,SQLite 存储,哈希抑制应用自身写回事件 |
| 属性 | 内容 |
|---|---|
| 描述 | 支持识别和存储不同类型的内容 |
| 用户场景 | 用户复制文本、图片、文件,都能正确保存和预览 |
| 验收标准 | 1. 正确识别文本、图片、文件路径 2. 图片显示缩略图预览 3. 文件显示文件名和数量 |
| 技术要点 | 检测剪贴板格式类型,图片 Base64 存储 |
| 属性 | 内容 |
|---|---|
| 描述 | 通过快捷键快速显示/隐藏主窗口 |
| 用户场景 | 用户在任何应用中按快捷键,Klip 窗口立即出现 |
| 验收标准 | 1. 当前默认快捷键为 Ctrl+Alt+K2. 当前运行时支持 Ctrl+Alt+<A-Z> 范围内的窗口快捷键配置3. 修改后无需重启即可重载热键 |
| 技术要点 | tauri-plugin-global-shortcut |
| 属性 | 内容 |
|---|---|
| 描述 | 使用 Ctrl+Alt+数字键 快速选择并粘贴历史记录 |
| 用户场景 | 用户按 Ctrl+Alt+1 到 Ctrl+Alt+9,对应记录立即粘贴到当前应用 |
| 验收标准 | 1. Ctrl+Alt+1 到 Ctrl+Alt+9 对应当前搜索和筛选后的前 9 条可见记录2. 已同步空结果或已删除快照 ID 不回退到其他记录 3. 粘贴后窗口自动隐藏 |
| 技术要点 | 前端同步最多 9 个有序 ID 到进程内快照;快捷键按位置解析并从数据库重新加载该 ID,再调用系统剪贴板 API 和模拟 Ctrl+V 粘贴 |
| 属性 | 内容 |
|---|---|
| 描述 | 按关键词搜索历史记录 |
| 用户场景 | 用户输入关键词,列表实时过滤匹配内容 |
| 验收标准 | 1. 搜索响应时间 < 50ms 2. 支持原内容、预览、OCR、自定义标题和备注匹配 3. 支持内容类型、标签、收藏、敏感、精确匹配和创建日期范围过滤 4. 搜索框自动聚焦,可直接用方向键选择、Enter 原格式粘贴、Ctrl+Enter 纯文本粘贴,IME 组合输入不触发粘贴 |
| 技术要点 | Tantivy + jieba 全文检索;SQLite 叠加等值/范围筛选并在索引异常时回退 LIKE;标题/备注更新后同步索引并刷新活动搜索 |
| 属性 | 内容 |
|---|---|
| 描述 | 删除单条或全部历史记录 |
| 用户场景 | 用户右键或点击删除按钮移除不需要的内容 |
| 验收标准 | 1. 支持删除单条记录 2. 支持清空全部记录 3. 删除操作有确认提示 |
| 技术要点 | 数据库 DELETE 操作 |
| 属性 | 内容 |
|---|---|
| 描述 | 应用在系统托盘运行,不占用任务栏 |
| 用户场景 | 用户关闭窗口后,应用继续在托盘运行 |
| 验收标准 | 1. 托盘图标显示应用状态 2. 托盘菜单支持常用操作 3. 点击托盘图标显示窗口 |
| 技术要点 | Tauri TrayIcon API |
| 属性 | 内容 |
|---|---|
| 描述 | 所有数据存储在本地 SQLite 数据库 |
| 用户场景 | 用户数据完全本地化,无需网络 |
| 验收标准 | 1. 数据库文件在用户目录 2. 当前版本完成基础本地存储能力 3. 当前版本提供 JSON/CSV 导入导出和数据库备份/恢复 4. 当前版本具备 schema 版本门禁、轻量迁移、损坏数据库保留与干净重建能力 |
| 技术要点 | rusqlite crate,数据目录管理 |
| 属性 | 内容 |
|---|---|
| 描述 | 用户设置自动保存和加载 |
| 用户场景 | 用户修改设置后,下次启动保持配置 |
| 验收标准 | 1. 配置存储在数据库 2. 提供默认配置 3. 当前后端运行时消费 hotkey_toggle_window、hotkey_quick_paste_prefix,并支持 auto_start 同步系统自启动状态 |
| 技术要点 | 配置表存储,JSON 序列化 |
| 属性 | 内容 |
|---|---|
| 描述 | 可选开机时自动启动应用,并将系统状态与数据库配置保持一致 |
| 用户场景 | 安装包阶段由用户显式启用后,每次开机自动运行 Klip |
| 验收标准 | 1. 用户可显式开启或关闭系统自启动 2. 应用启动时按 auto_start 配置同步系统状态3. 以 Windows 为主验证,其他平台作为后续阶段补充验证 |
| 技术要点 | tauri-plugin-autostart 或平台 API |
| 属性 | 内容 |
|---|---|
| 描述 | 提供标签管理、常用片段管理,以及按来源忽略剪贴板采集 |
| 用户场景 | 用户给历史条目打标签、保存常用命令或短语,并避免保存密码管理器/隐私窗口内容 |
| 验收标准 | 1. 支持创建/删除标签,并在单条或批量历史条目上分配标签 2. 支持创建、搜索、复制和删除片段 3. 按平台可用的前台应用名、窗口标题或两者匹配来跳过剪贴板采集;来源不可用时不阻止捕获 4. 监听暂停和隐私模式会阻止新条目入库 |
| 技术要点 | SQLite 关系表、snippets 表、clipboard_source_rules 表,以及 Windows、macOS、Linux X11 的 best-effort 来源查询 |
| 属性 | 内容 |
|---|---|
| 描述 | 记录发布相关配置,并明确外部服务不属于当前 MVP |
| 用户场景 | 发布前确认 Windows 签名输入和更新源 URL 是否已配置;设置页不把云同步、插件市场或真实加密伪装成已上线能力 |
| 验收标准 | 1. 设置页可保存监听开关、更新源、加密就绪开关、同步目录和插件目录 2. 更新、加密、同步和插件配置默认收在高级折叠区 3. pnpm release:readiness 可报告签名与更新源配置状态4. 不伪造外部服务状态:证书、托管更新源、云同步服务、真实加密迁移和插件市场仍需外部提供 |
| 技术要点 | app_config 持久化,PowerShell release readiness 检查 |
| 属性 | 内容 |
|---|---|
| 描述 | 明确区分复制与粘贴,并在统一详情中提供完整预览、纯文本操作、有限内容动作和 annotation |
| 用户场景 | 用户可以只把历史内容复制回系统剪贴板,也可立即粘贴;可查看文本/富文本/图片/OCR/文件详情,并为条目补充可搜索标题和备注 |
| 验收标准 | 1. 复制不模拟粘贴且不隐藏窗口,粘贴会恢复目标并隐藏窗口 2. 文本支持保留格式与纯文本 copy/paste,非文本拒绝 plain 命令 3. 统一详情完整显示已有内容类型,敏感遮罩不泄露原内容或 annotation 4. 只对完整 HTTP/HTTPS URL、保守邮箱和已验证本地路径提供打开/定位/复制动作 5. 标题最多 200 个 Unicode 字符,备注最多 10,000 个,空白保存为 NULL 并参与搜索 |
| 技术要点 | DB v7、类型化 Tauri IPC、统一 clipboard writer、DOMPurify、执行前后端重新检测内容动作 |
以下为产品目标;当前仓库已提供覆盖率和发布验证入口。覆盖率、冷启动、内存、搜索延迟 和安装包大小都必须在具体发布候选上重新测量,不能沿用历史结果声明达标。
| 指标 | 目标值 |
|---|---|
| 冷启动时间 | < 1 秒 |
| 热启动时间 | < 200ms |
| 内存占用 (空闲) | < 50MB |
| 内存占用 (100条记录) | < 100MB |
| 剪贴板监听延迟 | < 100ms |
| 搜索响应时间 | < 50ms |
| 安装包大小 | 记录并披露;离线 OCR 资源不适用早期的 10MB 目标 |
| 平台 | 版本要求 |
|---|---|
| Windows | Windows 10+(当前实现目标) |
| macOS | macOS 11+ (Big Sur)(后续阶段) |
| Linux | Ubuntu 20.04+, Fedora 35+(后续阶段) |
- 本地数据存储,不上传云端
- 可选敏感内容检测(密码、密钥等),并可选择标记或跳过新捕获的敏感文本
- Windows、macOS 和 Linux X11 按平台可用信息执行来源规则;Wayland/不支持平台为空来源降级
- 数据库位于操作系统用户数据目录;额外文件权限加固尚未完成跨平台验证
- 模块化代码结构
- 提供
pnpm test:coverage覆盖率测量;80% 覆盖率目标当前尚未作为强制门禁 - 完整的 API 文档
┌─────────────────────────────────────┐
│ 🔍 搜索框 ⚙️ 设置 │ ← Header (40px)
├─────────────────────────────────────┤
│ 全部 │ 文本 │ 图片 │ 文件 │ ← 类型筛选 (32px)
├─────────────────────────────────────┤
│ │
│ ┌─────────────────────────────┐ │
│ │ 📋 复制的内容预览... 10:30 │ │ ← 剪贴板列表项
│ │ [🗑️] │ │
│ └─────────────────────────────┘ │
│ │
│ ┌─────────────────────────────┐ │
│ │ 🖼️ 图片 200x150 10:28 │ │
│ │ [🗑️] │ │
│ └─────────────────────────────┘ │
│ │
│ ... │
│ │
└─────────────────────────────────────┘
| 属性 | 值 |
|---|---|
| 默认宽度 | 560px |
| 默认高度 | 760px |
| 最小宽度 | 360px |
| 最小高度 | 480px |
| 窗口装饰 | 无边框 |
| 置顶 | 是 |
| 显示状态 | 默认隐藏 |
| 菜单项 | 功能 |
|---|---|
| 显示窗口 | 打开主窗口 |
| 开机自启 | 设置中可开启/关闭,安装包阶段重点验证 |
| 设置 | 打开设置面板 |
| 关于 | 显示版本信息 |
| 退出 | 关闭应用 |
| 项目 | 状态 |
|---|---|
| 应用启动和主窗口渲染 | 已由前端测试、构建和桌面 E2E 覆盖 |
| 剪贴板监听 | 已由桌面 E2E 覆盖文本复制流程 |
| 文本、图片、文件识别 | 已由后端格式策略测试和前端预览测试覆盖;安装包发布前仍需实机抽查 |
| 快捷键唤起和数字键快速粘贴 | 可见项快照已由 Windows 隔离桌面 E2E 验收;发布前仍需安装包抽查全局唤起 |
| 搜索和筛选 | 已由前端、IPC、Tantivy/SQLite 测试和 Windows 桌面 E2E 覆盖 |
| 复制/粘贴、纯文本与统一详情 | 组件/后端测试覆盖语义和详情边界;Windows 剪贴板集成测试确认 plain 模式不写 HTML/RTF |
| 内容动作与 annotation | Windows 桌面 E2E 已验证中文/空格路径打开与定位、annotation 持久化和 note-only 搜索 |
| 删除和清空历史 | 已由前端交互测试和后端测试覆盖 |
| 系统托盘 | 已接入运行时;发布前需安装包实机验证 |
| 设置保存和加载 | 已由 store、Settings 和后端配置测试覆盖 |
| 开机自启动 | 已接入设置和后端同步;发布前需重启或重新登录实测 |
| 性能指标 | 作为目标保留,冷启动和内存占用需在发布候选安装包上实测 |
| 明显阻塞 Bug | 当前自动化验证未发现阻塞项 |
- 基础流程: 复制 → 显示在列表 → 搜索 → 方向键选择 → Enter 粘贴
- 复制/纯文本流程: 独立复制不隐藏窗口 → Ctrl+Enter 纯文本粘贴 → 系统剪贴板无 HTML/RTF
- 快捷键流程: 按 Ctrl+Alt+K → 窗口显示 → 筛选到唯一记录 → 按 Ctrl+Alt+1 → 粘贴可见项
- 详情和动作流程: 打开详情 → 预览完整内容 → 对经验证路径执行打开/定位
- Annotation 流程: 详情中保存标题和备注 → 关闭详情 → 只搜索备注 token → 显示自定义标题
- 托盘流程: 关闭窗口 → 托盘图标存在 → 点击显示窗口
详见 ROADMAP.md
当前不继续扩大功能面。优先保持 Windows-first 本地剪贴板管理器的小闭环稳定:复制、记录、搜索、粘贴、快捷键、托盘、隐私控制和本地数据恢复。
- 云同步:当前只有本地同步目录配置,不含服务端、账号或冲突处理。
- 插件系统:当前只有本地插件目录配置,不含插件运行时和市场。
- 自动更新服务:当前只有更新源配置和发布脚本检查,不含托管更新源。
- 真实数据库加密迁移:当前只有就绪配置,不含密钥管理和迁移流程。
- AI 智能分类:不属于当前剪贴板 MVP 的核心闭环。