Ponytail: hacer que el agente escriba menos, sin recortar lo importante
DietrichGebert/ponytail · 145.811★ · 7.814 forks
Todo lo que hay que saber sobre DietrichGebert/ponytail: un conjunto de reglas, habilidades y adaptadores para que los agentes de programación escojan la solución mínima que cumple el requisito.
Qué es Ponytail
Ponytail es un plugin y una colección de instrucciones para agentes de programación. Su imagen deliberadamente caricaturesca es la de un desarrollador sénior que sustituye cincuenta líneas por una; su objetivo técnico es que el agente deje de construir funciones, abstracciones o dependencias innecesarias.
No debe confundirse con un compresor de contexto ni con un modelo. Es una capa de comportamiento: se inyecta como reglas persistentes o como habilidad según el entorno. El sitio oficial lo resume como «el menor código que funciona»; el README concreta una escalera de decisión y límites de seguridad.
El origen: una regla sencilla convertida en distribución multiplataforma
GitHub registra la creación del repositorio el 12 de junio de 2026. La cuenta del autor identifica el paquete de npm como obra de Dietrich Gebert, aunque su perfil de GitHub no publica biografía ni empresa. Dos días después, el 14 de junio, el repositorio ya apareció en Hacker News.
La narrativa del proyecto parte de una tensión habitual en la programación asistida: un agente puede preferir una biblioteca, un componente y una capa de configuración cuando el navegador, la biblioteca estándar o el código existente ya resuelven el problema. El ejemplo del README contrasta un selector de fecha con el elemento nativo <input type="date">.

El proyecto no convierte la reducción de líneas en una regla ciega. El README fue corregido después de que la incidencia #126 cuestionara una comparación temprana con una respuesta de modelo sin agente: la documentación actual presenta el resultado anterior como un máximo por tarea, no como media general. Es una señal útil de que sus cifras son mediciones del propio proyecto, no un estudio independiente.
Filosofía y principios
La escalera de Ponytail, documentada en AGENTS.md y el README, se recorre después de entender la tarea y el flujo afectado:
- ¿Hace falta construirlo? Si no, se descarta por YAGNI.
- ¿Ya existe en la base de código? Se reutiliza.
- ¿Lo ofrece la biblioteca estándar? Se usa.
- ¿Existe una función nativa de la plataforma? Se prefiere.
- ¿Ya hay una dependencia instalada que lo resuelva? Se aprovecha.
- ¿Cabe en una línea? Se deja en una línea.
- Solo entonces se escribe la implementación mínima necesaria.

El límite es tan importante como la escalera. Las instrucciones excluyen de la simplificación la validación en fronteras de confianza, el manejo de errores que evita pérdida de datos, la seguridad, la accesibilidad y lo solicitado expresamente. Para lógica no trivial exige una comprobación ejecutable pequeña; una simplificación que acepte un límite conocido se puede anotar con ponytail: y una vía de mejora. Por tanto, «perezoso» significa reducir mantenimiento, no eliminar garantías.

Cómo funciona
El repositorio mantiene una fuente de reglas y adaptadores para distintos anfitriones. En anfitriones con plugins, los ganchos cargan el modo activo y pueden inyectar las instrucciones antes de cada turno; en adaptadores solo de instrucciones se copia el archivo de reglas adecuado. El README declara compatibilidad con veinte agentes y enumera, entre otros, Claude Code, Codex, Copilot CLI, OpenCode, Gemini CLI, Pi, Hermes Agent, Devin CLI, OpenClaw, Qoder y Swival.
Los modos disponibles son lite, full, ultra y off. El modo predeterminado es full. Además de la habilidad principal hay comandos para revisar una diferencia, auditar un repositorio, registrar deuda técnica aplazada, mostrar los resultados del banco de pruebas y pedir ayuda.
El repositorio incluye un banco de pruebas reproducible. Según su README, compara sesiones de Claude Code sobre full-stack-fastapi-template, con doce tareas de funcionalidades y cuatro repeticiones con Haiku 4.5. Declara una media de 54 % menos líneas, 22 % menos tokens, 20 % menos coste y 27 % menos tiempo, con todas las comprobaciones de seguridad de su conjunto. Son resultados publicados por Ponytail; no se recuperó una reproducción independiente en esta investigación. El propio README advierte que modelos muy concisos en razonamiento pueden invertir el ahorro.

