跳转到主要内容

直接答案

在 Claude Code 中运行 /permissions 可以查看和管理权限规则;需要持久保存时,把 allowaskdeny 写入 settings.json。Hooks 也写在同一类设置文件中,用于在工具调用前后执行格式化、测试或安全检查。权限规则的优先级是 deny → ask → allow,所以 deny 规则不会被 allow 覆盖。 这两项控制的是 Claude Code 在你电脑上的工具行为。接入 BetterToken 只会改变模型 API 的 Base URL、API Key 和路由,不会绕过本地权限或替你运行 hooks。

Permissions 和 hooks 应该怎么分工?

选择正确的配置范围

Permissions、hooks 和环境变量应写入 settings.json,不要写进 ~/.claude.json。后者主要保存 Claude Code 的应用状态和界面信息。

配置一组最小权限规则

1

先用 /permissions 查看现有规则

在 Claude Code 中输入:
界面会显示 allow、ask、deny 规则及其来源文件。先确认是否已有团队或管理员规则,再决定添加到用户级还是项目级配置。
2

添加精细规则

下面的项目级示例允许常见测试和 lint,要求每次 git push 前确认,并禁止读取 .env 文件:
请把命令改成项目中真实存在的脚本。不要为了减少弹窗而直接启用 bypassPermissions;官方只建议在隔离容器或虚拟机中使用它。
3

重新打开 /permissions 验证

保存文件后再次运行 /permissions,确认每条规则显示在预期的来源下。然后分别触发一条 allow、ask 和 deny 规则,检查行为是否符合预期。

添加一个可复制的格式化 Hook

下面的例子会在 Claude Code 使用 EditWrite 修改文件后运行项目的格式化脚本:
如果文件中已经有 permissions,请把 hooks 合并到同一个顶层 JSON 对象中,不要保存成单独的 .claude/hooks.json。先在终端中手动确认 npm run format 能正常完成,再交给 hook 自动执行。
Command hook 会以当前系统用户的权限执行命令。只运行你已经检查过的脚本,不要在 hook 中输出 API Key、token、.env 内容或其他敏感信息。

如何确认 Hook 已生效?

  1. 在 Claude Code 中输入 /hooks
  2. 找到 PostToolUse,确认其中有 Edit|Writenpm run format
  3. 让 Claude 修改一个测试文件。
  4. 检查 Hook 输出和文件格式,确认只执行一次且没有报错。
Claude Code 通常会自动读取设置文件的修改。如果配置没有刷新,退出当前会话并重新启动 Claude Code。

常见错误与解决方法

适用于 BetterToken 的边界

BetterToken 负责 Claude Code 的模型 API 接入、模型路由、余额和用量记录。下面这些行为仍由本地 Claude Code 控制:
  • 能否读取或修改某个文件
  • 是否需要确认 Bash 命令
  • Hook 何时运行、运行什么脚本
  • Sandbox、MCP 和项目规则
如果问题是 401、Base URL 或模型映射,请查看 Claude Code 接入 BetterToken 指南。如果问题是命令确认或自动化脚本,请继续在本页的 permissions 与 hooks 中排查。

相关文档

References