Recoleta Item Note

Show HN: A context-aware permission guard for Claude Code

nah 是一个面向 Claude Code 的上下文感知权限守卫,用结构化规则而不是简单的按工具允许/拒绝来判断每次工具调用的真实风险。它试图在保持自动化效率的同时,阻止危险文件操作、密钥读取、数据外传和恶意命令执行。

agent-safetypermission-guarddeveloper-toolscode-assistantcontext-aware-security

nah 是一个面向 Claude Code 的上下文感知权限守卫,用结构化规则而不是简单的按工具允许/拒绝来判断每次工具调用的真实风险。它试图在保持自动化效率的同时,阻止危险文件操作、密钥读取、数据外传和恶意命令执行。

  • 现有 Claude Code 权限机制主要是按工具做 allow-or-deny,粒度过粗,无法区分“同一工具下安全与危险操作”的差异。
  • 仅靠维护 deny list 很难覆盖复杂上下文,模型还可能绕过静态限制,导致删除文件、泄露凭证、执行恶意脚本等风险。
  • 这很重要,因为开发代理需要更高自主性,但 --dangerously-skip-permissions 这类全放开模式会显著增加破坏本地环境和敏感数据的概率。
  • 在每次工具执行前,nah 作为 PreToolUse hook 拦截调用,先用确定性的结构化分类器按“实际动作类型”判断,而不是按命令名或工具名粗暴放行。
  • 分类器结合上下文做决策,例如目标路径、命令参数、写入内容是否含私钥、是否涉及 git push --force、是否访问 ~/.aws/~/.ssh 等敏感位置。
  • 对分类器无法明确判断的情况,可选接入 LLM 只处理剩余的“ask”决策;并且设置 max_decision: ask,防止 LLM 把高风险操作提升为直接 allow。
  • 系统支持全局与项目级配置:项目 .nah.yaml 只能收紧不能放松策略,从而避免恶意仓库借配置绕过防护;同时提供约 20 个内置 action types、日志、测试与命令行调参能力。
  • 文本未提供正式论文式基准评测、准确率、误报率或与其他权限系统的量化对比结果。
  • 作者给出的最具体演示结果是:提供 25 个实时安全案例,覆盖 8 类威胁,约 5 分钟 可跑完,包括 remote code execution、data exfiltration、obfuscated commands 等。
  • 系统声称规则分类“运行在毫秒级”,并且“每个工具调用”都会先经过确定性分类器,再视情况进入可选 LLM 决策链。
  • 内置覆盖面方面,项目声明有 20 种 built-in action types,默认 full profile 覆盖 shell、git、packages、containers 等场景。
  • 具体能力示例包括:允许 git push,对 git push --force 触发拦截/确认;允许清理 rm -rf __pycache__,阻止 rm ~/.bashrc;允许读取 ./src/app.py,拦截读取 ~/.ssh/id_rsa;对包含私钥内容的写入进行内容检查并阻断。
Built with Recoleta

Run your own research radar

Turn arXiv, Hacker News, OpenReview, Hugging Face Daily Papers, and RSS into local Markdown, Obsidian notes, Telegram digests, and a public site.