What you will set up
- Ponytail is not a model. It is a “do not write yet” ladder: reuse what exists before new files or dependencies.
- Claude Code: install from the official plugin marketplace (two separate prompts). Cursor:
cursor-hooks.js install(or project rules—not both). - OpenCode and similar agents: copy
AGENTS.mdor installskills/ponytail/SKILL.mdinto the repo. - Lazy about solutions, not safety: trust-boundary validation, data-loss guards, security, and accessibility stay mandatory.
- Independent runs often show fewer changed lines and more reuse of existing helpers, but extra reading can make small tasks cost more tokens—do not score lines alone.
You do not need a smarter model. You need one that reads the repo before flexing.
Why Claude Code, Cursor, and OpenCode “add a little more”
Coding agents behave like eager juniors: mention caching and they add cache.py, config flags, and tests—even when memoize_rates() already exists. Without constraints, showing cleverness beats matching the codebase.
Over-engineering bills you in review and maintenance, not only API list price. See OpenCode vs Claude Code real cost: zero license fee does not mean zero diff size. Ponytail targets shape of change: fewer deps, less abstraction, more reuse.
A one-line YAGNI rule can shrink diffs but often trims validation. The Ponytail author re-ran benchmarks after community pushback; the README now stresses roughly half the code on average with stronger tests on risky logic. Third-party replays note more turns and higher cost on tiny repos. This guide is install-and-triage, not a guarantee of every percentage on the site.
What Ponytail is: the ladder (after understanding the task)
ponytail.dev sells the vibe: the long-haired senior who replaces fifty lines with one. Ponytail encodes that in context: read the code path first, then climb the ladder before new files, packages, or frameworks.
The README says “lazy, not negligent.” Summary table below; authoritative text lives in the GitHub repo.
| 阶 | 问题 | 动作 |
|---|---|---|
| 1 | 这事必须做吗? | 能删需求、改文案、用配置开关就别写代码。 |
| 2 | 仓库里已经有了吗? | 先搜函数、hook、util;复用比新建文件便宜。 |
| 3 | 标准库够吗? | 内置模块、平台 API 优先于新依赖。 |
| 4 | 已安装的包能搞定吗? | 别为一个小函数再 npm install。 |
| 5 | 能写成一行吗? | 在可读的前提下压到最小。 |
| 6 | 最后才写新代码 | 写最少、能过测试、标出刻意简化的上限。 |
When stopping on a rung, the agent should state what it skipped (e.g. “no new npm dep; reused lru-cache”). Deliberate simplifications need a comment with the ceiling and upgrade path.
Never cut: validation at trust boundaries, error handling that prevents data loss, security, accessibility. Same discipline as AI agent file isolation: less code ≠ less protection.
Claude Code: step-by-step install
Use the marketplace. INSTALL.md requires two separate messages:
/plugin marketplace add DietrichGebert/ponytail /plugin install ponytail@ponytail
Then /ponytail shows the level; /ponytail lite|full|ultra|off switches. Hooks need node on PATH (watch nvm/Nix non-interactive shells).
Treat Ponytail as global writing discipline, not another slot in your Claude Code Skills ranking—think P0 meta-rule above /code-review.
Billing still follows Claude Code plans. Ponytail does not include the model. Less output can save tokens; more file reading spends input—see trade-offs.
Cursor: hooks injection vs .cursor/rules
From the repo (cursor-hooks docs):
git clone https://github.com/DietrichGebert/ponytail node ponytail/scripts/cursor-hooks.js install # project only: add --project for .cursor/hooks.json
Merges into ~/.cursor/hooks.json (or project hooks), injecting rules at sessionStart. New chat to pick it up; plain-message /ponytail full switches level mid-session.
Pick one mechanism: if .cursor/rules/ponytail.mdc is present, hooks stop injecting. Teams: commit project rules. Individuals: hooks avoid copying into every repo.
- Subagents:
subagentStartcannot inject yet—do critical refactors in the main session or rely on repoAGENTS.md. - Cloud agents: no
sessionStart—use committedAGENTS.md/ rules for remote runs. - Keep the clone: hooks point at that path; re-run
installafter moving it.
Cursor pricing: Cursor 2026 pricing history. Ponytail does not change plan line items.
OpenCode: same ladder via project rules
For OpenCode, Aider, Gemini CLI, Copilot, etc., INSTALL says: copy AGENTS.md or add skills/ponytail/SKILL.md. Without a store, that copy step is the install.
OpenCode swaps models freely; weak search steps guess instead of grep. Mitigations:
- Ask explicitly to search existing helpers before
npm install; - Merge Ponytail with your folder conventions in one
AGENTS.md; - Run large edits on a real git workspace—isolation practices—not a throwaway temp tree.
When weighing whether OpenCode replaces Claude Code, use Ponytail as a shared behavior layer on both sides.
| 工具 | 推荐安装 | 注意 |
|---|---|---|
| Claude Code | 两条 /plugin 命令装市场插件 | Hooks + 斜杠命令;子 Agent 可注入规则 |
| Cursor | cursor-hooks.js install | 会话级注入;子 Agent / Cloud Agent 有缺口 |
| OpenCode 等 | 复制 AGENTS.md 或装 Skill | 无官方插件时靠项目规则文件 |
lite, full, ultra: do not default to ultra
- lite: copy, CSS, single-file fixes—less reading.
- full: daily feature work default.
- ultra: cross-module refactors and public API moves; overkill for tiny tasks.
/ponytail off for spikes; turn rules back before merge.
Costs, myths, acceptance checks
Myth: fewer lines always wins. Short Karpathy-style CLAUDE.md files sometimes beat Ponytail on line count but reuse less. Judge new deps, duplicate helpers, and review time.
Myth: rules replace product specs. The ladder constrains coding, not vague asks.
Myth: stack every minimalist user rule. Merge one project policy or pick hooks + AGENTS.md.
PR checklist: unexplained deps? new files instead of modules? safety paths intact? agent stated skips?
FAQ
Does Ponytail clash with Cursor “minimize scope” user rules?
Same direction; Ponytail adds repo search and the ladder. Keep one copy in context.
Must I clone the repo?
Cursor hooks yes. Claude Code marketplace no. OpenCode only needs AGENTS.md text.
Works with MCP and Skills?
Yes. Ponytail governs how much you write; MCP governs tools. Do not wrap every MCP call in new adapters.
Trust the benchmark posters?
Treat as direction; measure your repo with the checklist above.
Summary
Ponytail installs laziness with teeth: Claude Code plugin, Cursor hooks or rules, OpenCode via AGENTS.md. It fights extra dependencies and files, not model shopping. The win is often reusing what you already wrote—not shaving ten lines of new utility code.
Long agent sessions on a Mac that stays awake
Ponytail thins each diff, but repo walks and tests still need stable disk and a shell that does not sleep. A cloud Mac mini is a solid remote workspace for OpenCode or Claude Code over SSH—pair with workspace isolation so agents do not scaffold in the wrong directory.