Saltar al contenido
← Volver a Onopen

Guía por archivo

Hooks de Claude Code y otros agentes: comandos que llegan con el repositorio

Los agentes de programación leen su configuración del propio proyecto. Si esa configuración trae hooks, el repositorio decide qué comandos de shell se ejecutan en tu máquina mientras trabajas con el agente.

.claude/settings.json.gemini/settings.json.cursor/hooks.json.cursor/environment.json

Lo medimos

62.3%

de los 879 repositorios con configuración para agentes de IA ejecutan algo al abrirse, al iniciar sesión o al instalar.

2.0%

de los 9,997 repositorios más populares de GitHub tienen al menos un hallazgo de la familia agent.

Cómo lo medimos

Qué se ejecuta y cuándo

En Claude Code, el archivo .claude/settings.json del proyecto se comparte con el repositorio. Su sección hooks asocia eventos (inicio de sesión, antes o después de usar una herramienta, al enviar un mensaje, al terminar) con comandos de tipo command, que se ejecutan en tu shell sin pedir confirmación cada vez. Un hook de SessionStart corre en cuanto abres una sesión en esa carpeta.

Otros agentes tienen piezas parecidas: .gemini/settings.json en Gemini CLI, .cursor/hooks.json y los comandos de entorno de .cursor/environment.json en Cursor. Y casi todos aceptan listas de permisos en el repositorio: una regla amplia deja que el agente ejecute comandos sin el aviso que te habría hecho parar.

Lo que ya ha pasado

Según The Register, investigadores de Check Point encontraron en 2025 que Claude Code ejecutaba los hooks de .claude/settings.json de un repositorio sin pedir aprobación: cualquiera con permiso de commit podía ejecutar comandos en la máquina de quien abriera el proyecto. Anthropic lo corrigió (aviso GHSA-ph6w-f82w-28w6), junto con otro fallo de servidores MCP que trata la guía de .mcp.json. Mantén el agente actualizado, pero ten en cuenta que, una vez aceptas la confianza del proyecto, los hooks hacen exactamente lo que dicen.

En nuestro estudio, el 8.8% de los 9,997 repositorios más populares trae configuración para agentes, y de esos, el 62.3% ejecuta algo sin más acción que abrir, iniciar sesión o instalar. En el conjunto completo la cifra es del 25.1%: la superficie de los agentes es la más nueva y la más cargada.

Cómo revisarlo a mano

Antes de iniciar el agente en un repositorio ajeno, lista sus carpetas de configuración y lee los hooks. Busca entradas "type": "command" y fíjate en qué evento las dispara. Revisa también las listas de permisos: una regla que permite cualquier comando de Bash es tan importante como un hook.

Si hay algo que no entiendes, inicia el agente fuera de esa carpeta o borra la configuración del proyecto en una copia antes de usarlo.

ls -la .claude .gemini .cursor 2>/dev/nullcat .claude/settings.jsongrep -rn '"type": *"command"' .claude .gemini .cursor 2>/dev/null

Qué marca Onopen

El escáner agents lee la configuración y los hooks de Claude, Gemini, Cursor, Windsurf, Continue y Aider. Marca los hooks de comando (la regla agent/command-hook), los comandos de prueba o lint que el agente ejecuta, los comandos de entorno de Cursor y las listas de permisos que quitan el aviso.

Los servidores MCP declarados en esa misma configuración los cubre el escáner mcp, así que conviene pasar los dos juntos.

onopen --only agents,mcp --explain ./repo

Preguntas frecuentes

¿Qué es un hook de Claude Code?

Un comando de shell que Claude Code ejecuta en un momento fijo, como al iniciar sesión o antes de usar una herramienta. Se declara en .claude/settings.json y, si está en el repositorio, lo escribió quien escribió el repositorio.

¿.claude/settings.local.json también cuenta?

Es la configuración local, pensada para no subirse al repositorio. Si aparece versionada, trátala igual que settings.json.

¿Es seguro dejar que un agente abra repositorios por mí?

Solo si revisas antes lo que el repositorio le ordena al agente ejecutar. Hacerlo es justo lo que automatiza Onopen.

Fuentes

Otras guías

Revisa un repositorio antes de abrirlo

Onopen es gratis y de código abierto. Lee la configuración, no ejecuta nada y no abre ninguna conexión.