Claude Code 日常使用

Claude Code 日常使用

权限模式

6 分钟阅读

选择权限模式

控制 Claude 在编辑文件或运行命令前是否询问。在 CLI 中使用 Shift+Tab 循环切换模式,或在 VS Code、Desktop 和 claude.ai 中使用模式选择器。

当 Claude 想要编辑文件、运行 shell 命令或发起网络请求时,它会暂停并请求你批准该操作。权限模式控制这种暂停发生的频率。你选择的模式塑造了会话的流程:手动模式让你逐个审查操作,而更宽松的模式让 Claude 在更长时间的不间断工作中运行,完成后向你报告。对于敏感工作选择更多监督,或当你信任方向时选择更少中断。

可用模式

每种模式在便利性和监督之间做出不同的权衡。下表展示了 Claude 在每个模式下无需权限提示即可执行的操作。

模式无需询问即可执行的操作最适合
default仅读取。在 CLI 和 IDE 扩展中标记为 手动入门、敏感工作
acceptEdits读取、文件编辑和常见文件系统命令(mkdirtouchmvcp 等)审查你正在迭代的代码
plan仅读取在修改前探索代码库
auto所有操作,并带有后台安全检查长时间任务、减少提示疲劳
dontAsk仅预批准的工具锁定的 CI 和脚本
bypassPermissions所有操作仅限隔离的容器和虚拟机

审查每个操作的模式在 CLI、claude --help 以及 VS Code 和 JetBrains 扩展中名为 手动。其配置值为 default,这是钩子和 SDK 集成使用的值。CLI 接受 manual 作为你输入值时的别名,例如 claude --permission-mode manual"defaultMode": "manual"。手动标签和 manual 别名需要 Claude Code v2.1.200 或更高版本。

在每个除 bypassPermissions 以外的模式中,对受保护路径的写入永远不会被自动批准,防止仓库状态和 Claude 自身配置被意外损坏。

模式设定基线。在之上叠加权限规则以预先批准或阻止特定工具。拒绝规则和显式询问规则适用于每个模式,包括 bypassPermissions。允许规则在该模式下无效,因为其他所有操作已被批准。

切换权限模式

你可以在会话中、启动时或作为持久默认值切换模式。模式通过这些控制设置,而非通过在聊天中询问 Claude。选择你的界面以查看如何更改。

会话期间:按 Shift+TabdefaultacceptEditsplan 之间循环。当前模式显示在状态栏中。手动模式(即该循环中的 default)显示灰色 ⏸ manual mode on 徽章。在 v2.1.203 之前,状态栏在手动模式下不显示徽章。

并非每个模式都在默认循环中:

  • auto:当你的账户满足自动模式要求时出现在循环中;切换到它时无需确认提示即可切换模式
  • bypassPermissions:在你使用 --permission-mode bypassPermissions--dangerously-skip-permissions--allow-dangerously-skip-permissions 启动后出现;--allow- 变体将模式添加到循环中而不激活它
  • dontAsk:永远不会出现在循环中;使用 --permission-mode dontAsk 设置

启用的可选模式插在 plan 之后,bypassPermissions 在前,auto 在后。如果你两者都启用了,你会在前往 auto 的途中经过 bypassPermissions

启动时:将模式作为标志传递。

claude --permission-mode plan

作为默认值:在设置中设置 defaultMode

{
  "permissions": {
    "defaultMode": "acceptEdits"
  }
}

相同的 --permission-mode 标志与 -p 一起适用于非交互式运行

使用 acceptEdits 模式自动批准文件编辑

acceptEdits 模式允许 Claude 在你的工作目录中创建和编辑文件而无需提示。当此模式激活时,状态栏显示 ⏵⏵ accept edits on

除了文件编辑外,acceptEdits 模式还会自动批准常见的文件系统 Bash 命令:mkdirtouchrmrmdirmvcpsed。当这些命令带有安全环境变量前缀(如 LANG=CNO_COLOR=1)或进程包装器(如 timeoutnicenohup)时,也会被自动批准。与文件编辑一样,自动批准仅适用于工作目录或 additionalDirectories 内的路径。该范围外的路径、对受保护路径的写入以及所有其他 Bash 命令仍会提示。

