该标志有两个爆炸半径,而几乎所有关于它的文章都只涵盖其中一个。 --dangerously-skip-permissions 会停止 Claude Code 在编辑文件或运行命令前询问你。显而易见的暴露面是你的文件系统。没人写到的那个暴露面是你的账单:一个不会停下来询问的 Agent 也不会停止花钱,而 Agent 失败往往表现为循环。
两者都可以限制,而且都不需要你停止使用该标志。下面先说明它实际做什么,再介绍每项约需一分钟的三种限制措施。
它的作用
Claude Code 通常会在执行重要操作前暂停并等待批准。该标志会在整个会话中关闭这一暂停。它不会赋予模型新的能力,也不会改变模型,只会移除计划与执行之间的审查步骤。
因此,诚实的表述不是“这个标志危险吗”,而是这个会话能够接触到什么。同一条命令在临时检出目录中很普通,在环境中带有生产凭据的仓库中则确实鲁莽。标志是不变的;暴露面由你控制。
限制措施 1 — 给它自己的检出目录
这是成本最低的一项,通常也已经足够。git worktree 是位于独立分支上的完整工作目录,因此未经审查的编辑会落在你可以丢弃的地方,而不是覆盖你的工作。
# Containment that costs one command: give the agent its own checkout.
# A worktree is a real working directory on its own branch, so a runaway
# edit is contained to a branch you can delete rather than to your repo.
git worktree add -b agent/task-123 ../repo-agent-123
cd ../repo-agent-123
claude --dangerously-skip-permissions
# When it is done, review the branch like any other, then:
git worktree remove ../repo-agent-123审查仍然会发生——只是变成在一个分支上进行一次,而不是在提示中进行四十次。与批准单个文件写入相比,这通常更有效地利用你的注意力;这才是使用该标志的真正理由,而不是缺乏耐心。
限制措施 2 — 给它自己的凭据
该 shell 环境中的任何内容都可以被 Agent 访问。解决办法不是更加小心,而是少放一些内容进去。为 Agent 创建专用凭据,而不是重复使用你到处使用的凭据,这样停止 Agent 只需撤销一次,而不是轮换你拥有的一切。
# A key per agent, not a key per human. Revoking one key stops one
# agent; revoking the key you use everywhere stops your whole day.
export ANTHROPIC_BASE_URL=https://api.kunavo.com
export ANTHROPIC_AUTH_TOKEN=sk-kn-... # created for this agent only
export ANTHROPIC_MODEL=claude-sonnet-5
export ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-5-5
export ANTHROPIC_DEFAULT_SONNET_MODEL=claude-sonnet-5
export ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-4-5
claude --dangerously-skip-permissions保留模型相关行:Claude Code 内置的默认模型及其 opus 别名都会解析为最新的 Opus;如果 Kunavo 尚未提供该模型,无人值守的代理会在第一次请求时收到 404。sonnet 别名请求 Sonnet 5.5,而 Kunavo 不提供该模型,因此如果没有 ANTHROPIC_DEFAULT_SONNET_MODEL 行,任何设置为 model: sonnet、/model sonnet 的子代理以及 opusplan 的执行阶段都会以同样方式返回 404。opus 别名固定为 Opus 5.5(claude-opus-5-5),需要 Claude Code v2.1.280 或更高版本;如果你的版本较旧,请先运行 claude update。在 Kunavo,密钥可以单独撤销——每次经过身份验证的请求都会检查撤销状态,因此被撤销的密钥会立即停止工作,而不是等到账单周期结束。密钥还可以拥有独立的月度消费限额和 IP 允许列表,这使“一名代理使用一个密钥”从整洁的管理方式变成真正的边界:你可以限制并固定代理使用的密钥,而不影响你手动使用的密钥。创建第二个密钥不收取任何费用。设置详情请参阅获取 Claude Code API 密钥。
限制措施 3 — 限制支出,而不只是限制文件系统
这是互联网其他内容都遗漏的维度。想象无人值守的 Agent 失败而不是正常工作时会做什么:它会重试。每次重试都是一次产生了计费却没有结果的往返,而编码 Agent 的上下文很大,因此往返并不便宜。二十步的任务很正常;卡住的循环不正常。
如何限制支出完全取决于你的计费方式。订阅会通过使用周期限制支出——这是一个真正的上限,只是它表现为停止而不是警告。绑定银行卡则完全没有天然上限。在 Kunavo 上有两层限制,第二层值得在无人值守运行前设置:计费会从预付余额中扣除,因此请求永远无法支出超过余额持有的金额;密钥还可以设置自己的月度消费限额。限额会在请求运行前检查,因此不会发生超支,而不是事后才发现;超过限额后,请求会被拒绝,并显示指明密钥而不是钱包的消息;限额会在下一个公历月开始时重置。为 Agent 持有的密钥设置一个限额,最坏情况就不再是“余额中的全部金额”,而是一个由你选择的数字。
关于一次运行应花费多少的计算——这样你可以区分正常会话和循环——请参阅Claude Code 定价页面;订阅方面的同一问题请参阅Claude Pro 和 Max 限额。
何时使用以及何时不要使用
| 情况 | 合理吗? |
|---|---|
| 一次性工作树、范围限定的密钥、shell 中没有生产凭据 | 是——这就是该标志的用途 |
| 可以丢弃的容器或 VM | 是,而且更好 |
| 一个你会作为单个差异进行审查的长期无人值守运行 | 可以,但要为此设置足够的余额 |
| 包含未提交工作的主检出目录 | 不可以——先提交或暂存,然后使用工作树 |
| 持有云凭据或生产凭据的 shell | 否 |
| 可以直接访问生产环境的机器 | 否 |
该表中的模式是:每个“否”都与可达范围有关,没有一个与标志本身有关。修复可达范围后,标志就不再是需要关注的变量——这正是重点。
常见问题
Claude Code 中的 --dangerously-skip-permissions 会做什么?
它会停止 Claude Code 在每个操作前请求批准,因此文件编辑和 shell 命令会在没有提示的情况下运行。这个名称是准确的,而不是夸张:权限提示是模型制定的计划与该计划执行之间唯一的阻隔,而该标志会在整个会话中移除这一阻隔。它不会改变模型能够做什么,只会改变每一步发生前是否有人查看。
使用 --dangerously-skip-permissions 安全吗?
它的安全程度取决于会话能够接触到什么。该标志不会增强模型能力,而是移除审查步骤,因此真正的问题是未经审查的错误能够触及什么:Agent 从哪个目录开始,环境中有哪些凭据,以及机器是否拥有生产环境访问权限。在一次性检出目录中配合范围受限的密钥使用时,未经审查的错误只是一个可以删除的分支。在主仓库中并导出了生产凭据时,情况就不是这样了。同一个标志,暴露面却截然不同。
如何在不弹出权限提示的情况下安全运行 Claude Code?
按以下顺序限制它能够接触的三类内容。给它自己的检出目录——单独分支上的 git worktree 只需一条命令,就能把糟糕的编辑变成一个可删除的分支。给它单独的凭据,而不是你到处使用的那把密钥,这样撤销它只会停止一个 Agent,而不会影响你一天的全部工作。并且不要把它没有理由看到的凭据导出到它运行的 shell 中,因为环境中的一切都可被访问。这些措施都不需要容器,不过如果你有容器,使用容器会更好。
自主 Agent 能否造成没有上限的 API 账单?
这是大多数关于该标志的讨论都会忽略的维度。一个不会停下来询问的 Agent 也不会停止花钱,而 Agent 循环会朝昂贵的方向失控——重试循环意味着许多计费往返,却没有任何成果。在 Kunavo 上有两件事可以限制它。计费会从预付余额中扣除,而不是从银行卡扣款,因此余额构成硬上限。密钥还可以设置自己的月度消费限额,在请求运行前检查:超过限额后,请求会被拒绝,并显示指明密钥而不是钱包的消息;限额会在下一个公历月开始时重置。为交给 Agent 的密钥设置一个限额,最坏情况就是一个由你选择的数字。
跳过权限与权限模式有什么区别?
Claude Code 的权限模式允许你预先决定哪些操作类别需要批准,这样对于高风险操作保留人工参与,而对于日常操作则不必介入。该标志是同一理念的直接版本,即将所有内容都设置为允许。对于无人值守运行,该标志通常正是你需要的;对于交互式工作,权限模式通常更合适,因为使用该标志移除的摩擦,原本正是在捕捉真实错误。
通过网关使用时,该标志的工作方式相同吗?
相同——该标志完全在客户端运行。它控制 Claude Code 是否在执行前询问你,与哪个端点提供模型无关。将 ANTHROPIC_BASE_URL 指向网关会改变请求发送到哪里以及费用是多少,但不会改变 Agent 在本地获准执行什么。端点唯一会改变的是上面的第二个维度:如何限制支出。