ECC es un complemento gratis y open source (licencia MIT) que convierte el agente de código que ya usas en un pequeño equipo de ingeniería. No es un modelo nuevo ni una app nueva: se instala encima de Claude Code, Codex o Cursor y le da a tu agente especialistas y rutinas. Un agente planifica la feature, una skill hace que escriba los tests antes del código, otro agente ataca tu app buscando fallos, y un comando sigue escribiendo tests hasta que la cobertura cierra. ECC lo creó Affaan Mustafa y superó las 264 mil estrellas en GitHub en ocho meses, más que React y más que Linux.
Antes de empezar
- Claude Code 2.1 o más nuevo (
claude --version), Codex o Cursor. - Node.js 18 o más nuevo, para
npx(node --version), y Git. - Un proyecto donde puedas experimentar. El paso a paso de abajo usó una API Node pequeña, creada solo para esta guía.
Qué es ECC, en palabras simples
ECC es un harness: la capa de instrucciones y automatización alrededor del modelo. Añade cuatro tipos de piezas:
- Agentes (68). Especialistas a los que tu agente les pasa trabajo, cada uno con sus propias instrucciones y herramientas:
planner,tdd-guide,security-reviewer,code-reviewer,build-error-resolvery revisores de Python, Go, Rust, React y más. - Skills (292). Manuales que el agente lee cuando la tarea encaja: desarrollo guiado por tests, revisión de seguridad, tests end-to-end, diseño de APIs, y muchos paquetes de áreas que nunca vas a usar.
- Hooks. Pequeños scripts que corren solos antes o después de que el agente actúe: controles de calidad después de una edición, controles de seguridad antes de un comando en la terminal, un resumen de la sesión cuando paras.
- Reglas. Estándares siempre activos, por lenguaje. El plugin de Claude no puede instalarlas; copias solo los paquetes que quieras.
También trae memoria entre sesiones, aprendizaje continuo y AgentShield, un escáner de la configuración del propio agente.
Sé honesto con el tamaño. 68 agentes y 292 skills es mucho. En el plugin de Claude Code, claude plugin details ecc@ecc muestra unos 41.500 tokens de contexto añadidos a cada sesión. El propio README de ECC dice que empieces por el flujo que necesitas, no por el catálogo entero. Esta guía hace justo eso: cuatro comandos, uno por papel.
Instala ECC en Claude Code
En la terminal, ejecuta la instalación guiada:
npx ecc-universal@2.2.1 setupLa primera vez, npx pide descargar ecc-universal; responde y. Después el asistente busca instalaciones anteriores y hace dos preguntas:
- Where should Claude enable ecc@ecc? (dónde activarlo). Global user lo deja disponible en todos los proyectos. Shared project lo guarda en la configuración del repositorio, para el equipo. Private project lo activa solo aquí, sin hacer commit de la elección. Si dudas, elige 1.
- How should ECC hooks run? (cómo corren los hooks). Off, Minimal, Standard (el predeterminado) o Strict. Más sobre esto abajo; Standard es un buen comienzo.
Confirma con y y reinicia Claude Code, o ejecuta /reload-plugins.