当启用 PowerShell 工具时,acceptEdits 模式还会自动批准作用域内路径上的 Set-ContentAdd-ContentClear-ContentRemove-Item 及其常见别名。相同的作用域和受保护路径规则适用。

当你希望在编辑器中或通过 git diff 事后审查更改,而非逐行批准每次编辑时,请使用 acceptEdits

从手动模式按一次 Shift+Tab 进入该模式,或直接从 CLI 启动:

claude --permission-mode acceptEdits

使用计划模式在编辑前分析

计划模式告诉 Claude 研究并提议更改而不实际执行。Claude 读取文件、运行 shell 命令进行探索并撰写计划,但不编辑你的源代码。权限提示仍然像手动模式中一样适用。

通过按 Shift+Tab 或在单个提示前加上 /plan 前缀进入计划模式。你也可以从 CLI 以计划模式启动:

claude --permission-mode plan

再次按 Shift+Tab 可在不批准计划的情况下退出计划模式。

审查和批准计划

当计划准备好时,Claude 会展示它并询问如何继续。从该提示中你可以:

  • 批准并以自动模式启动
  • 批准并接受编辑
  • 批准并手动审查每次编辑
  • 根据反馈继续规划
  • 使用 Ultraplan 进行基于浏览器的审查来细化

批准计划会退出计划模式,并将会话切换到每个批准选项所描述的权限模式,因此 Claude 开始编辑。要再次计划,请使用 Shift+Tab 循环回计划模式,或在下一个提示前加上 /plan

Ctrl+G 在默认文本编辑器中打开提议的计划并直接编辑,然后 Claude 再继续。当启用 showClearContextOnPlanAccept 时,每个批准选项还会提供在继续前清除规划上下文的选项。

接受计划还会根据计划内容自动命名会话,除非你已使用 --name/rename 设置了名称。

将计划模式设为默认值

要将计划模式设为项目的默认值,请在 .claude/settings.json 中设置 defaultMode

{
  "permissions": {
    "defaultMode": "plan"
  }
}

使用自动模式消除权限提示

自动模式需要 Claude Code v2.1.83 或更高版本。

自动模式让 Claude 无需常规权限提示即可执行。一个独立的分类器模型在操作运行前审查它们,阻止任何超出你请求范围、针对未识别基础设施或似乎受 Claude 读取的敌对内容驱动的操作。显式询问规则仍会强制提示。

自动模式还会促使 Claude 在不停止澄清问题的情况下继续工作,尽管当提示或技能明确依赖它时,Claude 仍会询问。若要在保留权限提示的同时获得更强的自主行为,请设置主动输出样式

自动模式是一个研究预览功能。它减少了权限提示,但不保证安全。请将它用于你信任大致方向的任务,而非作为敏感操作的审查替代。

仅当你的账户满足以下所有要求时,自动模式才可用:

  • 计划:所有计划。
  • 所有者:在团队和企业版上,所有者必须先在 Claude Code 管理设置中启用它,用户才能打开。管理员也可以通过在托管设置中设置 permissions.disableAutoMode"disable" 来锁定关闭。
  • 模型:在 Anthropic API 上,Claude Opus 4.6 或更高版本,或 Sonnet 4.6 或更高版本。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和已登录的 Claude apps gateway 会话上,仅支持 Claude Sonnet 5、Opus 4.7 和 Opus 4.8。旧模型,包括 Sonnet 4.5、Opus 4.5、Haiku 和 claude-3 模型,在任何提供商上都不受支持。
  • 提供商:默认在 Anthropic API 上可用。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和已登录的 Claude apps gateway 会话上,自动模式处于关闭状态,直到你设置 CLAUDE_CODE_ENABLE_AUTO_MODE

如果 Claude Code 报告自动模式不可用,说明这些要求之一未满足;这不是临时故障。单独一条消息提到模型并说自动模式"无法确定操作的安全性"是分类器的临时故障;请参阅错误参考

如果你在设置中设置了 defaultMode: "auto" 但会话以 default 模式启动且没有错误,该设置可能位于 .claude/settings.json.claude/settings.local.json 中。Claude Code v2.1.142 及更高版本会忽略来自这些文件的 auto,因此仓库无法自行授予自动模式。请将其移至 ~/.claude/settings.json

在 Bedrock、Agent Platform 或 Foundry 上启用自动模式

Amazon BedrockGoogle Cloud 的 Agent PlatformMicrosoft Foundry 和已登录的 Claude apps gateway 会话上,直到 CLAUDE_CODE_ENABLE_AUTO_MODE 设置为 1 之前,自动模式不会出现在 Shift+Tab 循环中。该变量在 Claude Code v2.1.158 及更高版本中有效。在这些提供商上仅支持 Claude Sonnet 5、Opus 4.7 和 Opus 4.8。

要为单个开发者启用,请将变量添加到 ~/.claude/settings.jsonenv 块中:

{
  "env": {
    "CLAUDE_CODE_ENABLE_AUTO_MODE": "1"
  }
}

要为组织启用,请将相同的 env 块添加到托管设置

设置变量后,自动模式会出现在每个会话的 Shift+Tab 循环中。要将其设为默认起始模式,还要在用户或托管设置中设置 "permissions": {"defaultMode": "auto"}。在这些提供商上,除非同时设置了 CLAUDE_CODE_ENABLE_AUTO_MODE,否则 Claude Code 会忽略 defaultMode: "auto"

要阻止开发者启用自动模式,请在托管设置中将 disableAutoMode 设置为 "disable"。这会覆盖启用变量。

如果你通过配置为 ANTHROPIC_BASE_URLLLM gateway 连接,自动模式可能无需启用变量即可使用,因为网关通过 Anthropic API 路由请求。这不适用于已登录的 Claude apps gateway 会话,它属于自身的提供商类别,需要启用变量。无论哪种配置,disableAutoMode 设置都以相同方式适用。

分类器默认阻止的内容

分类器信任你的工作目录以及会话开始时为其配置的远程仓库。在会话期间使用 git remote addgit remote set-url 添加或重新指向的远程不受信任,其他所有内容都被视为外部内容,直到你配置可信基础设施。在 v2.1.200 之前,会话期间添加的远程也会被信任。

默认阻止

  • 下载并执行代码,如 curl | bash
  • 向外部端点发送敏感数据
  • 生产部署和迁移
  • 云存储上的大规模删除
  • 授予 IAM 或仓库权限
  • 修改共享基础设施
  • 不可逆地销毁会话前已存在的文件
  • 强制推送
  • 当推送携带敏感内容(如密钥或个人/受托数据)、携带与你要求相比被隐藏或错误描述的内容、携带从仓库外导入或首次读取的内容,或绕过你要求的拉取请求、审查或检查时,推送到仓库的默认分支。单纯的推送到默认分支本身不会被阻止,清除标记的推送需要指明被标记的内容或绕过的审查,而不仅仅是推送。分类器只是一层保障:权限拒绝规则适用于每个模式,可以彻底阻止推送到默认分支,且远程自身的分支保护仍然适用。在 v2.1.203 之前,任何直接推送到默认分支都会被阻止
  • git reset --hardgit checkout -- .git restore .git clean -fdgit stash dropgit stash clear,分类器假定这些操作会丢弃未提交的更改
  • 当 HEAD 处的提交不是在本会话中创建时执行 git commit --amend
  • 从 v2.1.198 开始,当 HEAD 处的提交已被推送时执行 git commit --amend。仅修改消息不会被阻止:在本会话中由 Claude 创建的提交上使用 --amend -m 且没有新暂存内容
  • terraform destroypulumi destroycdk destroyterragrunt destroy,以及应用会销毁资源的计划