Estado oficial y semioficial
Ponytail ofrece instrucciones de instalación mediante los mecanismos de plugins de Claude Code, Codex, GitHub Copilot CLI, Gemini CLI, Devin CLI y Hermes Agent, además de distribución por npm para OpenCode y Pi. Que el paquete sea instalable por esos mecanismos significa compatibilidad técnica y distribución desde sus interfaces; no equivale, por sí solo, a una certificación de la metodología, a una recomendación editorial de Anthropic, OpenAI, GitHub, Google o Nous Research.
La integración con Hermes se añadió en la solicitud de cambios #78: registra pre_llm_call, habilidades con espacio de nombres ponytail: y comandos de barra. La versión v4.8.4 también declara soporte como plugin nativo para Hermes y Devin CLI. No se recuperó una designación de estándar oficial ni una página de mercado de proveedor que otorgue otra condición formal; en la práctica es un proyecto de facto muy distribuido dentro del patrón de «habilidad para agentes».
El ecosistema
Distribuciones y componentes del proyecto
@dietrichgebert/ponytail: paquete de npm para OpenCode y Pi. La versión publicada más reciente recuperada es4.8.4; npm registró 9.488 descargas entre el 29 de julio y el 4 de agosto de 2026, y 36.886 entre el 6 de julio y el 4 de agosto. Son descargas de paquetes, no instalaciones únicas.ponytail-mcp: servidor MCP incluido desdev4.8.0; sirve el conjunto de reglas a agentes compatibles con MCP.benchmarks/: arnés y resultados del proyecto para medir líneas, tokens, coste, tiempo y comprobaciones de seguridad..openclaw/skills/: paquete generado desdeskills/; el README indica regenerarlo connode scripts/build-openclaw-skills.jsantes de publicar sus seis habilidades en ClawHub.
La consulta de repositorios públicos del autor devolvió tres repositorios: el principal, DietrichGebert/DietrichGebert y DietrichGebert/maxfelker.com. No se identificó un repositorio hermano público adicional destinado a Ponytail.
Derivados, bifurcaciones y puertos comunitarios
La API de bifurcaciones devolvió sobre todo copias sin cambios en la descripción. Entre los derivados que sí se presentan como adaptación o extensión están:
warp-svg/ponytail-gilfoyle: reinterpretación con voz de Gilfoyle que declara conservar la escalera YAGNI y los límites de seguridad; 7 estrellas.pavnxet/Mimocode-ponytail: derivado que se describe como modo de desarrollador sénior para agentes; 3 estrellas.robertbarclayy/NWBZPWNR: bifurcación que dice llevar Ponytail al extremo; 3 estrellas.wilfgrainger/cave-pony: combinación declarada de Ponytail yJuliusBrussee/caveman; el resultado de búsqueda recuperado confirma la relación, pero no se recuperó una cifra de estrellas completa para citarla.
El repositorio principal incluye traducciones mantenidas de su README al español (README.es.md) y al coreano (README.ko.md). No se recuperó una traducción comunitaria no inglesa independiente que pueda afirmarse como un puerto separado.
Números del repo
Medición: 6 de agosto de 2026, API de GitHub y npm.
| Métrica | Valor |
|---|---|
| Estrellas | 97.059 |
| Bifurcaciones | 5.332 |
| Suscriptores reales | 235 |
| Commits | 206 |
| Incidencias abiertas indicadas por la API | 157 |
| Lenguaje principal | JavaScript |
| Licencia | MIT |
| Creación | 12 de junio de 2026 |
Último envío a main recuperado | 15 de julio de 2026 |
| Última publicación | v4.8.4, 29 de junio de 2026 |

