V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
snso
1.68D
V2EX  ›  分享创造

剪存:让剪贴板完成自动化工作(入选阮一峰周刊, GitHub 200+ Stars)

  •  
  •   snso · 10 小时 37 分钟前 · 1017 次点击

    剪存:让剪贴板成完成自动化工作

    一个强大的剪贴板历史管理工具,现已支持自定义脚本功能,让你的剪贴板操作自动化起来!

    🎉 最新进展

    📰 入选阮一峰周刊

    ⭐ GitHub 200+ Stars

    • 项目在 GitHub 上已获得 200+ Stars (刚刚 200🤣)
    • 感谢每一位支持者的 Star 和反馈!
    • 特别感谢 v 佬们的支持和提供的建议

    📋 关于剪存

    剪存是一个跨平台的剪贴板历史管理工具,基于 Wails + Vue 3 构建,支持 macOS 和 Windows 。关于基础功能(自动保存、搜索过滤、图片处理等)可以参考之前的推广文。今天重点介绍的是自定义脚本功能——这个让剪存变成的强大。

    ✨ 自定义脚本功能:让剪贴板更智能

    核心特性

    1. JavaScript 脚本支持:使用熟悉的 JavaScript 编写脚本,无需学习新语言
    2. 两种触发方式
      • 手动执行:通过快捷键或菜单手动触发脚本
      • 自动执行:剪贴板内容保存后自动运行(可配置过滤条件)
    3. 灵活的过滤机制
      • 按内容类型过滤(文本/图片/URL/JSON 等)
      • 按关键词过滤(支持正则表达式)
    4. 完整的浏览器 API:可以使用 fetchcryptoDate 等所有浏览器 API
    5. 内置 API 函数:通过 import 导入 csRequest( HTTP 请求)和 csCopyText(剪贴板复制)等函数

    🎯 丰富的使用场景

    1. 开发场景

    📝 JSON Mock 数据生成

    复制一个 JSON Schema 或 API 响应模板,自动生成符合格式的 Mock 数据。支持智能识别字段类型(邮箱、手机号、日期、图片 URL 等),生成真实感的数据。

    适用场景

    • 前端开发时快速生成测试数据
    • API 接口联调时生成模拟响应
    • 数据库填充测试数据

    🎫 JWT Token 生成

    复制用户信息或配置,自动生成 JWT Token ,方便 API 测试和调试。

    适用场景

    • API 开发测试
    • 身份验证调试
    • 微服务间通信测试

    ⏰ 时间戳转换

    复制时间戳或日期字符串,自动转换为可读格式,支持双向转换。

    适用场景

    • 日志分析
    • 时间格式转换
    • 调试时间相关问题

    2. 数据处理场景

    📤 Base64 编码/解码

    快速对文本进行 Base64 编码或解码,支持 Unicode 字符。

    适用场景

    • 图片转 Base64
    • 数据传输编码
    • 配置文件处理

    📝 文本信息提取

    从文本中自动提取邮箱、URL 、手机号、身份证号、银行卡号、IP 地址等结构化信息。

    适用场景

    • 数据清洗和整理
    • 隐私信息检查
    • 批量信息提取

    3. 通知协作场景

    💬 钉钉/企业微信消息推送

    复制重要信息后,自动推送到钉钉群或企业微信群,实现跨设备通知。

    适用场景

    • 重要信息及时通知团队
    • 跨设备内容同步
    • 工作流自动化

    📱 Pushover 推送

    将剪贴板内容推送到手机,支持优先级设置。

    适用场景

    • 个人重要信息提醒
    • 跨平台内容同步
    • 紧急信息通知

    4. 内容处理场景

    🔗 URL 短链接生成

    复制长链接,自动生成短链接,方便分享。

    适用场景

    • 社交媒体分享
    • 文档中的链接简化
    • 二维码生成前的链接处理

    🤖 AI 文本分析

    复制文本内容,调用 AI API (如阿里云百炼)进行情感分析、内容总结、错别字检测等。

    适用场景

    • 文本情感分析
    • 内容摘要生成
    • 智能文本处理

    5. 工作流自动化场景

    📊 数据格式转换

    复制不同格式的数据,自动转换为目标格式( CSV ↔ JSON 、Markdown ↔ HTML 等)。

    适用场景

    • 数据格式转换
    • 文档格式处理
    • 批量数据处理

    🔍 内容验证

    复制内容后自动验证格式(邮箱格式、URL 有效性、JSON 合法性等)。

    适用场景

    • 数据质量检查
    • 格式验证
    • 错误检测

    💡 实际案例分享

    案例 1:前端开发者的 Mock 数据生成器

    场景:前端开发时需要大量测试数据,但手动编写太繁琐。

    解决方案

    1. 复制 API 返回的 JSON Schema
    2. 运行 Mock 数据生成脚本
    3. 自动生成 10-20 条符合格式的测试数据
    4. 数据包含真实的邮箱、手机号、日期等格式

    效果:从 10 分钟手动编写数据 → 3 秒自动生成

    案例 2:团队协作的信息同步

    场景:开发过程中复制了重要的错误信息或配置,需要及时通知团队成员。

    解决方案

    1. 配置钉钉推送脚本
    2. 设置关键词过滤(如包含 "error" 或 "config")
    3. 复制相关内容后自动推送到团队群

    效果:重要信息自动同步,无需手动发送消息

    案例 3:日志分析的时间戳转换

    场景:查看日志时遇到大量时间戳,需要快速转换为可读格式。

    解决方案

    1. 复制时间戳
    2. 运行时间戳转换脚本
    3. 自动识别秒级/毫秒级时间戳并转换

    效果:无需打开在线工具,一键转换

    🛠️ 如何开始使用?

    1. 安装剪存

    2. 创建你的第一个脚本

    1. 打开剪存应用
    2. 进入设置 → 脚本管理
    3. 点击"新建脚本"
    4. 填写脚本信息(名称、描述、触发时机等)
    5. 编写 JavaScript 代码
    6. 保存并启用

    3. 使用示例脚本

    项目提供了多个开箱即用的脚本示例:

    • JSON Mock 数据生成器
    • Base64 编码/解码
    • JWT Token 生成
    • 文本信息提取
    • 钉钉/Pushover 消息推送
    • URL 短链接生成
    • 时间戳转换

    你可以在 GitHub 仓库 中找到这些脚本,直接复制使用或作为参考。

    🎨 脚本编写示例

    简单示例:文本转大写

    if (item.ContentType !== "Text") {
      return { error: "只支持文本类型" };
    }
    return item.Content.toUpperCase();
    

    进阶示例:调用外部 API

    import { csRequest } from '@clipsave/api';
    
    // 使用内置的 csRequest 函数调用 API (绕过 CORS 限制)
    const responseJson = await csRequest(
      'POST',
      'https://api.example.com/process',
      JSON.stringify({ 'Content-Type': 'application/json' }),
      JSON.stringify({ text: item.Content })
    );
    
    const response = JSON.parse(responseJson);
    return response.body.result;
    

    复制到剪贴板示例

    import { csCopyText } from '@clipsave/api';
    
    // 生成结果后自动复制到剪贴板
    const result = processData(item.Content);
    await csCopyText(result);
    return result;
    

    🌟 为什么选择剪存?

    1. 跨平台:支持 macOS 、Windows
    2. 开源免费:MIT 许可证,完全开源
    3. 轻量高效:基于 Go + Vue 3 ,性能优秀
    4. 扩展性强:通过脚本功能无限扩展能力
    5. 隐私安全:数据本地存储,不上传云端
    6. 持续更新:活跃的开发和社区支持

    📚 更多资源

    🤝 参与贡献

    我们欢迎社区贡献更多实用的脚本!如果你有好的脚本想法或已经编写了有用的脚本,欢迎提交 Pull Request 。


    让剪贴板成为你的自动化工作流中心,从今天开始! 🚀

    如果这个工具对你有帮助,欢迎给项目点个 ⭐ Star ,这是对我们最大的支持!

    9 条回复    2025-12-10 17:08:47 +08:00
    rayg0
        1
    rayg0  
       10 小时 31 分钟前
    挺有意思的,可扩展空间很大。
    snso
        2
    snso  
    OP
       10 小时 27 分钟前
    @rayg0 哈哈 欢迎贡献脚本
    hafuhafu
        3
    hafuhafu  
       10 小时 3 分钟前
    剪切板内容可以通过 js 脚本拓展这个想法还是挺好也挺实用的。
    就是作为剪切板历史记录工具本身的功能还是得完善一下。
    zarvin
        4
    zarvin  
       9 小时 58 分钟前
    使用了一下,挺好的,已 star
    510908220
        5
    510908220  
       9 小时 19 分钟前
    体验了下,不错。
    ikw
        6
    ikw  
       8 小时 18 分钟前
    体验了一下,效果确实还可以,有几个地方感觉可以优化一下
    1. 建议用 https://gitlab.com/cznic/sqlite 去掉 cgo 开发体验好很多
    2. CleanShot X 的截图识别成文件了,Paste 是能识别到是图片的,或许可以针对 File 类似多识别一下文件类型?
    snso
        7
    snso  
    OP
       8 小时 11 分钟前
    @ikw 感觉你提的建议 学到了新知识,后面更新优化
    BlackkCCCat
        8
    BlackkCCCat  
       2 小时 44 分钟前
    终于看到了一个和 Mac 端 pastebot 有类似功能的剪切板 app 了,pastebot 是支持 awk 等命令来扩展剪切板内容,强👍
    BlackkCCCat
        9
    BlackkCCCat  
       2 小时 40 分钟前
    @BlackkCCCat star 了,但是我看目前好像不支持像常规剪切板 app 一样的极简模式或快捷面板( issue 有人提),希望能尽快支持
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   3066 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 11:49 · PVG 19:49 · LAX 03:49 · JFK 06:49
    ♥ Do have faith in what you're doing.