使用 Rust + Tauri 构建的轻量 免费 离线的剪贴板管理工具。
当前阶段: Phase 4 - 开发与实现 (2026-01-13)
- 数据库层 - SQLite 迁移系统,支持 tag 数组
- 剪贴板监听 - 实时监听文本、HTML、图片、文件
- 颜色检测 - 支持 HEX、RGB/RGBA、HSL/HSLA 多种格式
- 搜索功能 - 支持中文/日文/韩文的全文搜索(LIKE 查询)
- IPC 接口 - 5 个核心命令 + 事件推送
- 全局快捷键 - 自动权限检测和设置打开功能
- Tray 菜单 - 托盘图标集成(当前关闭用于测试)
- 调试界面 - Debug Page 用于功能验证
- 完整测试 - 53 个单元测试 + 集成测试
| 命令 | 用途 |
|---|---|
get_recent_clips(limit, offset) |
获取最近剪贴板记录 |
search_clips(query) |
搜索剪贴板内容 |
get_clip_content(id) |
获取完整内容 |
toggle_pin(id) |
切换置顶状态 |
delete_clip(id) |
删除记录 |
open_accessibility_settings() |
打开系统设置(macOS) |
pastee/
├── ai/ # 项目文档
│ ├── master_context.md # 项目总体上下文
│ ├── backend_quick_reference.md
│ ├── data_directory_quick_ref.md
│ └── migration_guide.md # 数据库迁移指南
│
├── src/ # 前端 React
│ ├── components/
│ │ ├── DebugPage.tsx # 调试界面
│ │ └── ...
│ └── lib/
│ └── tauri.ts # Tauri IPC 接口
│
├── src-tauri/ # 后端 Rust
│ ├── src/
│ │ ├── lib.rs # 应用主入口
│ │ ├── clipboard.rs # 剪贴板监听
│ │ ├── persist.rs # 数据持久化
│ │ └── setting.rs # 设置管理
│ ├── migrations/ # 数据库迁移
│ │ └─── 001_init.sql
│ └── tests/ # 单元测试
│
├── HOTKEY_ACCESSIBILITY.md # 快捷键和权限处理文档
├── QUICK_REFERENCE.md # 快速参考卡片
└── package.json
- Node.js 18+ & Bun
- Rust 1.70+
- macOS 12+ 或 Windows 10+
# 启动开发服务
cd /Users/kylin/pastee
bun run tauri devbun tauri buildcd src-tauri
# 运行所有测试
cargo test
# 运行特定测试
cargo test test_add_text
cargo test --test db_tests测试覆盖率: 53 个测试全部通过 ✅
| 文档 | 内容 |
|---|---|
| ai/master_context.md | 项目总体架构和需求规格 |
| ai/migration_guide.md | 数据库迁移管理指南 |
| HOTKEY_ACCESSIBILITY.md | 快捷键权限处理实现详解 |
| QUICK_REFERENCE.md | 快速参考和常见命令 |
| src-tauri/tests/README.md | 测试框架说明 |
- 启动应用 -
bun run tauri dev - 打开浏览器 - 应用会自动打开
- 功能演示:
- 顶部搜索框:实时搜索剪贴板内容
- 类型过滤按钮:按内容类型筛选
- 快捷键信息:点击「显示帮助」了解权限设置
数据默认存储在 $HOME/Documents/pastee/:
~/Documents/pastee/
├── clippy.db # SQLite 数据库
├── clippy.db-shm # 共享内存文件
├── clippy.db-wal # 预写日志
└── images/ # 图片存储目录
- ✅ 完全离线 - 无网络请求,数据仅存本地
- ✅ 本地加密 - SQLite 支持加密模式(可扩展)
- ✅ 应用黑名单 - 自动跳过密码管理器等敏感应用
- ✅ 用户控制 - 所有数据用户可随时删除
- 后端: 在
src-tauri/src/修改对应模块 - IPC 命令: 在
src-tauri/src/lib.rs增加#[tauri::command] - 前端: 在
src/lib/tauri.ts导出对应函数 - 测试: 在
src-tauri/tests/增加测试用例
- 创建新的迁移文件:
src-tauri/migrations/00X_description.sql - 在
src-tauri/src/persist.rs中include_str!()引入 - 遵循 迁移指南
- 构建: ✅ 编译成功
- 测试: ✅ 53/53 通过
- 部署: 📦 可构建发行版本
MIT License - 详见 LICENSE 文件
最后更新: 2026-01-13
维护者: AI Assistant