一个基于 Wails + Vue 3 + TypeScript 的跨平台剪贴板历史管理工具。
https://apps.apple.com/us/app/剪存/id6754015301
- 新增自定义脚本-点击查看
- 📋 自动保存剪贴板历史
- 🖼️ 支持文本和图片
- 🔍 实时搜索和过滤功能
- 💾 本地 SQLite 数据库存储
- 文本功能:智能识别和展示剪贴板文本内容,支持URI和Unicode解码,提供多种格式的文本查看。
- 文件功能:管理剪贴板中的文件信息,显示文件大小、路径等详细信息,支持在Finder中快速打开文件。
- 图片功能:自动捕获剪贴板中的图片内容,支持识别二维码、预览、放大查看和保存到本地文件。
- URL功能:解析和展示剪贴板中的链接地址,自动提取URL参数并以表格形式展示,支持在浏览器中快速打开。
- 颜色功能:智能识别剪贴板中的颜色值,提供可视化颜色预览、格式转换和一键复制功能
- JSON功能:智能识别剪贴板中的JSON格式内容(对象或数组),提供可视化JSON编辑器,支持格式化、编辑、导航和复制功能,方便查看和修改JSON数据结构。
- 设置功能:提供密码保护、自动清理、快捷键配置、界面设置等个性化选项,确保应用安全性和使用便利性。
- 后端: Go + Wails v2
- 前端: Vue 3 + TypeScript + Vite
- 数据库: SQLite3
- 剪贴板: golang.design/x/clipboard
go install github.com/wailsapp/wails/v2/cmd/wails@latest# Go 依赖
go mod tidy
# 前端依赖
cd frontend
npm installwails dev这将启动热重载开发服务器:
- 后端 Go 代码修改会自动重新编译
- 前端 Vue 代码修改会自动热重载
开发模式下,应用会自动打开开发者工具,可以查看:
- Console 日志
- Network 请求
- 前端组件状态
wails build构建完成后,可执行文件将位于 build/bin/ 目录下。
# 构建 Intel 版本
wails build -platform darwin/amd64
# 构建 Apple Silicon 版本
wails build -platform darwin/arm64
# 构建通用二进制(推荐)
wails build -platform darwin/universalwails build -platform windows/amd64wails build -platform linux/amd64.
├── main.go # 主程序入口
├── app.go # Wails 应用结构和 API
├── wails.json # Wails 配置文件
├── go.mod # Go 依赖管理
├── common/ # 共享代码
│ ├── clipboard.go # 剪贴板逻辑
│ ├── clipboard_darwin.go # macOS 特定代码
│ └── db.go # 数据库操作
├── frontend/ # 前端代码
│ ├── src/
│ │ ├── App.vue # 主应用组件
│ │ ├── components/
│ │ │ └── ClipboardHistory.vue # 剪贴板历史组件
│ │ ├── main.ts # 前端入口
│ │ └── style.css # 全局样式
│ ├── index.html # HTML 模板
│ ├── package.json # 前端依赖
│ ├── vite.config.ts # Vite 配置
│ └── tsconfig.json # TypeScript 配置
└── build/ # 构建资源和输出
├── bin/ # 编译后的可执行文件
├── appicon.png # 应用图标
└── darwin/ # macOS 特定配置
在 app.go 中定义的方法会自动暴露给前端:
SearchClipboardItems(keyword, filterType, limit)- 搜索剪贴板项目GetClipboardItems(limit)- 获取剪贴板列表GetClipboardItemByID(id)- 根据 ID 获取项目CopyToClipboard(id)- 复制项目到剪贴板DeleteClipboardItem(id)- 删除项目GetStatistics()- 获取统计信息
import { SearchClipboardItems } from '../wailsjs/go/main/App'
// 搜索剪贴板项目
const items = await SearchClipboardItems('关键词', '所有类型', 100)- 启动应用后,它会在后台自动保存系统剪贴板
- 每次复制内容时,都会自动保存到历史记录
- 使用顶部搜索框可以快速查找历史记录
- 使用过滤器可以按类型筛选内容(文本/图片/URL等)
- 点击任意历史记录可以查看详情
- 点击"复制"按钮可以将内容复制回剪贴板
- 点击"删除"按钮可以删除历史记录
剪贴板历史保存在:~/.clipsave/clipboard.db
数据库会自动创建,包含以下字段:
- ID - 唯一标识符
- Content - 内容文本
- ContentType - 内容类型
- ImageData - 图片数据(PNG格式)
- Timestamp - 时间戳
- Source - 来源
- CharCount - 字符数
- WordCount - 单词数
- macOS: 10.13 High Sierra 或更高版本
- Windows: Windows 10/11(1809或更高版本)+ WebView2
- Linux: 支持 WebKit2GTK 的发行版
- Go: 1.21 或更高版本
- Node.js: 16 或更高版本
每次修改 app.go 中的方法后,需要重新生成前端绑定:
wails generate module或者使用开发模式,会自动生成:
wails dev前端使用 Vite + Vue 3 + TypeScript:
- 支持 TypeScript 类型检查
- 使用 Composition API
- 自动导入 Wails 绑定
- 热模块替换(HMR)
项目使用了 CGO(用于 SQLite 和剪贴板操作),构建时需要:
- macOS: 需要 Xcode Command Line Tools
- Windows: 需要 MinGW-w64
- Linux: 需要 gcc
确保安装了所有依赖:
# macOS
xcode-select --install
# Windows
# 安装 MSYS2 和 MinGW-w64
# Linux
sudo apt-get install build-essential libgtk-3-dev libwebkit2gtk-4.0-dev确保已经运行了 wails generate module 生成前端绑定。
MIT License
💗 请作者喝杯咖啡
如果这个软件帮你省下了时间(或者至少没让你抓狂),欢迎请作者喝杯咖啡 ☕ 或者啤酒 🍺!
每一杯咖啡都会神奇地转化为:新功能、更少的 bug(我尽量)、以及作者熬夜写代码时的精神支柱。
你的 Star ⭐ 和捐赠是我修复 bug 和添加新功能的原动力(也是我买咖啡的经费)!
"请我喝杯咖啡吧 ☕"
如果这个项目对你有帮助,欢迎给项目点个 Star ⭐,这是对我最大的支持!
- Wails - 构建桌面应用的框架
- Vue 3 - 渐进式 JavaScript 框架
- golang.design/x/clipboard - 跨平台剪贴板库
- json-editor-vue
- highlight.js