El conteo de 206 commits procede de la última página indicada por la cabecera de paginación de la API. Los contribuidores principales recuperados por número de contribuciones fueron DietrichGebert (107), Lakshya77089 (10), ousamabenyounes (8), seguidos por dhedhialy, hamza-ali-shahjahan y salaamdev (4 cada uno).
La API devuelve watchers_count como duplicado de estrellas; por ello se informa subscribers_count como suscriptores reales. open_issues_count puede mezclar incidencias y solicitudes de cambios abiertas, por lo que no equivale necesariamente a incidencias exclusivamente. La respuesta de la API muestra updated_at el 6 de agosto de 2026; se transcribe como metadato de la API, sin inferir actividad posterior al último envío recuperado.
Cómo contribuir
No se recuperó un CONTRIBUTING.md ni una guía formal de bifurcación y solicitud de cambios. Sí hay instrucciones de desarrollo en el README: después de modificar reglas compactas se ejecutan node scripts/check-rule-copies.js y npm test; al cambiar una habilidad de OpenClaw se vuelve a generar con node scripts/build-openclaw-skills.js.
La solicitud de cambios #491 ilustra las verificaciones usadas en una contribución: comprobación de copias de reglas, comprobación de versiones, pruebas de Node, npm test y git diff --check. Es evidencia de prácticas de desarrollo, no una plantilla de contribución publicada.
Guía rápida de uso
Instalación y primer arranque
- Claude Code: envíe por separado
/plugin marketplace add DietrichGebert/ponytaily/plugin install ponytail@ponytail. El README recalca que deben ser dos mensajes distintos. Requierenodeen elPATH; sin él, las habilidades siguen disponibles pero la activación persistente queda deshabilitada silenciosamente. - Codex: ejecute
codex plugin marketplace add DietrichGebert/ponytailycodex plugin add ponytail@ponytail; después abracodex, revise y autorice los dos ganchos en/hooks, y comience un hilo nuevo. La instalación también cubre la aplicación de escritorio tras reiniciarla. - OpenCode: añada
{ "plugin": ["@dietrichgebert/ponytail"] }aopencode.json. Como alternativa desde una copia local, use{ "plugin": ["./.opencode/plugins/ponytail.mjs"] }. - Hermes Agent: ejecute
hermes plugins install DietrichGebert/ponytail --enabley reinicie Hermes.

Flujos de trabajo habituales
- Para fijar la intensidad, use
/ponytail full,/ponytail lite,/ponytail ultrao/ponytail off; sin argumento informa el nivel actual. - Para revisar la diferencia de trabajo actual en busca de sobrediseño, invoque
/ponytail-review; el resultado es una lista de eliminaciones o simplificaciones propuestas. - Para inspeccionar todo un repositorio en lugar de una sola diferencia, invoque
/ponytail-audit. - Para no olvidar atajos deliberados, use
/ponytail-debt: recoge las anotacionesponytail:en un registro./ponytail-gainmuestra el marcador de impacto de los benchmarks del propio proyecto.

