钟义杰

Vibe Coding

把重复的事,做成自己的工具

这些不是演示项目。它们每天在我自己的工作流里跑:改 Keynote、盯自动测试、调编辑器里的输出样式。写它们的过程本身就是一次 Vibe Coding——把「我想要一个能干某件事的命令」讲清楚,让 AI 把代码写出来,再用同一套测试验收。

开源工具
4个开源工具
Keynote 命令
57条Keynote 命令
DSH 插件
2个DSH 插件
自己天天在用
100%自己天天在用

kn

Keynote CLI · Rust 3.0 · 57 条命令

GitHub
kn 在终端里的实际运行输出:kn verify 与 kn types 读取 Keynote 设计规范.key 的统计结果

用命令行读写和编辑 Apple Keynote 的 .key 文件。

改一页标题、换一次版式、批量导出大纲——这些以前只能靠手工点 Keynote。kn 把 57 条命令做成一个 Rust 二进制:大部分操作直接处理 IWA / zip 容器,只有文档模型强制要求时才调用 Keynote 本体。

  • 57 条命令覆盖查看分析、文字、表格、形状、图表、动画、页面结构与批量操作
  • 写操作一律 <src> <dst>,源文件保持只读,改坏了原件还在
  • 不依赖外部运行时 schema 包;Homebrew tap 一条命令装预编译二进制
Rust 3.0IWA / zipprotobufHomebrew

dsh-testhud

测试浮层 · DSH 插件 · npm 0.1.1

GitHub
dsh-testhud 浮层压在一份文档上:顶部红色带提示「先别动鼠标键盘」,下面是四条步骤的期待与实际

把自动测试的进展画在被测界面之上。

AI 跑一次 GUI 测试要好几分钟,等的人却不知道跑到第几步、这一步期待什么、现在能不能动鼠标键盘。这块浮层就回答这些:置顶、鼠标穿透、不抢焦点,还会自动挑屏幕上最空的角。

  • 常驻一行控制权提示:跑的时候「先别动鼠标键盘」,结束变绿「可以接手了」
  • 5 个动作(start / step / note / done / stop),agent 与命令行共用同一份进度
  • 只用 Apple 色卡 22 色,文字颜色随背景自适应,不靠第二套字号分层
  • macOS 14+,预编译 universal 二进制,装上即用
DSH 插件Swift / AppKitScreenCaptureKitnpm

dsh-output-setting

输出呈现设置 · DSH 插件 · npm

GitHub
dsh-output-setting 在 DSH 插件详情页里的配置界面:过程节点展开开关、代码块字号与行距滑块、模型输出语言下拉

把「输出怎么显示」收进一个配置页,改完立刻生效。

过程节点展不展开、代码块多大、模型用什么语言回答——这些琐碎但天天要调的设置,现在集中在一个页面上,不用重启、不用改配置文件。

  • 配置实时生效:自动展开思考过程 / 工具调用、代码块字号与行距、模型输出语言
  • 「模型输出语言」写进系统提示,连隐藏的思考通道一起约束得住
  • 已发布 npm,命令行或插件管理器都能装
DSH 插件CordisSchemasterynpm

markable

Markdown 阅读器 · macOS 应用 · SwiftPM

GitHub
Markable 打开一份 Markdown 文档:左侧大纲、顶部多标签、正文排版与底部字数状态栏

纯本地的 macOS Markdown 阅读器,打开即渲染,不联网。

写完 Markdown 总要「看一遍排版再改」——Markable 就是给这件事做的:原生 TextKit 渲染、只读、不写回源文件;外部改动 2 秒内自动刷新并保持阅读位置,导出 PDF 时直接走本机 md2pdf,拿交付级版式。

  • 只读、纯本地:不发起网络请求、不存储凭据,也不修改源文件
  • 多标签 + 大纲 / 任务 / 链接侧栏;主题、字体(苹方 / 宋体 / 等宽)、50%–300% 缩放
  • 导出 PDF / HTML / 逐页 PNG;PDF 默认调本机 md2pdf,缺失或失败时自动回退内置 A4 分页
  • 325 条测试 / 54 个套件,SwiftLint 0 error;SwiftUI + TextKit 2 原生实现
Swift / SwiftUITextKit 2swift-markdownPDFKit

怎么做的

Vibe Coding 不是让 AI 随便写

这四个工具的做法是一样的:先把约束讲清楚,让 AI 写,再用测试验收,然后每天用、每天改。

01

先把约束写清楚

不说「做个好用的工具」,而是写清输入输出、失败怎么办、哪些操作绝不能碰源文件。约束越具体,AI 写出来的东西越接近能用的工具。

02

让它自己跑测试

每个命令都要能被验证:读一个 .key 写出新文件、再读回来比对;浮层要用像素观测工具量,不靠截图猜。测试不过就不算完成。

03

每天用,再改

工具的价值在「天天顺手」。用一周会暴露真实问题,再让 AI 改——这比自己从头写省下的不是打字时间,是想清楚问题的时间。

你的团队里,也有几件值得做成工具的事

不一定要从平台开始。先挑一件每天重复、做错了也容易发现的事,做一个小工具,跑通再说。