Installation guide

DietrichGebert/ponytail installation guide

MIT-licensed Claude Code plugin and portable Agent Skill that applies a YAGNI-first decision ladder, persistent mode controls, lifecycle-hook injection, review and audit commands, and an optional read-only MCP interface to steer coding agents toward the smallest correct implementation without removing stated safety, validation, accessibility, or data-loss guards.

Install Ponytail for Claude Code on macOS Tahoe (Apple silicon)

What you are installing

[Ponytail](https://github.com/DietrichGebert/ponytail) is an MIT-licensed Claude Code plugin that asks the coding agent to prefer the smallest correct implementation: first question whether code is needed, then reuse existing project code, standard-library features, native platform features, and already-installed dependencies before writing something new.

It does **not** replace Claude Code or install a programming environment. This walkthrough starts with Claude Code already installed and usable on your Mac. The supplied repository files do not document how to install Claude Code itself, so that separate host installation is intentionally not covered here.

Claude Code classification

This classification is supported by the repository’s Claude Code plugin installation instructions, its packaged skills, and its statement that the ruleset is injected into sessions and Agent-tool subagents. It is not merely a standalone application or a block of text to paste manually.

Before you begin

You need:

  1. A Mac with Apple silicon running macOS Tahoe.
  2. A working Claude Code command-line or desktop environment.
  3. Node.js available on the `PATH` used by Claude Code’s non-interactive shell.
  4. Internet access so Claude Code can add the GitHub marketplace and retrieve the plugin.

The repository does not document an Apple-silicon-specific build, Rosetta requirement, Homebrew command, or minimum Node.js version for normal plugin use. Do not add those requirements. The same documented Claude Code plugin procedure applies here.

Ponytail’s Claude Code plugin runs two small Node.js lifecycle hooks. To check whether Terminal can find Node, open **Terminal** and run:

node --version

If that prints a version, Node is available in that Terminal session. If it reports that the command cannot be found, pause here and install or configure Node using first-party Node.js guidance. The repository supplies no supported Node installation command, so none is provided in this guide.

If you use a version manager such as `nvm`, or an environment such as Nix, seeing a version in your interactive Terminal does not by itself prove that Claude Code’s non-interactive shell can see Node. The repository specifically says Node must be on that shell’s `PATH`. If Node is unavailable there, Ponytail’s skills still work, but its always-on activation remains quiet rather than producing an error on every prompt.

No Ponytail configuration file is required. Its default mode is `full`.

Install in Claude Code

The following entries are **Claude Code slash commands**, not macOS Terminal commands. Open Claude Code, click or focus its prompt box, and send each command as a separate message.

Step 1: add the Ponytail marketplace

Copy this into the Claude Code prompt box and send it:

/plugin marketplace add DietrichGebert/ponytail

Wait for Claude Code to finish processing that request before continuing.

Step 2: install the plugin

Send this as a new, separate prompt:

/plugin install ponytail@ponytail

The repository explicitly warns that the two installation commands must be sent as separate prompts. Do not combine them into one message.

Claude Code Desktop alternative

In the Claude Code Desktop app, use the **Code** tab. The current English README says you may type the same two `/plugin` commands into its prompt box, again as separate messages.

It also documents a graphical route: click the **+** button beside the prompt box, choose **Plugins**, then choose **Add plugin**. Configured marketplaces can be managed from **Customize** in the sidebar. Because the repository gives the slash commands as the complete deterministic procedure, those commands are the simplest path to follow.

Confirm that Ponytail is active

After installation, start a fresh Claude Code session if the plugin does not appear active in the current one. Startup and mode-change text should show the current Ponytail mode.

In the Claude Code prompt box, send:

/ponytail

With no argument, this reports the current level. The documented default is `full`.

For a quick reference to the installed commands, send:

/ponytail-help

You can also explicitly select the normal default level:

/ponytail full

The available intensity settings are:

For example, to disable it temporarily in the current session, use:

/ponytail off

To turn it back on at the default intensity, use:

/ponytail full

The selected level persists until changed or until the session ends. The plugin can also inject its active rules into subagents spawned through Claude Code’s Agent tool; by default, the repository says this applies to every subagent.

Use the installed commands

Ponytail is intended for coding work: writing, adding, fixing, refactoring, reviewing, designing code, and choosing dependencies. It is not intended for unrelated prose, translation, recipes, or general-knowledge requests.

The plugin provides these documented Claude Code commands:

/ponytail-review

Reviews the current diff for over-engineering and returns a deletion list.

/ponytail-audit

Audits the whole repository for over-engineering rather than limiting the review to the current diff.

/ponytail-debt

Collects deferred simplifications marked with `ponytail:` into a ledger.

/ponytail-gain

Shows the repository’s benchmark impact scoreboard.

/ponytail-help

Displays the command reference.

The rules favor smaller changes, but they explicitly say not to remove trust-boundary validation, data-loss prevention, security, accessibility, hardware calibration, or anything you explicitly requested. The repository also calls for one small runnable check for non-trivial logic.

Optional configuration

You do not need to create a configuration file or environment variable for a standard installation. The repository documents `full` as the default.

It also mentions an optional `PONYTAIL_DEFAULT_MODE` environment variable and an optional `defaultMode` field in `~/.config/ponytail/config.json`. However, the supplied installation documentation does not provide a complete copy-paste command for safely creating or editing either setting on macOS. To avoid inventing shell commands, this guide leaves the default unchanged. You can switch levels at any time with the documented `/ponytail` commands above.

Troubleshooting

The marketplace command worked, but installation did not

Make sure you sent the marketplace and install commands as **two separate Claude Code prompts** in this order:

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

Commands work, but activation is not automatic

Check Node again in Terminal:

node --version

The repository says the skills continue to work without Node, while the two always-on lifecycle hooks stay quiet. If Node works interactively but activation still fails, investigate whether Claude Code’s non-interactive shell receives the same `PATH`; this is especially relevant to Nix and `nvm` users.

The style is too aggressive

Switch to the lighter mode:

/ponytail lite

Or disable it:

/ponytail off

Uninstall

In Claude Code, remove the plugin with this prompt-box command:

/plugin remove ponytail

The repository says this removes the plugin’s own files, but may leave a small amount of state outside its folder: a mode flag, `~/.config/ponytail/config.json`, and—if a setup suggestion was accepted—a `statusLine` entry in `~/.claude/settings.json`.

The repository mentions a cleanup script, but it must be run before plugin removal and from a location where that repository script actually exists. Because the supplied files do not document how to locate Claude Code’s installed plugin directory on macOS, this guide does not invent a path or recommend an unsupported navigation command. For an ordinary uninstall, use the documented `/plugin remove ponytail` command above.