做一个自己每天都在用的开源工具
起点是一个配置文件
我大量使用 Claude Code。几乎每个项目都用——InkWeave、H1B 地图、这个网站、各种脚本、代码审查。
但每次新建一个项目或者换一台机器,我都要花二十分钟重新配置那些已经搞明白的东西。该启用哪些 hook、加哪些 agent、怎么组织 commit 流程、怎么让 Claude 记住上次的教训。
于是我开始把配置集中在一个地方。不是什么要发布的项目——就是一个可以复制过来的文件夹。
后来有一天想:也许别人也有这个问题。
我对开源的理解
之前也给开源项目提过一些小贡献。但从来没有自己起头、自己发起过一个项目。
当我真的做了——加了 README,公开了仓库,第一次设置 CONTRIBUTING.md、issue 标签和 "good first issue" 标记——有种东西突然通了。
开源不是做一个厉害的东西然后发布出去。是把你真正在用的东西分享出来,相信别人也有一样的问题,然后看看会发生什么。你用,它变好,别人也来用,他们发现哪里不对或者缺了什么,它再变好。
人人为我,我为人人。就是这种感觉。
最初几个 PR
最开始的几个 Pull Request 来自朋友。但他们是真的在用这个工具,修的都是真正困扰他们的问题:
PR #2 — 一个经常 SSH 到远程机器的人,想在会话上下文 HUD 里看到服务器主机名,好知道 Claude 跑在哪台机器上。
PR #3 — 修了终端不渲染 emoji 的问题。状态行指示器在纯 SSH 会话里显示乱码。他加了自动检测和纯 ASCII 回退。
PR #4 — Minimax 用量检查器。不是所有人都用同一种 Claude 订阅,一个用 Minimax 编程套餐的人想让 /usage 技能自动检测用的是哪个服务。
PR #5 — macOS 兼容性。五个脚本用了 Linux 专有的参数。一个 Mac 用户把每个不兼容的地方都找出来修了。
每一个都是真实的人遇到的真实场景。让我高兴的不是有人提交了代码,而是他们之所以出现,是因为真的在用这个工具、真的碰到了问题。
Clade 做了什么
Claude Code 很强,但默认每次会话都是从零开始。没有记忆。你得重新解释上下文、重新说什么不能做、重新搭已经理顺的工作流。
Clade 在外围加了基础设施:
会话上下文 hook 在每次会话开始时加载 git 历史、最近的交接笔记和纠错规则——Claude 不用你说就知道上次停在哪儿。
纠错学习循环 捕获错误。当你纠正 Claude——"不对,别这么做"——hook 记录下来,Claude 写一条规则,这条规则自动加载到以后的会话里。
守卫 hook 在危险操作执行前拦截:超时的数据库迁移、rm -rf 删错路径、force push 到 main。
一组技能 — /commit、/handoff、/pickup、/batch-tasks、/review、/loop — 处理那些重复出现的模式:结构化提交、会话交接、自主多步执行。
还有一个 Orchestrator Web UI,想让多个 Claude agent 在同一个代码库上并行工作、不互相打架的时候用。
这些都不是提前设计的。每个功能都是因为我自己碰到了问题、顺手解决的。
速度就是超能力
快速交付不是走捷径,这就是全部策略。
想法不会自己验证自己。代码放在分支里什么也不会发生。Clade 之所以是现在的样子,是因为我不断在用、不断发现问题、不断修——经常当天就修了。
过去一年我在各个项目上做了 3,577 次贡献。最近 40 多天连续提交。不是为了刷 GitHub 热力图,而是你在做真正在乎的东西时,自然就停不下来。
好版本没法跳过烂版本和凑合版本直接到达。唯一的变量是你迭代得多快。但没有方向的快只是瞎折腾——你必须诚实地面对自己在做的东西到底有没有用,不行的时候得舍得放手。
Clade 里的每个功能都始于一件让我觉得烦的事。什么东西用起来觉得累赘,那就是信号——要么自动化,要么重新设计。
数字,以及数字不代表什么
仓库在头两周达到了大约 2000 次 clone。Clone 数说明不了有多少人真正在用。但比我预想的多,而且那种感觉很特别:不像是火了,更像是发现你以为只有自己才有的问题其实挺普遍的。
大部分 star 来自认识的人。挺好的。认识的人恰恰是给了我最有用反馈、提了最具体 issue、推了最初几个 PR 的人。社区总要从某个地方开始。
接下来想做的
Clade 首先是一个给自己用的工具。所有迭代都来自我自己的使用——试一个东西,坏了或者觉得不对,修掉。这个约束让它保持真实。想加一个功能因为觉得它"酷"的时候,我就问自己:你真的会用吗?
下一步想做的是分发。工具好用,找到它、用了的人也觉得好用。但"找到它的人"在这句话里承担了太多。怎么让好东西被更多人发现——又不至于像在满世界吆喝——这是接下来想花时间去探索的方向。
不变的是,不会为了数据好看去把它变成别的东西。Clade 会通过使用持续进化——我的和贡献者们的。每个改动背后都有一个真实的理由。
如果你刚接触 Claude Code 想快速上手,在 github.com/shenxingy/Clade。30 秒装好。哪里不好用,开个 issue——这就是它变好的方式。