
让 AI 写一个日期选择器,它很可能转头装一个日期库,再包一层自己的组件,最后还跟你讨论时区怎么处理。可浏览器自带日期输入,项目里往往也已经有现成的 Input 组件,拼起来十来行就够了。
Ponytail 是开源作者 DietrichGebert 做的一个 Skill(MIT 协议),要解决的就是这件事:让 AI Agent 像一位资深但“懒”的工程师,只写任务真正需要的代码。官方的一句话是:你给他看五十行,他不吭声,换成一行。
这篇按官方仓库当前的 README、SKILL.md 和 INSTALL.md 整理:它具体按什么顺序做决定、官方给的数据怎么读、在 Claude Code 里怎么装,以及常用命令。
同一个需求,335 行和 10 行

官方 README 里的例子是:让 Agent 做一个日期选择器。没装 Ponytail 时,它会装一个日期选择器库,或者手写一整套日历,一共 335 行。装了 Ponytail 5 之后,它会先看仓库里已经有什么:项目里有现成的 Input 组件,每个浏览器又都自带日期选择器,把两者拼起来,只要 10 行。
它按什么顺序做决定

Ponytail 本质上就是一份提示词,核心写在 skills/ponytail/SKILL.md 里。动手之前,它要求 Agent 先读任务和相关代码,列出改动必须波及的所有地方:调用方、测试、固定数据、配置、导出。然后按下面的顺序,选第一个能完整解决问题的方案:
- 需要存在吗?没人要求的功能、选项、灵活性,先跳过,并用一句话说明;
- 这个代码库里已经有了吗?有现成的辅助函数、组件或模式,就照周围代码的方式去用;
- 标准库或平台自带的功能能做吗?能就用,除非项目有自己的组件;
- 已安装的依赖能做吗?能就用,几行代码的事不新增依赖;
- 能写成一行吗?前提是读的人一眼就看得懂;
- 以上都不行,才写最少的代码。
有两点官方特意强调:
- 这套阶梯是在“读懂问题之后”才运行的,不是代替阅读。它要先读改动涉及的代码、追踪真实流程,再选台阶。官方的说法是:对方案懒,对阅读绝不懒;
- 有些东西从来不在可删之列:信任边界上的校验、防止数据丢失的错误处理、安全、无障碍,以及用户明确要求的内容。
带有分支、循环、解析器、涉及金钱或安全的新逻辑,会留下一个小测试或者基于断言的自检。每次回复的结尾,还要用一两句话说明跳过了什么、没检查什么,以及有什么风险。
官方数据怎么读

README 在顶部给的是 Ponytail 5 的基准结果:代码量减少 53%,耗时减少 41%,成本减少 26%,token 减少 45%;同时,风险逻辑附带测试的比例是 98%,不装时是 68%。
这组数字的范围要看清:它是在 Claude Code 里,对同一个 Agent 有无这个 Skill 做的对比,共 39 个任务,包括一个真实的 FastAPI 加 React 仓库,每个任务跑 5 次。README 还提到,6 个安全任务(SQL 注入、路径穿越、伪造令牌、限流、畸形 CSV 行、缓存)30 次运行全部通过。
官方也解释了它的取舍:规则从来不是“token 最少”,而是只写任务需要的东西,并且从不删校验、错误处理、安全和无障碍。成本和耗时下降是顺带的结果。
和别的 Skill 一样,这是项目方自己的评测,对你自己的仓库能省多少,用一个真实任务对比一下最直接。
在 Claude Code 里安装
Claude Code 里要分两次发送:
/plugin marketplace add DietrichGebert/ponytail
/plugin install ponytail@ponytail
官方在安装文档里特别提醒:这两条要作为两条独立的消息发送,否则安装不成功。
Codex 的安装命令是:
codex plugin marketplace add DietrichGebert/ponytail
codex plugin add ponytail@ponytail
装完在 Codex 里打开 /hooks,检查并信任它的两个生命周期钩子,再新开一个会话。
其他 Agent 可以把仓库里的 AGENTS.md 复制到项目里,或者让 Agent 把 skills/ponytail/SKILL.md 装成 Skill,各平台的逐步说明见官方的 INSTALL.md。
安全上有一条官方明确写出的提醒:只从 GitHub 上的 DietrichGebert/ponytail,或者 npm 上的 @dietrichgebert/ponytail 安装。官方说自己不会发布 .exe 或 .dll 文件,带这类文件的副本不是他发布的。
Ponytail 在 Claude Code 和 Codex 的插件里会运行两个很小的 Node.js 钩子,所以需要 node 在 PATH 里;没有的话,Skill 仍然能用,只是每次钩子调用会显示一条无害的 node: command not found 提示。
常用命令

默认强度是 full。三档强度的区别:
| 强度 | 行为 |
|---|---|
lite | 照你说的做,同时用一行说明有更小的方案,让你选 |
full | 默认。按上面的规则执行 |
ultra | 在动手之前还会质疑需求,对需求不能证明必要的部分提出反对 |
切换命令是 /ponytail lite、/ponytail full、/ponytail ultra,要关闭就用 /ponytail off。也可以用环境变量 PONYTAIL_DEFAULT_MODE 或 ~/.config/ponytail/config.json 里的 defaultMode 设置每个新会话的默认强度。
另外几条命令:
/ponytail-review:审查当前 diff,像“出问题时会被呼叫的那位资深工程师”一样看 bug、安全、真实负载、缺测试的风险代码、慢路径,以及可以删掉的部分;/ponytail-audit:对整个仓库做同样的检查,最重要的排在前面;/ponytail-debt:把你留下的shortcut:注释汇总成一张清单,免得“以后再说”变成“永远不改”。Ponytail 在代码里留下有明确限制的捷径时,会用这个格式写注释;/ponytail-gain:显示基准测得的收益记分牌;/ponytail-help:命令速查。
在 Claude Code 里,从 5.3 版本开始还有一个状态条(band),显示在输入框上方:当前任务的成本、用了多少 token 和 Agent 时间、复用已有代码的频率,以及上次改动后测试是否通过。/ponytail band 可以隐藏或重新显示,它要求 Claude Code 2.1.290 或更新版本,并且不会显示在 VS Code 聊天面板、云端会话或 claude -p 里。官方说这些数据默认都保存在本机的 ~/.config/ponytail/band/。
和 AIGoCode 一起用时要注意什么
Ponytail 运行在 Claude Code 和 Codex 这类工具内部,不改变你访问模型的方式。如果你是通过 AIGoCode 使用 Claude Code,建议先按接入 AIGoCode 前,Claude Code 和 Codex CLI 先检查这四项确认基础接入没问题,再装这个插件。
想自己验证“有没有省”,可以拿同一个任务,分别在装前和装后跑一次,再用AIGoCode 额度消耗比预期快:如何核对一次任务的用量里的方法对比两次的用量,比直接相信任何基准数字都更可靠。
装好后遇到连不上或者报错,先看AIGoCode 常见问题;第一次接入的完整流程在AIGoCode 使用指南。
总结
Ponytail 不是一个功能很多的工具,它的价值在于一条规则:写代码之前,先问需不需要、仓库里有没有、平台自带有没有。上手的最短路径:在 Claude Code 里分两次发送安装命令,让它做一个你手头真实的小需求,对比装前装后的代码量和用量;觉得太激进就切到 /ponytail lite,需要查旧代码时用 /ponytail-review 和 /ponytail-audit。