Una primera instalación en una máquina limpia, grabada para esta guía.
Compruébalo dentro de Claude Code:
/plugin list ecc@ecc
El paquete es el 2.2.1; el plugin que instala sigue al repositorio, 2.2.2 el día en que se escribió esta guía.
¿Por qué 2.2.1 y no 2.2.2? El README de ECC muestra hoy ecc-universal@2.2.2, pero esa versión todavía no está publicada en npm, así que el comando falla. 2.2.1 es lo que sirve npm. Si npx se queja de la versión, npm view ecc-universal version te dice la actual.
¿Prefieres los comandos de Claude Code? Dentro de Claude Code, /plugin marketplace add https://github.com/affaan-m/ECC y luego /plugin install ecc@ecc instalan el mismo plugin. Elige un solo camino. Nunca ejecutes el ./install.sh --profile full de ECC encima del plugin: instalar dos veces duplica skills y hace que los hooks se disparen dos veces.
¿Lo quieres más ligero? npx ecc-universal@2.2.1 install --profile minimal --target claude instala las reglas, los agentes y los flujos principales sin ningún hook.
Una vez instalado, /ecc:configure-ecc dentro de Claude Code reabre la misma configuración como una conversación.
Instálalo en Codex o en Cursor
Codex. ECC tiene un plugin nativo para Codex:
codex plugin marketplace add affaan-m/ECCcodex plugin add ecc@eccDentro de Codex, escribe $configure-ecc para la configuración guiada. Codex te pide confiar en los hooks de forma explícita, y no usa los cuatro perfiles de hooks de Claude. ¿Vas a configurar Claude Code y Codex juntos? npx ecc-universal@2.2.1 install --guided configura los dos en un solo flujo.
Cursor. El soporte para Cursor es un adaptador por proyecto, instalado desde una copia del repositorio:
git clone https://github.com/affaan-m/ECC.git && cd ECC./install.sh --profile minimal --target cursorCrea una carpeta .cursor/ con las reglas y los agentes de ECC (en .cursor/agents/ecc-*.md). El propio ECC llama a este adaptador "de capacidades limitadas": la experiencia completa es el plugin de Claude Code. El mismo patrón --target existe para Gemini CLI, Zed, OpenCode, Qwen, Kimi y otros; el README los lista.
Probé el camino de Claude Code de principio a fin para esta guía. Los comandos de Codex y Cursor vienen del README de ECC.
Planifica la feature antes de escribir código
Abre Claude Code en tu proyecto y describe la feature:
/ecc:plan "Permitir que los usuarios borren sus propias notas: DELETE /notes/:id, solo el dueño puede borrar, 404 si la nota no existe"El planner repite lo que pediste, lee el código buscando patrones que seguir, divide el trabajo en pasos, lista los riesgos con la gravedad de cada uno y entonces se detiene y espera a que respondas "yes" (o "modify: …"). No se escribe nada antes de que confirmes.

El plan para la API de ejemplo. Debajo, el planner además listó cuatro problemas que encontró en el código existente, incluido un path traversal y un token de admin escrito en el código, antes de pedir confirmación.
Las instalaciones por plugin usan el prefijo /ecc:. Si instalaste ECC a mano, puede que tengas la forma corta (/plan).
Escríbela con los tests primero
Responde al plan y pide la skill tdd-workflow:
yes. Usa la skill tdd-workflow: escribe primero los tests que fallan, después el código.
La skill le pasa el trabajo al agente tdd-guide, que escribe los tests, los ejecuta y los ve fallar por el motivo correcto, escribe el código mínimo que los hace pasar, y apunta a un 80% de cobertura o más.

Rojo, después verde: un commit con los tests fallando, luego un commit con el código que pasa, y la diferencia de cobertura explicada.
Ojo: hace commits. En un repositorio Git la skill crea un commit de checkpoint después de cada etapa (tests fallando, luego código que pasa), y en esta prueba trabajó en una rama nueva. No se sube nada al remoto. Empieza con el árbol de trabajo limpio para que esos commits contengan solo este cambio.
Ataca tu propia app, y luego la configuración del agente
Este es el "ataca tu propia app antes que el atacante" del reel. Pide el revisor de seguridad:
Usa el agente security-reviewer para revisar src/ en busca de vulnerabilidades. Lista lo que encuentres por gravedad; no cambies código todavía.
El agente security-reviewer busca secretos en el código, inyección, SSRF, criptografía insegura y el OWASP Top 10 y, cuando puede, demuestra el problema. En la API de ejemplo envió ?file=../../../../etc/hosts a la ruta de exportación y leyó archivos fuera de la carpeta.

Cuatro hallazgos críticos y tres altos, cada uno con el archivo, la línea y cómo se comprobó. El primer crítico, cortado arriba, era un JSON mal formado que tumbaba el servidor.
Después escanea el propio agente:
/ecc:security-scan/security-scan ejecuta AgentShield sobre la configuración de tu agente, no sobre tu app: permisos en .claude/settings.json, hooks, servidores MCP y secretos. La configuración del agente también es superficie de ataque. En el ejemplo detectó una clave de API en un commit del archivo de configuración, una regla Bash(*) que lo permite todo sin lista de bloqueo, y un servidor MCP instalado con @latest, sin versión fija.

AgentShield con /ecc:security-scan. Añade --fix para aplicar solo las correcciones que AgentShield marca como seguras.
Prueba hasta que la cobertura cierre
/ecc:test-coverageEjecuta tu herramienta de cobertura, lista cada archivo por debajo del 80%, escribe los tests que faltan (camino feliz, errores, casos límite, ramas), vuelve a ejecutar toda la suite y muestra una tabla de antes y después. Para flujos de usuario en un navegador real, pide la skill e2e-testing, que usa el agente e2e-runner con Playwright.

