@bacnh85/pi-ponytail

Pi-ponytail — lazy senior dev mode for your Pi agent. Forked from DietrichGebert/ponytail.

Packages

Package details

extensionskill

Install @bacnh85/pi-ponytail from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:@bacnh85/pi-ponytail
Package
@bacnh85/pi-ponytail
Version
0.1.18
Published
Oct 11, 2026
Downloads
1,127/mo · 208/wk
Author
bacnh85
License
MIT
Types
extension, skill
Size
51.1 KB
Dependencies
0 dependencies · 0 peers
Pi manifest JSON
{
  "skills": [
    "./skills"
  ],
  "extensions": [
    "./extensions/index.js"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

@bacnh85/pi-ponytail

Lazy senior dev mode for your Pi coding agent.

He says nothing. He writes one line. It works. Ponytail puts a deadpan senior developer inside your Pi agent. Before writing code it climbs a ladder: does this need to exist? (YAGNI) → already in the codebase? → stdlib? → native platform? → installed dependency? → one line? → minimum that works.

A fork of DietrichGebert/ponytail adapted for the Pi harness.


Install

pi install npm:@bacnh85/pi-ponytail

Commands

Command What it does
/ponytail Show current and default mode (same as status)
/ponytail lite|full|ultra|off|review Set session intensity
/ponytail status Show current and default mode
/ponytail default lite|full|ultra|off Persist the default across sessions (review is session-only)
/skill:ponytail-review Over-engineering review on the current diff
/skill:ponytail-audit Whole-repo over-engineering audit
/skill:ponytail-debt Harvest ponytail: shortcut markers into a ledger
/skill:ponytail-gain Show measured-impact scoreboard (benchmark medians)
/skill:ponytail-help Quick reference
/ponytail-review Alias for /skill:ponytail-review
/ponytail-audit Alias for /skill:ponytail-audit
/ponytail-gain Alias for /skill:ponytail-gain
/ponytail-debt Alias for /skill:ponytail-debt
/ponytail-help Alias for /skill:ponytail-help

Deactivate: stop ponytail or normal mode. Resume with /ponytail <mode> (e.g. /ponytail full).


Intensity levels

Level What changes
lite Build what's asked, name the lazier alternative in one line. You pick.
full The ladder enforced. Stdlib and native first. Shortest diff, shortest explanation. Default.
ultra YAGNI extremist. Deletion before addition. Ship the one-liner and challenge the rest.
review Ruleset off; behavior governed by /skill:ponytail-review. Session-only — not a valid default.
off Ponytail disabled for this session.

Default mode

Resolution order (first wins):

  1. Env var — PONYTAIL_DEFAULT_MODE=lite|full|ultra|off Other env vars: PONYTAIL_QUIET_STARTUP and PONYTAIL_HIDE_STATUS (truthy = on, each overrides its config key); PONYTAIL_SUBAGENT_SCOPE=off disables subagent injection.
  2. Config file — $XDG_CONFIG_HOME/ponytail/config.json or ~/.config/ponytail/config.json
    { "defaultMode": "full", "quietStartup": true, "hideStatus": true }
    quietStartup suppresses the "Ponytail loaded: " startup message; hideStatus hides the ponytail status-bar item.
  3. Built-in — full

Subagents

Subagents spawned through the subagent tool (pi-subagent) don't load extensions, so the ruleset wouldn't reach them. When ponytail is active, a tool_call hook prepends a compact ponytail block to the tool call's instructions, which pi-subagent applies to every child (single, parallel, chain, background). All roles get it — scout, worker, planner, reviewer — but plans, reviews, and reports explicitly requested by the task are delivered in full; the block governs what the subagent builds, not requested output.

Set PONYTAIL_SUBAGENT_SCOPE=off to disable subagent injection. Children that load extensions (tool-inheriting agents) self-inject via before_agent_start; the marker prevents a second copy.


Changelog

See CHANGELOG.md for release history.


License

MIT. Same as upstream.