Ponytail

"He says nothing. He writes one line. It works."

124,764
Stars
6,726
Forks
310
Subscribers
20+
Supported Agents

Makes Your AI Agent Think Like the Laziest Senior Dev

The best code is the code you never wrote.

-54%
Less Code (Up to 94%)
-20%
Cheaper AI Costs
-27%
Faster Development
100%
Safe & Maintained

How It Works

Before writing code, the agent stops at the first rung that holds:

1. Does this need to exist?
→ no: skip it (YAGNI)
2. Already in this codebase?
→ reuse it, don't rewrite
3. Stdlib does it?
→ use it
4. Native platform feature?
→ use it
5. Installed dependency?
→ use it
6. One line?
→ one line
7. Only then: the minimum that works
→ build just enough

Before / After

You ask for a date picker. Your agent installs flatpickr, writes a wrapper component, adds a stylesheet, and starts a discussion about timezones.

Without Ponytail

import flatpickr from "flatpickr";
import "flatpickr/dist/flatpickr.min.css";

interface DatePickerProps {
  value: Date | null;
  onChange: (date: Date | null) => void;
}

function DatePicker({ value, onChange }: DatePickerProps) {
  return (
    
); } export default DatePicker;

With Ponytail


Installation

The most effort ponytail will ever ask of you:

Claude Code

/plugin marketplace add DietrichGebert/ponytail /plugin install ponytail@ponytail

Codex

codex plugin marketplace add DietrichGebert/ponytail codex plugin add ponytail@ponytail

GitHub Copilot CLI

copilot plugin marketplace add DietrichGebert/ponytail copilot plugin install ponytail@ponytail

Pi Agent

pi install git:github.com/DietrichGebert/ponytail

Gemini CLI

gemini extensions install https://github.com/DietrichGebert/ponytail

OpenCode

{ "plugin": ["@dietrichgebert/ponytail"] }

FAQ

Can I use it with caveman? ▼
Yes, and you should. Caveman shrinks what the agent says; ponytail shrinks what it builds. Different halves, no overlap: caveman leaves code byte-for-byte exact, ponytail stays out of the prose.
Does it need a config file? ▼
No. An optional `~/.config/ponytail/config.json` or `PONYTAIL_DEFAULT_MODE` env var can set the default level, but nothing is required.
What if I really need the 120-line cache class? ▼
You don't. Insist anyway and he'll build it. Slowly. Correctly. While looking at you.
Does it scale? ▼
The code you never wrote scales infinitely. Zero bugs, zero CVEs, 100% uptime since forever.
Why "ponytail"? ▼
You know exactly why.