Del 78% al 97,6% en un comando. Además listó los bugs que tumban el servidor y que prefirió no probar, y no hizo ningún commit.
Otras entradas que vale la pena conocer: /ecc:code-review (una revisión de tus cambios con contexto limpio), /ecc:build-fix (arregla un build roto con cambios pequeños), /ecc:refactor-clean (quita código muerto), /ecc:context-budget (muestra qué se está comiendo tu contexto), y /ecc:save-session, /ecc:resume-session y /ecc:learn-eval para trabajos largos, de varios días.
Actualizar, ajustar los hooks, desinstalar
Actualizar. Ejecuta otra vez el mismo comando de instalación. Actualiza el plugin donde está, y también es la forma de cambiar el alcance o el perfil de hooks:
npx ecc-universal@2.2.1 setupEn Codex: codex plugin marketplace upgrade ecc, después codex plugin add ecc@ecc.
Perfiles de hooks. Los hooks son código que corre en tu máquina sin preguntar, así que elige a propósito:
- Minimal: solo los hooks esenciales de ciclo de vida y seguridad.
- Standard (predeterminado): controles de calidad y seguridad, incluido GateGuard (abajo).
- Strict: recordatorios extra y protecciones más estrictas.
- Off: solo skills y comandos, sin automatización de hooks.
ECC_HOOK_PROFILE y ECC_DISABLED_HOOKS te permiten cambiarlo por sesión sin volver a ejecutar la instalación. La lista completa de hooks está en el hooks/README.md del repositorio.
Desinstalar. Para el plugin de Claude Code:
claude plugin uninstall ecc@eccAñade --scope project o --scope local si lo instalaste ahí, y borra las carpetas de reglas que copiaste a mano. Si instalaste con install --profile … en lugar del plugin, revisa y elimina desde la misma carpeta con npx ecc-universal@2.2.1 uninstall --dry-run y npx ecc-universal@2.2.1 uninstall; list-installed, doctor y repair también están ahí.
Problemas comunes
- El agente se detiene y pide "hechos" antes de un comando o una edición. Es GateGuard, que viene en los perfiles Standard y Strict. Antes del primer comando de terminal de la sesión, y de la primera edición o archivo nuevo, obliga al agente a decir qué pediste y qué hará la acción; los comandos destructivos (borrar carpetas, resets forzados) se comprueban siempre. Suena molesto y casi nunca lo es: hace que el agente mire antes de escribir. Para relajarlo,
GATEGUARD_BASH_ROUTINE_DISABLED=1salta el control de rutina de la terminal,GATEGUARD_EXEMPT_GLOBSsalta rutas como**/tests/**, yECC_GATEGUARD=offlo apaga en la sesión. El perfil Minimal no lo incluye. npx ecc-universal@2.2.2falla con E404. Esa versión todavía no está en npm. Usa@2.2.1, o mira la actual connpm view ecc-universal version.npx ecc-installno funciona.ecc-installes un programa dentro deecc-universal, no un paquete propio. Usa los comandosnpx ecc-universal@…de arriba.- Las skills aparecen duplicadas o los hooks se disparan dos veces. Apilaste dos métodos de instalación. Desinstala el plugin, ejecuta el
uninstall --dry-runde arriba y reinstala una sola vez. - No encuentra
/ecc:plan. Reinicia Claude Code o ejecuta/reload-plugins, y revisa/plugin list ecc@ecc. Las instalaciones manuales pueden usar/plan. - Las sesiones van lentas o salen caras. Es el contexto siempre activo. Elige el perfil Minimal o la instalación sin hooks, y ejecuta
/ecc:context-budget.
ECC es open source bajo la licencia MIT, creado por Affaan Mustafa con cientos de colaboradores: github.com/affaan-m/ECC. El repositorio tiene más para leer (en inglés): the-shortform-guide.md (su autor dice que se lea primero), the-longform-guide.md, the-security-guide.md, TROUBLESHOOTING.md y COMMANDS-QUICK-REF.md. El proyecto open source es gratis; ECC Pro, una GitHub App alojada para repositorios privados, es de pago. Comandos verificados el 21 de septiembre de 2026 con ecc-universal 2.2.1 y el plugin 2.2.2.

Comentarios
¿Tienes alguna pregunta o algo que añadir? Participa en la conversación.
No necesitas una cuenta. Selecciona Entrar y elige un nombre para comentar.
Cargando la conversación…
Privacidad de los comentariosNormas para comentar