Skip to content

Repository files navigation

Snip

macOS 剪贴板 & 快捷键诊断工具,用于排查 Command+C / Command+V 不灵的问题。

隐私说明

  • Snip 默认不记录按键字符内容(键盘监控需 --unsafe-chars 才输出)
  • 剪贴板历史功能(snip clip record)会把剪贴板文本内容保存在本地 ~/Library/Application Support/snip/history/,仅本地使用、绝不上传
  • Snip 只在本地运行,不会上传任何数据
  • 使用 --unsafe-chars 或 --content-preview 时才可能显示敏感内容
  • 所有日志默认保存在 ~/Library/Logs/snip/

不想留下剪贴板历史?snip clip clear 一键清空,或删除 ~/Library/Application Support/snip/history/ 目录。

安装

从源码编译

git clone https://github.com/clanzhang/snip.git
cd snip
swift build -c release
cp .build/release/snip /usr/local/bin/

使用 Homebrew

brew tap clanzhang/tap
brew install snip

升级:

brew upgrade snip

卸载:

brew uninstall snip
brew untap clanzhang/tap

权限说明

功能 所需权限 如何授权
snip watch 无 —
snip doctor 无 —
snip test --clipboard 无 —
snip keys 输入监控 系统设置 > 隐私与安全性 > 输入监控
snip all 输入监控 同上
snip test --keys 输入监控 同上
snip network 无 —
snip cpu 无 —
snip clip 无 —

命令列表

命令 说明
snip watch 监控剪贴板变化
snip keys 监控全局键盘事件
snip all 同时监控剪贴板 + 键盘(含复制失败检测)
snip battery 查看电池电量、健康度、温度
snip network 查看网络状态(Wi-Fi、连接速率、DNS、连通性)
snip speed 测速(Wi-Fi/带宽;Cloudflare 优先,Ookla 回退)
snip cpu 查看 CPU 状态(型号、负载、使用率、Top 进程)
snip clip 剪贴板历史管理(增删改查)
snip doctor 系统诊断
snip test --clipboard 测试剪贴板底层
snip test --keys 测试全局快捷键
snip stats 查看统计
snip report 生成诊断报告

常用参数

参数 说明 适用命令
--json JSON Lines 输出 watch, keys, all
--log 写入日志文件 watch, keys, all
--interval 0.5 轮询间隔(秒) watch, all
--content-preview 20 显示前 20 字符 watch
--all-keys 所有按键元数据 keys
--unsafe-chars 输出按键字符(⚠️ 隐私警告) keys
--keys "cmd+c,cmd+v" 自定义快捷键 keys

剪贴板历史管理(snip clip)

类似 Maccy/Clipy 的剪贴板管理器:复制的内容自动入库,支持增删改查。

snip clip                     # 显示最近 20 条
snip clip list                # 列出全部(--search 搜预览+全文 / --limit N / --json / --pinned)
snip clip show <id>           # 查看完整内容并复制到剪贴板(--no-copy 只看不复制)
snip clip add "文本"           # 写入剪贴板并入库
snip clip edit <id> "新文本"   # 修改内容,同步写入剪贴板
snip clip pin <id>            # 置顶(不受上限裁剪影响)
snip clip unpin <id>          # 取消置顶
snip clip delete <id>         # 删除一条
snip clip clear               # 清空全部(默认需确认,--yes/-y 跳过)
snip clip export [<path>]     # 导出全部(含全文)为 JSON,默认存桌面
snip clip import <file>       # 导入 JSON(同 id 自动跳过;--replace 覆盖)
snip clip list --app Safari   # 按来源 App/包名过滤
snip clip list --type text    # 按类型过滤(text / image / file)
snip clip stats               # 统计:类型/来源 Top/近 7/30 天
snip clip prune --ttl 30      # 清理 30 天前的旧记录(置顶豁免)
snip clip ignore <App>        # 该来源不入库(--clear 清空,无参查看)
snip clip sensitive <词>       # 含此词的文本不入库(--clear 清空,无参查看)
snip clip show <imgId>        # 图片条目可把图片拷回剪贴板
snip clip paste <id>          # 复制内容并模拟 Cmd+V 粘贴(需辅助功能权限)
snip clip ui                  # 交互式 TUI(↑↓选择/输入即搜索/回车复制/v粘贴/p置顶/d删除/u撤销)
snip clip record              # 监控模式:复制自动入库
snip clip record --daemon     # 后台常驻:随时复制自动记录(日志 ~/Library/Logs/snip/clipd.log)
snip clip stop                # 停止后台记录
snip clip status              # 查看后台记录状态
snip clip autostart on/off    # 开机自启(LaunchAgent)
  • 历史默认保留最近 500 条(record --max 可调),置顶条目不受裁剪影响
  • 相邻相同内容自动去重,只更新时间
  • 图片/文件只记录元数据,不保存内容
  • 数据位置:~/Library/Application Support/snip/history/(每条一个 .txt + index.json)

常见排查流程

1. 快速诊断

snip doctor

2. 检测复制失败

snip all

然后在任何应用中复制粘贴,观察输出。如果出现 ❌ copy timeout,说明复制失败。

3. 测试剪贴板底层

snip test --clipboard

4. 测试快捷键

snip test --keys

5. 生成报告

snip report

报告默认保存到 ~/Desktop/snip-report.txt,可以安全提交给 Apple Feedback Assistant。

6. 网络诊断

