Claude Code
如何允许 Claude Code 运行所有命令:权限模式、allow 规则与跳过权限
如何让 Claude Code 不再每次都请求权限?
按 Shift+Tab 循环切换权限模式,使用 claude --permission-mode <mode> 启动,或在 .claude/settings.json 中用 permissions.allow 规则(如 Bash(npm run *))预先批准特定命令。Auto 模式在运行时没有常规提示,由分类器审查操作;--dangerously-skip-permissions 仅适用于容器或虚拟机。
本文译自英文版指南。命令、配置键与代码均保持原样;如有出入,以英文版为准。 阅读英文原版 → · 其他语言: 日本語 · 한국어 · Español · Português (Brasil)
设置一变,第一时间知道
当这些工具的设置、参数或权限规则发生变化时,每周一封邮件通知你(英文),内容均对照官方文档核实。
权限模式
- default(标签为 Manual):每个工具首次使用时提示。
- acceptEdits:自动接受工作目录中的文件编辑和常见文件系统命令,如 mkdir、touch、mv 和 cp。
- plan:探索并运行只读命令,但不编辑源文件。
- auto:没有常规提示;后台分类器会根据你的请求检查 shell 命令和网络请求。从 v2.1.283 起,它是内置的初始模式。
- dontAsk:拒绝所有需要提示的操作,预先批准的工具除外。
- bypassPermissions:跳过提示,包括对 .git 和 .claude 等受保护路径的写入。仅用于隔离的容器或虚拟机。
切换模式
- 会话期间:按 Shift+Tab 循环切换 default → acceptEdits → plan(以及其他已启用的模式)。
- 单次会话:claude --permission-mode plan(或 default、acceptEdits、auto、dontAsk)。
- 设为默认:在 ~/.claude/settings.json 中设置 permissions.defaultMode。
改为预先批准精确命令
Allow 规则比跳过所有检查更安全。把 * 放在子命令之后:Bash(git log *) 只允许 git log,而 Bash(git *) 允许所有 git 命令。Deny 规则始终优先。
.claude/settings.json
{
"permissions": {
"allow": ["Bash(npm run *)", "Bash(git commit *)"],
"deny": ["Bash(git push *)"]
}
}在 Claude Code 中使用 /permissions 查看所有规则及其来源设置文件。
完全无人值守运行
仅在容器或虚拟机内,以非 root 用户运行
claude -p "run the test suite and fix failures" --dangerously-skip-permissions
允许的工具:--allowedTools 和 permissions.allow
--allowedTools(也可写作 --allowed-tools)列出在单次会话中无需提示即可运行的工具。它使用与 settings.json 中 permissions.allow 相同的规则语法。--disallowedTools 添加 deny 规则,只写工具名(如 Edit)会将该工具从会话中移除。
单次会话,预先批准 git 读取命令
claude --allowedTools "Bash(git log *)" "Bash(git diff *)" "Read"
- 规则检查顺序为先 deny,再 ask,最后 allow。即使更窄的 allow 规则也匹配,像 Bash(aws *) 这样宽泛的 deny 仍会阻止调用。
- Bash 规则能理解 shell 运算符:Bash(safe-cmd *) 不会批准 safe-cmd && other-cmd。每个子命令都必须单独匹配。
- Bash(ls:*) 等同于 Bash(ls *)。:* 形式只能用在模式末尾。
- MCP 工具:mcp__puppeteer 允许 puppeteer 服务器的所有工具,mcp__puppeteer__puppeteer_navigate 允许单个工具。Allow glob 需要字面的服务器名,因此 mcp__* 的 allow 规则会被跳过并给出警告。
- 网络抓取:WebFetch(domain:example.com) 只匹配 example.com。要覆盖子域名,请添加 WebFetch(domain:*.example.com)。
- 要限制哪些内置工具可用,请使用 --tools "Bash,Edit,Read",而不是 allow 列表。
来源
以下为本指南核对过的官方文档(英文)。 英文版核对日期: 2026-10-18
更多中文指南
- 在任意 AI 编程 agent 中允许所有命令:Cursor、Claude Code、Codex、Gemini CLI、Copilot CLI 及另外 7 款(2026)
- 各 AI 编程 agent 的规则与指令文件:.cursor/rules、CLAUDE.md、AGENTS.md、GEMINI.md、Copilot instructions 等(2026)
- 各 AI 编程 agent 的设置文件位置:Claude Code、Cursor、Codex、Gemini CLI、OpenCode、Qwen Code、Amp 和 Factory Droid(2026)
- 为任意 AI 编程 agent 添加 MCP server:Claude Code、Cursor、Codex、Gemini CLI、VS Code 及另外 8 款(2026)
- 各 AI 编程 agent 中的 hook:Claude Code、Cursor、Gemini CLI、GitHub Copilot、Kiro 和 Factory Droid(2026)
- 各 AI 编程 agent 中的 Agent Skills(SKILL.md):Claude Code、Codex、Cline、Amp 和 OpenHands(2026)
- Claude Code 权限:allow、ask 和 deny 规则、规则语法与允许的工具
- 如何允许 Cursor 运行所有命令:Run Everything、allowlist 与 sandbox
- Cursor 规则设置:项目、用户和 Team Rules、.mdc frontmatter、globs 与 AGENTS.md
- 向 Claude Code 添加 MCP 服务器(claude mcp add、.mcp.json、作用域)
- Subagent 与自定义 agent 对比:Claude Code vs Codex vs Cursor vs Gemini CLI vs GitHub Copilot(2026)