Claude Code v2.1.195 及更高版本默认阻止更多类别。其中几个依赖于环境条目,如敏感远程目标和受保护的 IaC 范围,你可以将其缩小到具体名称。

  • 写入密钥管理器,或更改 DNS 记录或 TLS 证书
  • 合并未经人工批准的拉取请求,批准 Claude 自己的拉取请求,或禁用 CI 检查
  • 发布本身是自动化命令的评论,如 atlantis apply 或机器人的 /deploy/merge
  • 切换、调整或删除生产功能标志
  • 将基础设施更改应用到受保护的 IaC 范围,或排空和移除集群节点
  • 写入共享计算集群的操作超出你指定的资源,如捕获其他用户作业的 label selector 或 --all
  • 创建在每个节点上运行或拦截集群流量的 Kubernetes 资源,如 DaemonSets 和 admission webhooks
  • 进入敏感远程目标的交互式 shell 或端口转发
  • 打开隧道或反向 shell,使本地服务可从公共互联网访问
  • 将实时凭证或 token 打印到转录或文件中
  • 访问在你环境中列为敏感数据位置的位置,或从中复制数据。从 v2.1.198 开始,这也阻止将数据从其中发送到该条目排除的受众
  • 将包安装绕过内部包注册表到公共注册表。从 v2.1.198 开始,这也适用于当你在对话中告诉 Claude 存在内部注册表或镜像时,不仅限于在环境中列出的情况
  • 运行带有解除安全保护标志的命令,如 --insecure
  • 启动无需人工批准或沙盒即可运行的自主代理循环,如使用 --dangerously-skip-permissions--no-sandbox 启动的循环。从 v2.1.198 开始,这也涵盖运行隔离和每次操作批准被禁用的第三方代理或评估工具,如使用 --yes-always 启动的 runner
  • 可能发送页面内容、cookie 或凭证 off-origin 的 Claude in Chrome 浏览器操作

Claude Code v2.1.198 及更高版本还默认阻止以下内容:

  • 通过通配符、glob 或年龄过滤器而非特定命名路径删除 /tmp$TMPDIR 或其他共享临时或缓存目录中的文件
  • 在发送、上传、发布或写入其他人或共享系统的内容中包含敏感细节,当你自己的消息未授权这些细节给该接收方时。PR 和 issue 正文、提交消息和评论在仓库位于信任边界之外或为公共时,算作此类出站内容,包括你自己组织的公共仓库;内部文件路径、代码名称、实时 API 响应数据(如电子邮件或账户标识符)以及基础设施标识符算作敏感细节。PR、issue 和提交消息的范围界定需要 Claude Code v2.1.200 或更高版本。PR 或 issue 正文中的实时个人数据(如电子邮件地址、账户或组织标识符或使用指标)需要你指明这些细节和接收方,无论仓库的可见性或信任边界如何。该检查需要 Claude Code v2.1.203 或更高版本
  • 向 Claude Code 自己的 tmux 窗格发送按键以驱动其自身界面,分类器将其视为 Claude 更改自己的权限或监督

Claude Code v2.1.200 及更高版本还默认阻止以下内容:

  • 注释掉、删除或强制通过守卫安全行为的测试或断言,如认证、访问控制、输入验证或沙盒
  • 删除或拆除 Claude 未在会话中创建的有状态资源,当没有更具体的删除规则适用且你未命名该资源时
  • 将 API base URL、代理端点、webhook 接收方或注册表镜像重新指向不适合该任务的第三方主机,包括在示例文件如 .env.example
  • 使用 git remote set-urlgit remote add 更改推送目标,除非你命名了新的远程
  • 将密钥或个人或受托数据推送到已知为公共的仓库,或推送不属于该仓库自身工作的机密材料。dotfiles 仓库自身的主题内容是个人或受托数据的唯一例外;私有仓库的内容到达任何公共表面同样被阻止;两者都需要 Claude Code v2.1.203 或更高版本。在 v2.1.203 之前,个人数据与机密材料归为一组,仅当它不是该仓库自身工作的一部分时才被阻止。当仓库的可见性未确定时,分类器不会仅因此阻止;它会根据其他规则判断内容
  • 针对不同的仓库或组织打开拉取请求、使用 gh repo fork 进行 fork,或推送到第三方仓库,除非你命名了该外部目标