snip network

检查 Wi-Fi(含与路由器协商的连接速率)、DNS、公网 IP 和互联网连通性。Universal Clipboard(通用剪贴板)依赖网络,如果网络不通,跨设备剪贴板同步会失效。

snip network --watch    # 持续监控网络状态
snip network --json     # JSON 输出

7. 测速

snip speed

实测下行/上行带宽与延迟:Cloudflare 优先,失败自动回退 Ookla 就近服务器(多服务器探测取可用者)。测速数据不落盘、仅本地显示。

snip speed --source ookla     # 指定 Ookla
snip speed --no-upload        # 只测下行
snip speed --json             # JSON 输出
snip speed --streams 8        # 下载并发数(默认 4)
snip speed --timeout 10       # 每阶段超时秒数(默认 12)

测速会消耗少量流量(约下行 25MB + 上行 8MB)。本机未连接 Wi-Fi 时仍可测有线/代理带宽。

提交 Apple Feedback

  1. 运行 snip report 生成诊断报告
  2. 打开 Apple Feedback Assistant
  3. 提交报告时附上 snip-report.txt

开发

swift build
swift run snip --help
swift run snip watch
swift run snip keys
swift run snip doctor
swift run snip report

版本历史

版本 日期 说明
v0.1.30 2026-09-10 修复 clip ui 渲染错位:raw 模式下改用 \r\n(原 \n 不回列导致阶梯错行)、按终端显示单元格宽度(CJK/emoji 算 2 格)裁剪填充,选中行整条反白
v0.1.29 2026-09-09 新增 snip clip ui 交互式 TUI(零依赖 raw terminal + ANSI 自绘;↑↓/搜索/回车复制/v 粘贴/p 置顶/d 删除 u 撤销,自动增量刷新)
v0.1.28 2026-09-09 图片记录(原始 PNG 落盘,>25MB 仅元数据;clip show 图片可拷回剪贴板)、clip paste <id> 复制并模拟 Cmd+V(需辅助功能权限)
v0.1.27 2026-09-09 剪贴板批量增强:list --app/--type 来源类型过滤、clip stats 统计、clip prune --ttl + record --ttl 自动清理(置顶豁免)、clip ignore/sensitive 忽略来源与敏感词过滤(record 实时生效)
v0.1.26 2026-09-09 剪贴板:--search 升级为全文搜索(预览+完整内容)、新增 clip export/import(JSON 备份/恢复,同 id 幂等跳过,--replace 覆盖)
v0.1.25 2026-09-09 测速巡检修复:JSON duration_s 改四舍五入取整(原整数除法截断丢精度)、无效 --source 给出警告不再静默降级
v0.1.24 2026-09-08 新增 snip speed 测速(Cloudflare 优先 + Ookla 回退,延迟/下行/上行,--json/--no-upload/--source/--streams/--timeout);snip network 增加 Wi-Fi 连接速率(lastTxRate)
v0.1.23 2026-09-08 记录命令巡检修复:daemon 启动失败如实报错、--interval/--max 透传后台子进程、前台监控单例互斥、stop 超时补 SIGKILL、autostart 校验 launchctl 结果并幂等
v0.1.22 2026-09-08 修复 clear 后旧条目被守护进程“复活”:写入索引前清理内容文件已不存在的孤儿条目
v0.1.21 2026-09-08 防重复记录实例:pidfile 归属校验、pgrep 单例登记(pidfile 丢失也能拦住二次启动)、autostart on 自动去重、stop 提示自启状态
v0.1.20 2026-09-08 记录防断更加固:LaunchAgent KeepAlive 自动拉起、未知参数警告(如 record --daemon + autostart on)、status 断更自检
v0.1.19 2026-08-26 修复 record --daemon 后台启动失败(argv[0] 为裸名时找不到可执行文件)
v0.1.18 2026-08-26 剪贴板记录后台守护:record --daemon / stop / status / autostart
v0.1.17 2026-08-26 剪贴板历史管理:snip clip 增删改查、置顶、去重、自动入库
v0.1.13 2026-08-25 热点检测:iPhone USB / 蓝牙热点识别,接口名动态查找
v0.1.12 2026-08-25 修复 Wi-Fi 接口名硬编码 en0,动态检测
v0.1.11 2026-08-25 网络诊断:Wi-Fi、DNS、公网 IP、连通性检测
v0.1.10 2026-08-24 低电量提醒:--warn 发送 macOS 通知
v0.1.9 2026-08-24 修复电池健康度 0% 和充放电状态误判
v0.1.8 2026-08-24 电池监控:电量、健康度、温度、循环次数
v0.1.7 2026-08-24 Formula 安装时运行 swift test,bottle 发布脚本
v0.1.6 2026-08-24 18 个单元测试,GitHub Actions CI,bottle 支持,report 增强
v0.1.5 2026-08-24 添加版本历史到 README
v0.1.4 2026-08-23 应用过滤、macOS 通知、颜色主题、延迟测试、远程诊断服务器、快捷键冲突检测
v0.1.3 2026-08-23 三层输出格式化(plain/verbose/json)+ CopyFailureDetector
v0.1.2 2026-08-23 移除帮助示例
v0.1.1 2026-08-23 修复 Package.swift 测试目标
v0.1.0 2026-08-23 初始版本:watch / keys / all / doctor / test / stats / report

License

MIT

About

macOS copy/paste diagnostics CLI

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages