nah : Un garde d'autorisation contextuel pour Claude Code

✍️ OpenClawRadar📅 Publié: March 12, 2026🔗 Source
nah : Un garde d'autorisation contextuel pour Claude Code
Ad

Ce que fait nah

nah est un garde-permission basé sur Python qui s'intercale entre Claude Code et l'exécution des outils. Il répond aux limites du système de permission binaire autoriser-ou-refuser de Claude en ajoutant une prise de décision contextuelle. L'outil intercepte chaque appel d'outil avant son exécution et le classe en fonction de ce qu'il fait réellement.

Comment ça fonctionne

Chaque appel d'outil passe d'abord par un classifieur structurel déterministe (aucun LLM requis) qui s'exécute en millisecondes. Le classifieur associe les commandes à des types d'action comme :

  • filesystem_read
  • filesystem_delete
  • package_run
  • db_write
  • git_history_rewrite
  • lang_exec

Pour chaque type d'action, nah applique l'une des quatre politiques : autoriser, contexte (dépend de la cible), demander ou bloquer. La même commande reçoit des décisions différentes selon le contexte :

  • rm dist/bundle.js (dans le projet) → Autoriser
  • rm ~/.bashrc (en dehors du projet) → Demander
  • git push --force → Demander (réécriture de l'historique)
  • base64 -d | bash → Bloquer (décodage + pipe d'exécution)

Ce qu'il protège

nah vérifie différents aspects selon l'outil :

  • Bash : Classification structurelle des commandes — type d'action, composition des pipes, déballage du shell
  • Read : Détection des chemins sensibles (~/.ssh, ~/.aws, .env, ...)
  • Write : Vérification du chemin + limite du projet + inspection du contenu (secrets, exfiltration, charges destructives)
  • Edit : Vérification du chemin + limite du projet + inspection du contenu sur la chaîne de remplacement
  • Glob : Protège la recherche récursive dans les emplacements sensibles
  • Grep : Détecte les modèles de recherche d'identifiants en dehors du projet
  • MCP tools : Classification générique pour les serveurs d'outils tiers (mcp__*)
Ad

Installation et utilisation

Installez avec : pip install nah && nah install

Désinstallez avec : nah uninstall && pip uninstall nah

L'outil fonctionne immédiatement avec des paramètres par défaut raisonnables, sans nécessiter de configuration. Vous pouvez exécuter une démo de sécurité dans Claude Code avec : /nah-demo qui parcourt 25 cas en direct sur 8 catégories de menaces, y compris l'exécution de code à distance, l'exfiltration de données et les commandes obfusquées.

Options de configuration

Lorsque vous souhaitez personnaliser le comportement, vous pouvez configurer via :

  • ~/.config/nah/config.yaml (global)
  • .nah.yaml (par projet, ne peut que resserrer les permissions)

Exemple de configuration :

actions:
  filesystem_delete: ask  # toujours confirmer les suppressions
  git_history_rewrite: block  # jamais autoriser les force push
  lang_exec: allow  # faire confiance aux scripts inline

sensitive_paths: ~/.kube: ask ~/Documents/taxes: block

Couche LLM facultative

Pour les commandes que le classifieur déterministe ne peut pas résoudre, nah peut optionnellement consulter un LLM. Le flux est : Appel d'outil → nah (déterministe) → LLM (facultatif) → permissions de Claude Code → exécuter. La couche déterministe s'exécute toujours en premier — le LLM ne résout que les décisions "demander" restantes. Si aucun LLM n'est configuré ou disponible, la décision reste "demander" et l'utilisateur est invité. Les fournisseurs pris en charge incluent Ollama, OpenRouter, OpenAI, Anthropic et Snowflake Cortex.

Notes importantes

Les développeurs mettent spécifiquement en garde contre l'utilisation du drapeau --dangerously-skip-permissions de Claude Code. En mode contournement, les crochets se déclenchent de manière asynchrone — les commandes s'exécutent avant que nah puisse les bloquer. Au lieu de cela, ils recommandent d'autoriser des outils comme Bash, Read, Glob et Grep et de laisser nah les protéger.

📖 Read the full source: HN AI Agents

Ad

👀 See Also

Demande de Fonctionnalité pour Claude Desktop : Crochet de Démarrage de Session pour l'Initialisation Automatique
Tools

Demande de Fonctionnalité pour Claude Desktop : Crochet de Démarrage de Session pour l'Initialisation Automatique

Un développeur créant des systèmes de contexte persistant pour Claude Desktop identifie un manque : le champ Préférences utilisateur n'injecte des instructions que lorsque l'utilisateur envoie le premier message, nécessitant des déclencheurs manuels pour l'initialisation. Il propose d'ajouter un champ d'exécution "Au démarrage de la session" qui s'exécute automatiquement à l'ouverture d'une nouvelle conversation.

OpenClawRadar
La suite MCP open-source améliore la qualité de la génération de code de Claude de 15 à 20 %.
Tools

La suite MCP open-source améliore la qualité de la génération de code de Claude de 15 à 20 %.

Une suite MCP open-source composée de trois serveurs locaux et d'une compétence de prompt résout le problème des 'mauvais tokens' dans la génération de code par IA, avec un client rapportant une amélioration de qualité de 15 à 20 % pour Claude Code.

OpenClawRadar
10.33 t/s sur Qwen 3.5 35B avec un ordinateur portable à 300 $ : Répartition complète de l'optimisation
Tools

10.33 t/s sur Qwen 3.5 35B avec un ordinateur portable à 300 $ : Répartition complète de l'optimisation

Un développeur atteint 10,33 t/s sur Qwen 3.5 35B Q4_K_S avec un Lenovo Ideapad Slim 3i à 300 $ en utilisant ik_llama.cpp, le core pinning, le décodage spéculatif MTP et un réglage BIOS des performances.

OpenClawRadar
Claude a écrit 3 000 lignes de code au lieu d'importer pywikibot — une étude de cas sur les agents IA ignorant les bibliothèques existantes
Tools

Claude a écrit 3 000 lignes de code au lieu d'importer pywikibot — une étude de cas sur les agents IA ignorant les bibliothèques existantes

Un développeur a confié à Claude Code (Opus 4.7) la correction de fautes sur des wikis Fandom. Le modèle a écrit ~3 000 lignes de Python réimplémentant pywikibot, mwparserfromhell et les règles RETF au lieu de les importer. L'article explore pourquoi cela se produit et comment une recherche de deux minutes a réduit la base de code à 1 259 lignes.

OpenClawRadar