nah: Un guardia de permisos sensible al contexto para Claude Code

Qué hace nah
nah es un guardián de permisos basado en Python que se sitúa entre Claude Code y la ejecución de herramientas. Aborda las limitaciones del sistema binario de permisos de Claude (permitir o denegar) añadiendo toma de decisiones consciente del contexto. La herramienta intercepta cada llamada a herramienta antes de que se ejecute y la clasifica según lo que realmente hace.
Cómo funciona
Cada llamada a herramienta pasa primero por un clasificador estructural determinista (no requiere LLMs) que se ejecuta en milisegundos. El clasificador mapea comandos a tipos de acción como:
- filesystem_read
- filesystem_delete
- package_run
- db_write
- git_history_rewrite
- lang_exec
Para cada tipo de acción, nah aplica una de cuatro políticas: permitir, contexto (depende del objetivo), preguntar o bloquear. El mismo comando recibe decisiones diferentes según el contexto:
rm dist/bundle.js(dentro del proyecto) → Permitirrm ~/.bashrc(fuera del proyecto) → Preguntargit push --force→ Preguntar (reescritura de historial)base64 -d | bash→ Bloquear (tubería de decodificación + ejecución)
Qué protege
nah verifica diferentes aspectos dependiendo de la herramienta:
- Bash: Clasificación estructural de comandos — tipo de acción, composición de tuberías, desenrollado de shell
- Read: Detección de rutas sensibles (~/.ssh, ~/.aws, .env, ...)
- Write: Verificación de ruta + límite del proyecto + inspección de contenido (secretos, exfiltración, cargas destructivas)
- Edit: Verificación de ruta + límite del proyecto + inspección de contenido en la cadena de reemplazo
- Glob: Protege el escaneo de directorios en ubicaciones sensibles
- Grep: Detecta patrones de búsqueda de credenciales fuera del proyecto
- MCP tools: Clasificación genérica para servidores de herramientas de terceros (mcp__*)
Instalación y uso
Instalar con: pip install nah && nah install
Desinstalar con: nah uninstall && pip uninstall nah
La herramienta funciona inmediatamente con valores predeterminados sensatos, sin requerir configuración. Puedes ejecutar una demostración de seguridad dentro de Claude Code con: /nah-demo que recorre 25 casos en vivo a través de 8 categorías de amenazas incluyendo ejecución remota de código, exfiltración de datos y comandos ofuscados.
Opciones de configuración
Cuando quieras personalizar el comportamiento, puedes configurar mediante:
~/.config/nah/config.yaml(global).nah.yaml(por proyecto, solo puede restringir permisos)
Ejemplo de configuración:
actions:
filesystem_delete: ask # siempre confirmar eliminaciones
git_history_rewrite: block # nunca permitir push forzado
lang_exec: allow # confiar en scripts en línea
sensitive_paths:
~/.kube: ask
~/Documents/taxes: block
Capa opcional de LLM
Para comandos que el clasificador determinista no puede resolver, nah puede consultar opcionalmente un LLM. El flujo es: Llamada a herramienta → nah (determinista) → LLM (opcional) → Permisos de Claude Code → ejecutar. La capa determinista siempre se ejecuta primero — el LLM solo resuelve decisiones "preguntar" restantes. Si no hay LLM configurado o disponible, la decisión permanece "preguntar" y se solicita al usuario. Los proveedores compatibles incluyen Ollama, OpenRouter, OpenAI, Anthropic y Snowflake Cortex.
Notas importantes
Los desarrolladores advierten específicamente contra el uso de la bandera --dangerously-skip-permissions de Claude Code. En modo de omisión, los ganchos se activan de forma asíncrona — los comandos se ejecutan antes de que nah pueda bloquearlos. En su lugar, recomiendan permitir herramientas como Bash, Read, Glob y Grep y dejar que nah las proteja.
📖 Read the full source: HN AI Agents
👀 Ver también

OpenClaw PARA Habilidad Organiza Automáticamente Archivos Usando el Método de Tiago Forte.
Un desarrollador creó una habilidad para OpenClaw que aplica el método PARA (Proyectos, Áreas, Recursos, Archivos) para la organización automática de archivos, moviendo archivos desde un directorio raíz desordenado hacia carpetas estructuradas.

MTPLX: Tokens 2.24x más rápidos en Apple Silicon usando cabezales MTP nativos
MTPLX alcanza 63 tok/s en Qwen3.6-27B en M5 Max (frente a 28 tok/s) utilizando cabezales MTP incorporados, con muestreo exacto de temperatura y sin redactor externo.

AgentPVP: Una arena competitiva LLM centrada en agentes con ELO, rivalidades y caja de arena de inyección de prompts
AgentPVP permite que agentes LLM se registren, jueguen 5 juegos de mesa a través de APIs JSON, mantengan un ELO por juego, escriban archivos de rivalidad y se insulten mutuamente en un salón global. El HTML es opcional: la API es el sitio.

Observación: Una Herramienta de Anotación en Markdown para Flujos de Trabajo de Código en Claude
Remark es una aplicación nativa para macOS que permite a los desarrolladores anotar archivos Markdown en línea para flujos de trabajo de revisión de código en Claude Code. Exporta las anotaciones como JSON para el agente y se integra mediante una habilidad instalada en el directorio .claude/skills/.