Claude Code v2.1.203 及更高版本还默认阻止以下内容:

  • 来自敏感本地存储的内容,或来自文件名、路径或类型标记其为敏感的文件的内容,进入提交、推送、PR 或 issue 文本、gist 或 paste,或包发布,除非你同时命名了源和目标。会话转录和对话日志、凭证和配置点文件夹(如 SSH 密钥、云凭证、浏览器配置文件和 shell 历史记录)以及用户数据导出都算作此类,且仓库为私有并不能清除它

Claude Code v2.1.205 及更高版本还默认阻止以下内容:

  • 写入 Claude Code 会话转录、~/.claude/projects/ 下或你配置的配置目录下的 .jsonl 历史文件,无论是直接还是通过 shell 命令。该规则还涵盖 Claude Code 为自身检查附加到每个转录条目的元数据行。转录是 Claude Code 写入的会话状态,不是工作文件,篡改的条目会在你恢复会话后到达每次后续检查,因此自动模式将这些写入作为纵深防御阻止。读取转录不会被阻止
  • 递归强制删除,如目标为 shell 变量的 rm -rf "$VAR"Remove-Item -Recurse -Force $dir,或以其为根的 glob,且该变量在分类器看到的对话中任何地方都未被赋值。该值仅来自早期命令输出,分类器从未收到,因此分类器无法根据其他删除规则验证删除目标。分类器按设计读取对话而非命令输出,因此它会阻止调用而非猜测目标。当你命名了正在删除的确切路径,或当 Claude 使用解析后的字面路径重新运行删除时,阻止会清除。分类器可以解析目标的删除不受影响

默认允许

  • 工作目录中的本地文件操作
  • 安装锁定文件或清单中声明的依赖
  • 读取 .env 并将凭证发送到其匹配的 API
  • 只读 HTTP 请求
  • 推送到你开始的分支或 Claude 创建的分支

Claude Code v2.1.195 及更高版本还默认允许以下内容:

  • 删除 Claude 在同一会话中早些时候创建的精确作业
  • 作为任务的一部分读取、审查或编写安全相关代码、配置和威胁模型
  • 同一多代理会话中协同工作的代理之间的消息
  • 发送数据到你列在 environment 中的可信域、桶和服务。这仅涵盖数据流,不包括对相同基础设施的破坏性操作或凭证操作
  • 导航到你命名的可信内部域、localhost 或 URL 的 Claude in Chrome

沙盒网络访问请求通过分类器路由,而非默认允许。从 v2.1.198 开始,分类器复用其对网络主机和端点的裁决,而非在每次连接时重新运行:

  • 允许会复用直到新内容进入对话,此时该主机会再次检查
  • 在交互式 CLI 中,拒绝会在回合结束时丢弃
  • 非交互式模式和 Agent SDK 会话中没有回合边界,因此拒绝会复用至运行结束
  • 更改权限模式或规则会丢弃所有缓存的裁决

运行 claude auto-mode defaults 查看完整的规则列表。如果常规操作被阻止,管理员可以通过 autoMode.environment 设置添加可信仓库、桶和服务:请参阅配置自动模式

你在对话中陈述的边界

分类器将你在对话中陈述的边界视为阻止信号。如果你告诉 Claude"不要推送"或"等我审查后再部署",分类器会阻止匹配的操作,即使默认规则会允许它们。边界会一直保持到你稍后消息中解除它。Claude 自己判断条件已满足并不能解除它。

边界不会作为规则存储。分类器在每次检查时从转录中重新读取它们,因此如果上下文压缩移除了陈述边界的消息,边界可能会丢失。若要获得硬性保证,请添加拒绝规则

自动模式何时回退

每个被拒绝的操作都会显示通知,并出现在 /permissions 的 Recently denied 标签页下,你可以按 r 以手动批准重试。

如果分类器连续阻止一个操作 3 次或总共 20 次,自动模式会暂停,Claude Code 会恢复提示。批准被提示的操作会恢复自动模式。这些阈值不可配置。任何允许的操作都会重置连续计数器,而总计数器会在会话期间持续存在,仅在其自身限制触发回退时重置。

在带有 -p 标志的非交互式模式中,重复阻止会中止会话,因为没有用户可供提示。

重复阻止通常意味着分类器缺少关于你基础设施的上下文。使用 /feedback 报告误报,或让管理员配置可信基础设施

每个操作都经过固定的决策顺序。第一个匹配的步骤胜出:

  1. 匹配你的允许或拒绝规则的操作会立即解决,除了对受保护路径的写入,即使允许规则匹配也会路由到分类器
  2. 只读操作和工作目录中的文件编辑会自动批准,除了对受保护路径的写入
  3. 其他所有内容都进入分类器。从 v2.1.199 开始,标记为 _meta["anthropic/requiresUserInteraction"] 的 MCP 工具会跳过分类器并直接提示你,因此代表工具作者的同意步骤永远不会被自动批准
  4. 如果分类器阻止,Claude 会收到原因并尝试替代方案

进入自动模式时,授予任意代码执行的宽泛允许规则会被丢弃:

  • blanket Bash(*)PowerShell(*)
  • 通配符解释器如 Bash(python*)
  • 包管理器运行命令
  • Agent 允许规则

窄规则如 Bash(npm test) 会保留。离开自动模式时会恢复被丢弃的规则。

分类器看到用户消息、工具调用和你的 CLAUDE.md 内容。工具结果会被剥离,因此文件或网页中的敌对内容无法直接操纵它。一个单独的服务器端探针会在 Claude 读取之前扫描传入的工具结果并标记可疑内容。有关这些层如何协同工作的更多信息,请参阅自动模式发布公告工程深度解析

分类器在三个点检查子代理工作:

  1. 在子代理启动前,委托的任务描述会被评估,因此看起来危险的任务会在生成时被阻止。
  2. 子代理运行时,它的每个操作都会通过分类器,规则与父会话相同,且子代理前置元数据中的任何 permissionMode 都会被忽略。
  3. 子代理完成后,分类器会审查其完整的操作历史;如果该返回检查标记了问题,安全警告会附加到子代理的结果之前。

步骤 1 需要 Claude Code v2.1.178 或更高版本。早期版本在步骤 2 和 3 应用分类器,但在子代理启动前不会评估任务描述。

分类器在服务器配置的模型上运行,独立于你的 /model 选择,因此切换模型不会改变分类器的可用性。分类器调用计入你的 token 使用量。每次检查都会发送部分转录加上待处理的操作,在执行前增加一次往返。工作目录外的读取和编辑会跳过分类器,因此开销主要来自 shell 命令和网络操作。从 v2.1.198 开始,对同一主机和端口的沙盒网络裁决会被复用,而非每次连接都重新分类,因此重复连接到同一主机不会每次都增加检查。分类器默认阻止的内容描述了允许和拒绝持续多长时间。

使用 dontAsk 模式仅允许预批准的工具

dontAsk 模式会自动拒绝每个否则会提示的工具调用。当此模式激活时,状态栏显示 ⏵⏵ don't ask on。只有匹配你的 permissions.allow 规则和只读 Bash 命令的操作可以执行;显式ask 规则会被拒绝而非提示。从 v2.1.199 开始,标记为 _meta["anthropic/requiresUserInteraction"] 的 MCP 工具在该模式下也会被拒绝,即使允许规则匹配它,因为其批准卡片需要该模式永远不会收集的答案。这使该模式对于你精确定义 Claude 可以做什么的 CI 管道或受限环境完全非交互。Claude Code on the web 上的云端会话忽略 defaultMode: "dontAsk";详情请参阅绕过权限

在启动时通过标志设置:

claude --permission-mode dontAsk

使用 bypassPermissions 模式跳过所有检查

bypassPermissions 模式禁用权限提示和安全检查,因此工具调用会立即执行。从 v2.1.126 开始,这包括对受保护路径的写入,早期版本仍会提示。显式询问规则在此模式下仍会强制提示,且针对文件系统根目录或主目录的移除操作(如 rm -rf /rm -rf ~)仍会作为对模型错误的断路器而提示。从 v2.1.199 开始,标记为 _meta["anthropic/requiresUserInteraction"] 的 MCP 工具也会仍然提示。仅在你无法损坏主机系统的隔离环境(如容器、虚拟机或开发容器)中使用此模式。

