一款名为 ccgate 的全新开源命令行接口 (CLI) 工具现已发布,旨在自动化处理 Claude Code 和 OpenAI Codex CLI 等 AI 编码环境中的权限提示。该工具能够将工具执行的权限决策委托给一个独立的LLM(默认使用 Claude Haiku),显著提升开发者的生产力和安全性。
ccgate 的核心功能是通过三种结果来解决权限提示:‘允许’ (allow)、‘拒绝’ (deny) 或 ‘转交用户’ (fallthrough)。如果拒绝执行,ccgate 会提供具体的理由,以便AI代理可以学习和调整。对于真正模棱两可或复杂的请求,则会将其上报给用户进行人工审查,确保关键决策仍由人工监督。
ccgate 的创建者报告了显著的效率提升,约97%的权限提示无需用户干预即可自动解决。这一数据来源于作者个人使用情况,每月在 Claude Code 中处理约2000个提示,充分展示了它大幅减少开发者中断的潜力。
开发 ccgate 的动机源于开发者普遍面临的挑战:如何管理 AI 编码助手频繁弹出的“允许此工具执行?”权限提示。尽管使用 `--dangerously-skip-permissions` 等标志跳过权限检查能带来便利,但它也引入了巨大的安全风险,可能导致本地数据库损坏、意外的网络活动或分支推送。ccgate 旨在提供一个关键的中间地带:允许代理自由执行常规任务,同时智能地阻止真正危险的操作,并标记出处于灰色地带的活动。
ccgate 解决了几个反复出现的痛点:
- 复杂的 shell 命令,其中单个子命令是允许的,但解析器无法完全分解整个复合命令行。
- 工作树漂移,即代理可能无意中操作到父级检出(parent checkout),而非当前仓库工作树。
- 区分安全的只读操作(例如
gh pr view)与有风险的写入操作(例如gh pr edit、gh api),以及 Bashgit *命令中的类似困境。 - 不正确的工具调用方式,例如直接使用
python / python3而不是项目特定的运行命令(例如uv run),或者一次性使用npx / pnpx来执行本应作为项目脚本的工具。 - AI 代理在之前的交互中反复遗忘“不要这样做”的指示,导致重复的警告。
根本问题在于人类的疲劳;每天数百次地进行一致的“行/不行”判断会耗尽注意力,从而使权限提示作为安全机制的效果大打折扣。ccgate 通过自动化这些一致性决策,将人类的注意力保留给真正关键或模棱两可的情况。
ccgate 作为 AI 编码工具的 PermissionRequest 钩子运行。在 AI 工具执行命令之前,它会调用 ccgate。工作流程如下:
- AI 工具(Claude Code / Codex CLI)触发 PermissionRequest 钩子,通过标准输入(stdin)发送 HookInput JSON。
- ccgate 从
~/.claude/ccgate.jsonnet或~/.codex/ccgate.jsonnet等配置文件中加载配置规则。 - 它会构建上下文,包括 Git 仓库、文件路径以及最近的交互记录(仅适用于 Claude)。
- ccgate 调用 Claude Haiku API,并期望获得结构化输出。
- 最后,它通过标准输出(stdout)返回 ‘允许’、‘拒绝’ 或 ‘转交用户’,以此指导 AI 工具的下一步行动。
这种方法通过基于规则和 LLM 驱动的权限管理,使 AI 编码代理变得更安全、更高效。