# How to Install Ponytail as a Plugin for Claude Code: A Complete Guide

> Easily install Ponytail as a Claude Code plugin. Follow our simple guide and use the /plugin commands to add and install DietrichGebert/ponytail quickly and efficiently.

- Repository: [DietrichGebert/ponytail](https://github.com/DietrichGebert/ponytail)
- Tags: how-to-guide
- Published: 2026-09-07

---

**Install Ponytail for Claude Code by adding its marketplace entry with `/plugin marketplace add DietrichGebert/ponytail`, then installing with `/plugin install ponytail@ponytail` — both commands sent as separate prompts.**

This guide walks through installing the **Ponytail** plugin for **Claude Code**, a lightweight safety tool that enforces minimal-code practices during AI-assisted development. Ponytail requires only Node.js on your system and integrates through Claude Code's native plugin mechanism.

## Prerequisites for Installing Ponytail

Before you begin, ensure **Node.js** is available on your `PATH`. Ponytail's two lifecycle-hook scripts rely on Node.js to function, but the plugin itself carries no additional runtime dependencies.

```bash
node --version

```

If Node.js returns a version number, you're ready to proceed.

## Step-by-Step Ponytail Plugin Installation

The installation splits into two distinct commands. Claude Code processes slash commands individually, so **send these as separate prompts** or use the UI to add each step.

### Step 1: Add the Ponytail Marketplace Entry

This command registers the plugin's source location with Claude Code:

```text
/plugin marketplace add DietrichGebert/ponytail

```

### Step 2: Install the Ponytail Package

This pulls the `hooks/` and `skills/` directories into your Claude environment and registers the slash commands:

```text
/plugin install ponytail@ponytail

```

Alternative GUI method: Open Claude Code, click **+ → Plugins → Add plugin**, locate "DietrichGebert/ponytail", and confirm.

## Verify Your Ponytail Installation

After installation completes, test that the commands are available:

```text
/ponytail

```

This displays the current intensity level (default: **full**). You should also see six slash commands: `/ponytail`, `/ponytail-review`, `/ponytail-audit`, `/ponytail-debt`, `/ponytail-gain`, and `/ponytail-help`.

## How Ponytail Integrates with Claude Code

Understanding the architecture helps troubleshoot issues and confirms the plugin installed correctly.

### Lifecycle Hooks That Power the Plugin

When installed, Claude Code loads two Node-based hook files:

- **[`hooks/claude.json`](https://github.com/DietrichGebert/ponytail/blob/main/hooks/claude.json)** — Defines the plugin's entry point and metadata
- **[`hooks/claude-hooks.json`](https://github.com/DietrichGebert/ponytail/blob/main/hooks/claude-hooks.json)** — Injects Ponytail's rule set on every turn and exposes the slash commands

These files live in the `DietrichGebert/ponytail` repository and execute automatically — no manual configuration needed.

### Skills Directory Structure

The `skills/` folder contains six distinct capabilities that become available as chat commands:

| Skill | Purpose |
|-------|---------|
| `ponytail` | Check or adjust enforcement intensity |
| `ponytail-review` | Review code against minimal-code rules |
| `ponytail-audit` | Audit existing codebase for violations |
| `ponytail-debt` | Identify accumulated complexity |
| `ponytail-gain` | Measure simplicity improvements |
| `ponytail-help` | Display usage information |

These skills reference the rules defined in **[`AGENTS.md`](https://github.com/DietrichGebert/ponytail/blob/main/AGENTS.md)**, which Ponytail injects into each conversation turn to enforce its safety-first behavior.

## Key Files in the Ponytail Repository

| File Path | Significance |
|-----------|--------------|
| [[`README.md`](https://github.com/DietrichGebert/ponytail/blob/main/README.md)](https://github.com/DietrichGebert/ponytail/blob/main/README.md#install) | Official installation instructions for Claude Code |
| [[`hooks/claude.json`](https://github.com/DietrichGebert/ponytail/blob/main/hooks/claude.json)](https://github.com/DietrichGebert/ponytail/blob/main/hooks/claude.json) | Lifecycle-hook definition loaded at plugin startup |
| [[`hooks/claude-hooks.json`](https://github.com/DietrichGebert/ponytail/blob/main/hooks/claude-hooks.json)](https://github.com/DietrichGebert/ponytail/blob/main/hooks/claude-hooks.json) | Registers slash commands and rules injection |
| [`skills/`](https://github.com/DietrichGebert/ponytail/tree/main/skills) | Six Ponytail skills as chat commands |
| [[`AGENTS.md`](https://github.com/DietrichGebert/ponytail/blob/main/AGENTS.md)](https://github.com/DietrichGebert/ponytail/blob/main/AGENTS.md) | Human-readable rule set for minimal-code enforcement |

## Summary

- **Prerequisite**: Node.js must be on your system's `PATH`
- **Two-step install**: First `/plugin marketplace add DietrichGebert/ponytail`, then `/plugin install ponytail@ponytail`
- **Commands must be separate prompts** — Claude Code processes each slash command individually
- **Verification**: Run `/ponytail` to confirm installation and check intensity level
- **Lightweight architecture**: Only Node.js required; no additional dependencies

## Frequently Asked Questions

### Why does the installation require two separate commands?

Claude Code's plugin system processes each slash command as an atomic operation. The marketplace command registers the plugin source, while the install command pulls the actual package. Combining them in one prompt prevents proper execution of the installation flow.

### What exactly does Ponytail do once installed?

Ponytail injects its rule set from [`AGENTS.md`](https://github.com/DietrichGebert/ponytail/blob/main/AGENTS.md) at the start of every conversation turn through the hooks in [`hooks/claude-hooks.json`](https://github.com/DietrichGebert/ponytail/blob/main/hooks/claude-hooks.json). This enforces minimal-code practices—reducing complexity, avoiding premature abstraction, and favoring simple solutions—without requiring manual intervention.

### Can I use Ponytail without installing it as a plugin?

No. Ponytail requires the plugin mechanism to inject its rules consistently across conversation turns. The `/ponytail` commands and automatic rule injection depend on the [`hooks/claude.json`](https://github.com/DietrichGebert/ponytail/blob/main/hooks/claude.json) and [`hooks/claude-hooks.json`](https://github.com/DietrichGebert/ponytail/blob/main/hooks/claude-hooks.json) files being loaded by Claude Code's plugin system.

### Where can I find the most up-to-date installation instructions?

The [[`README.md`](https://github.com/DietrichGebert/ponytail/blob/main/README.md)](https://github.com/DietrichGebert/ponytail/blob/main/README.md#install) file in the `DietrichGebert/ponytail` repository contains the official, maintained installation guide for Claude Code, including any platform-specific variations or recent changes to the plugin system.