你无法从未使用启用标志之一启动的会话进入 bypassPermissions;使用其中一个重新启动以启用它:

claude --permission-mode bypassPermissions

--dangerously-skip-permissions 标志等效。

在 Linux 和 macOS 上,当作为 root 或 sudo 运行时,Claude Code 拒绝以此模式启动:

--dangerously-skip-permissions cannot be used with root/sudo privileges for security reasons

在识别的沙盒内会自动跳过检查。要在容器中以非 root 用户自主运行,请使用开发容器配置。

Claude Code on the web 不遵循设置文件中的 defaultMode: "bypassPermissions""dontAsk",因此仓库的签入设置无法在绕过权限模式下启动云端会话。该设置被静默忽略,会话以模式下拉菜单中显示的模式启动。请参阅切换权限模式了解云端会话提供哪些模式。

bypassPermissions 不提供任何针对提示注入或意外操作的保护。对于带有更少权限提示的后台安全检查,请改用自动模式。管理员可以通过在托管设置中设置 permissions.disableBypassPermissionsMode"disable" 来阻止此模式。

受保护路径

对一小部分路径的写入在每个除 bypassPermissions 以外的模式中都不会被自动批准。这防止了仓库状态和 Claude 自身配置被意外损坏。

模式受保护路径的写入
defaultacceptEditsplan提示
auto路由到分类器
dontAsk拒绝
bypassPermissions允许

设置文件中的 permissions.allow 规则不会预先批准受保护路径的写入。安全检查在 Claude Code 评估来自设置的允许规则之前运行,因此 ~/.claude/settings.json.claude/settings.json 中的 Edit(.claude/**) 等条目不会改变上表中每个模式的结果。在提示模式下,对 .claude/ 的写入提示会提供 是,并允许 Claude 在本会话中编辑自己的设置,这会批准该会话中后续对 .claude/ 的写入而无需再次提示。

受保护目录:

  • .git
  • .config/git
  • .vscode
  • .idea
  • .husky
  • .cargo
  • .devcontainer
  • .yarn
  • .mvn
  • .claude,除了 .claude/worktrees(Claude 存储自己的 git 工作树的地方)

受保护文件:

  • .gitconfig.gitmodules
  • .bashrc.bash_profile.bash_login.bash_aliases.bash_logout.zshrc.zprofile.zshenv.zlogin.zlogout.profile.envrc
  • .npmrc.yarnrc.yarnrc.yml.pnp.cjs.pnp.loader.mjs.pnpmfile.cjsbunfig.toml.bunfig.toml
  • .bazelrc.bazelversion.bazeliskrc
  • .pre-commit-config.yamllefthook.ymllefthook.yaml.lefthook.yml.lefthook.yaml
  • gradle-wrapper.propertiesmaven-wrapper.properties
  • .devcontainer.json
  • .ripgreprcpyrightconfig.json
  • .mcp.json.claude.json

另请参阅

  • 权限:允许、询问和拒绝规则;托管策略
  • 配置自动模式:告诉分类器你的组织信任哪些基础设施
  • 钩子:通过 PreToolUsePermissionRequest 钩子自定义权限逻辑
  • Ultraplan:在 Claude Code on the web 会话中运行计划模式并进行基于浏览器的审查
  • 安全:保护措施和最佳实践
  • 沙盒:Bash 命令的文件系统和网络隔离
  • 非交互式模式:使用 -p 标志运行 Claude Code

博极客AI是专业人工智能学习平台,提供通俗易懂的AI入门教程、大模型应用、实战项目与行业动态,全站内容免费阅览,零基础也能轻松学AI,适配学生、职场新人及技术爱好者。

© 版权所有 2026 博极客AI,保留一切权利。 | 桂ICP备2026007205号 | 桂公网安备45010502001169号