En Codex, el README indica que las habilidades se invocan con @, por ejemplo @ponytail-review. En Copilot CLI el espacio de nombres del plugin cambia los ejemplos a /ponytail:ponytail ultra y /ponytail:ponytail-review.
Configuración esencial
PONYTAIL_DEFAULT_MODE: variable de entorno que fijalite,full,ultrauoffpara sesiones nuevas.~/.config/ponytail/config.json: alternativa persistente con el campodefaultMode; en Windows se usa%APPDATA%\ponytail\config.json.PONYTAIL_SUBAGENT_MATCHER: expresión regular, sin anclaje y sin distinguir mayúsculas, para limitar la inyección en subagentes poragent_type.opencode.json: punto de entrada del paquete o del adaptador local en OpenCode.AGENTS.mdo el archivo de reglas del adaptador: ruta de migración para Cursor, Windsurf, Cline, Kiro, Copilot Chat, Aider, Zed y otros anfitriones sin plugin completo.
Trampas frecuentes y soluciones
- Los ganchos no se activan en Claude Code o Codex: compruebe que
nodeesté disponible en elPATHde la shell no interactiva; el README cita explícitamente entornos Nix y nvm. Las habilidades no dependen de que el gancho funcione. - OpenCode solo reconoce Ponytail dentro de la copia clonada: la incidencia #97 documenta este caso. El README actual recomienda el paquete
@dietrichgebert/ponytailo una ruta absoluta al archivo.mjssi se comparte una copia entre proyectos; una ruta con./se resuelve respecto aopencode.jsondel proyecto. - El modo no persiste o se reescribe la configuración: hay una solicitud de cambios abierta, #696, para evitar que la escritura de modo sobrescriba otros datos. Conviene conservar una copia del archivo de configuración si se combinan varias herramientas.
- Demasiado contexto en subagentes: la incidencia #597 calcula aproximadamente 1.300 tokens por inyección de modo
full; limite los tipos conPONYTAIL_SUBAGENT_MATCHERo desactive el modo cuando los subagentes sean solo de búsqueda. - Desinstalación incompleta: ejecute
node scripts/uninstall.jsantes de quitar el plugin. El README explica que borra el estado externo y una entrada de línea de estado propia, pero no debe ejecutarse después de borrar los archivos del plugin.
Integraciones y migración
ponytail-mcp permite ofrecer las reglas a agentes con MCP. Para OpenClaw, clawhub install ponytail instala la habilidad; sin ClawHub, el README indica copiar .openclaw/skills/ponytail a ~/.openclaw/skills/. En adaptadores de instrucciones se migra copiando el archivo correspondiente, por ejemplo .cursor/rules/, .windsurf/rules/, .clinerules/, .github/copilot-instructions.md o AGENTS.md.
La convivencia documentada con JuliusBrussee/caveman es complementaria según el README: Caveman reduce la prosa del agente y Ponytail busca reducir el código. Esa es una afirmación del proyecto, no una prueba de interoperabilidad universal.
Cómo lo recibió la comunidad
La recepción recuperable es mixta y concreta:
- El hilo de Hacker News 48527946, enviado por mellosouls el 14 de junio, obtuvo 98 puntos y 17 comentarios. Neywiny dijo que quería probarlo porque sus modelos locales tendían a añadir exactamente el tipo de código que la habilidad intenta evitar. kamphey consideró útiles las heurísticas básicas para hacer más rápidas las ediciones y eliminaciones simples. Son experiencias y expectativas individuales, no mediciones de rendimiento.
- En el mismo hilo, wiradikusuma objetó que un desarrollador sénior contextualiza: un selector nativo puede servir en un caso, pero otro puede necesitar más. donatj criticó que el repositorio podría reducirse a una regla breve y mucho menos código de integración. Estas objeciones encajan con el principal riesgo práctico: confundir minimalismo con falta de comprensión del producto.
- En el hilo 48588755, una conversación sobre escepticismo ante herramientas de reducción de tokens, Zababa señaló que Ponytail y proyectos próximos no usaban bancos de pruebas generalizados como SWE-Bench Pro y temía una degradación silenciosa del modelo. Es una crítica atribuida a ese usuario; no se recuperó una evaluación externa que la confirme. El README sí responde parcialmente con su benchmark agentivo y reconoce el sesgo de la comparación anterior.
- La incidencia #65, con 16 comentarios, pide comparar con SWE-Bench Pro y Terminal Bench 2.1. La propuesta abierta #432, con 9 comentarios, elogia la heurística pero advierte que un agente puede inventar funciones o variables para escribir menos; la advertencia es del autor de esa propuesta, no una prueba de que Ponytail lo haga.
Se intentaron búsquedas de Reddit, X, Product Hunt, vídeos de YouTube y buscadores de artículos. En esta ejecución Reddit devolvió resultados HTML sin hilos identificables, X requirió una sesión para recuperar contenido útil, Product Hunt no ofreció una ficha verificable, y las respuestas de YouTube no permitieron validar de forma individual título, canal y visualizaciones. Por tanto, no se atribuyen reseñas, lanzamientos ni cifras a esas plataformas. Tampoco se recuperaron menciones verificables en Dev.to, Hashnode, podcasts, boletines o listas awesome-*.
Ponytail frente a otras propuestas
| Propuesta | Coincidencia verificable | Diferencia verificable |
|---|---|---|
JuliusBrussee/caveman | El README de Ponytail lo cita como control de prosa y documenta uso conjunto. | Ponytail pretende afectar qué código se construye; el README afirma que Caveman conserva el código sin cambios. |
anshaneja5/scalpel | Su descripción recuperada se presenta como habilidad para agentes y se compara explícitamente con el benchmark de Ponytail. | Declara superar el benchmark de Ponytail; no se recuperó su metodología, por lo que esa afirmación no es un resultado independiente. |
rtk-ai/rtk | Una discusión de Hacker News los agrupa como herramientas que alteran el comportamiento o el uso de tokens de agentes. | La fuente recuperada no basta para asegurar equivalencia funcional; la comparación es de una crítica de usuario, no de arquitectura. |
Casos de uso y a quién puede ayudar este repositorio
- Personas que revisan cambios de agentes en bases de código existentes pueden usar la escalera para comprobar primero reutilización, biblioteca estándar y capacidades nativas antes de abrir una nueva abstracción o añadir una dependencia.
- Equipos con Claude Code, Codex, Copilot CLI, OpenCode o Hermes pueden activar el modo persistente y usar
/ponytail-reviewcomo una revisión específica de sobrediseño antes de fusionar una diferencia. - Mantenedores con tareas pequeñas y repetitivas pueden emplear
/ponytail-auditpara encontrar complejidad accidental y/ponytail-debtpara registrar atajos aceptados sin fingir que son soluciones definitivas. - Quienes trabajan con subagentes pueden combinar el patrón con
PONYTAIL_SUBAGENT_MATCHERpara decidir qué trabajadores reciben la regla. Es especialmente relevante si el coste de repetir las instrucciones es visible en sesiones con muchos subagentes. - Proyectos con requisitos de seguridad, accesibilidad, validación o hardware deben tratar Ponytail como una ayuda de revisión, no como autorización para recortar controles: esos ámbitos están explícitamente fuera de su política de simplificación.
Recursos
- Repositorio: https://github.com/DietrichGebert/ponytail
- Sitio y documentación: https://ponytail.dev/
- Instalación y guía de portabilidad: https://github.com/DietrichGebert/ponytail#install y https://github.com/DietrichGebert/ponytail/blob/main/docs/agent-portability.md
- Skills y reglas oficiales: https://github.com/DietrichGebert/ponytail/tree/main/skills y https://github.com/DietrichGebert/ponytail/blob/main/AGENTS.md
- MCP y benchmarks oficiales: https://github.com/DietrichGebert/ponytail/tree/main/ponytail-mcp y https://github.com/DietrichGebert/ponytail/tree/main/benchmarks
- Paquete npm: https://www.npmjs.com/package/@dietrichgebert/ponytail
- Publicaciones y cambios: https://github.com/DietrichGebert/ponytail/releases
- Conversaciones y críticas: https://news.ycombinator.com/item?id=48527946, https://news.ycombinator.com/item?id=48588755, https://github.com/DietrichGebert/ponytail/issues/65, https://github.com/DietrichGebert/ponytail/issues/97
- Comunidad: no se recuperó un enlace oficial a Discord u otro foro comunitario en las fuentes consultadas.
Nota: este artículo combina el README, AGENTS.md, los archivos de documentación y versiones de Ponytail, su sitio oficial, la API de GitHub, la API de npm y Hacker News, consultados el 6 de agosto de 2026. Las métricas y las interfaces de los proveedores cambian con el tiempo.
Comentarios