Claude Code永久无审批模式:Windows、Linux、macOS配置与避坑
Claude Code永久无审批模式:Windows、Linux、macOS配置与避坑
Claude Code永久无审批模式:Windows、Linux、macOS配置与避坑
想让 Claude Code 每次启动都不再反复确认权限,核心只需两项全局配置:
permissions.defaultMode和skipDangerousModePermissionPrompt。这篇文章分别给出 Windows、Linux、macOS 的操作命令,并说明:目录已存在时为什么命令没有提示、已有配置怎么合并、配置后如何确认真的生效。
1. 先说结论
Claude Code 的无审批模式叫:
bypassPermissions
把下面配置写入用户全局配置文件后,之后直接启动:
claude
就会默认进入无审批模式。
{
"permissions": {
"defaultMode": "bypassPermissions"
},
"skipDangerousModePermissionPrompt": true
}
注意两个位置:
defaultMode必须在permissions里面;skipDangerousModePermissionPrompt在 JSON 顶层。
写错位置时,Claude Code 通常不会按预期进入无审批模式。
2. 这个模式到底做了什么
bypassPermissions 会跳过绝大多数工具确认,包括:
- 修改文件;
- 执行终端命令;
- 修改 Git、
.claude、.vscode等受保护目录中的内容。
它适合自己的本地开发环境、虚拟机或容器。不要在生产服务器、重要数据目录、陌生项目里直接长期使用。
如果只是希望自动改代码,但仍保留一部分保护,可以把模式改成:
{
"permissions": {
"defaultMode": "acceptEdits"
}
}
3. 配置文件在哪
| 系统 | 全局配置文件 |
|---|---|
| Linux | ~/.claude/settings.json |
| macOS | ~/.claude/settings.json |
| Windows | %USERPROFILE%\.claude\settings.json |
这里的 ~ 表示当前用户的主目录。例如 Linux 用户名是 zhang,那么 ~/.claude/settings.json 实际就是:
/home/zhang/.claude/settings.json
4. Linux 和 macOS:目录不存在才创建
Linux、macOS、WSL 的命令基本一致。
先执行下面这段,它会明确告诉你目录是否已经存在:
if [ -d "$HOME/.claude" ]; then
echo "目录已存在:$HOME/.claude"
else
mkdir -p "$HOME/.claude"
echo "目录已创建:$HOME/.claude"
fi

为什么很多教程只写 mkdir -p ~/.claude,执行后却没有提示?
这是正常现象。
mkdir -p "$HOME/.claude"
这条命令的逻辑是:
- 目录不存在:创建
.claude目录; - 目录已经存在:什么也不改,也不报错;
- 命令成功时:通常不输出任何内容。
其中 -p 的意思是“需要时创建父目录,并且目录已存在也算成功”。
所以,没有提示不代表失败。想确认命令是否成功,可以立刻执行:
ls -ld "$HOME/.claude"
如果能看到目录信息,说明目录已经就绪,如下图
5. Linux / macOS:编辑全局配置
5.1 先备份已有配置
只有文件已经存在时,才备份:
if [ -f "$HOME/.claude/settings.json" ]; then
cp "$HOME/.claude/settings.json" "$HOME/.claude/settings.json.bak"
echo "已备份为:$HOME/.claude/settings.json.bak"
else
echo "没有旧配置文件,下一步会新建 settings.json"
fi

5.2 打开配置文件
使用 nano:
nano "$HOME/.claude/settings.json"
或者使用 vim:
vim "$HOME/.claude/settings.json"
如果这是一个新文件,可以直接写入:
{
"permissions": {
"defaultMode": "bypassPermissions"
},
"skipDangerousModePermissionPrompt": true
}
nano 的保存方式:
Ctrl + O → 回车 → Ctrl + X
vim 的保存方式:
ESC → 切换英文输入法 → :wq
5.3 已有 settings.json 时,不能直接覆盖
如果你原来已经有其它配置,不要把整个文件替换掉,只需要合并字段。
例如原来是:
{
"theme": "dark-ansi",
"permissions": {
"allow": [
"Bash(git status)"
]
}
}
改成:
{
"theme": "dark-ansi",
"permissions": {
"allow": [
"Bash(git status)"
],
"defaultMode": "bypassPermissions"
},
"skipDangerousModePermissionPrompt": true
}
不要写出两个 permissions,JSON 同一层级的重复键会导致配置混乱。
6. Windows:PowerShell 配置方法
建议使用 PowerShell。打开 PowerShell 后依次执行下面命令。
6.1 检查并创建目录
$claudeDir = Join-Path $HOME ".claude"
if (Test-Path -LiteralPath $claudeDir -PathType Container) {
Write-Host "目录已存在:$claudeDir"
} else {
New-Item -ItemType Directory -Path $claudeDir | Out-Null
Write-Host "目录已创建:$claudeDir"
}

6.2 备份已有配置
$settings = Join-Path $claudeDir "settings.json"
if (Test-Path -LiteralPath $settings -PathType Leaf) {
Copy-Item -LiteralPath $settings -Destination "$settings.bak" -Force
Write-Host "已备份为:$settings.bak"
} else {
Write-Host "没有旧配置文件,下一步会新建 settings.json"
}
6.3 用记事本编辑
notepad $settings
填入或合并下面的配置:
{
"permissions": {
"defaultMode": "bypassPermissions"
},
"skipDangerousModePermissionPrompt": true
}
保存后关闭记事本即可。
7. Windows:CMD 配置方法
如果你习惯命令提示符(CMD),也可以这样做。
7.1 检查并创建目录
if exist "%USERPROFILE%\.claude\" (
echo 目录已存在:%USERPROFILE%\.claude
) else (
mkdir "%USERPROFILE%\.claude"
echo 目录已创建:%USERPROFILE%\.claude
)
7.2 备份并编辑配置
if exist "%USERPROFILE%\.claude\settings.json" copy "%USERPROFILE%\.claude\settings.json" "%USERPROFILE%\.claude\settings.json.bak"
notepad "%USERPROFILE%\.claude\settings.json"
然后填入第 1 节的 JSON 配置。
8. 重启 Claude Code 并验证
配置文件保存后,退出当前 Claude Code 会话,再重新启动:
claude
进入后执行:
/permissions
查看当前权限模式和配置来源。如果模式显示为 bypassPermissions,说明配置已生效。
也可以在底部状态栏查看当前模式。
9. 配置后仍然无效?按这个顺序检查
9.1 defaultMode 写错层级
错误写法:
{
"defaultMode": "bypassPermissions"
}
正确写法:
{
"permissions": {
"defaultMode": "bypassPermissions"
}
}
9.2 JSON 格式错误
JSON 不支持:
- 中文引号;
//注释;- 最后一项后面多一个逗号;
- 同一对象里重复写同名字段。
Linux / macOS 可这样检查:
python3 -m json.tool "$HOME/.claude/settings.json" > /dev/null && echo "JSON 格式正确"
Windows PowerShell 可这样检查:
Get-Content $settings -Raw | ConvertFrom-Json | Out-Null
Write-Host "JSON 格式正确"
9.3 项目配置覆盖了全局配置
当前项目目录下如果存在:
.claude/settings.json
.claude/settings.local.json
可能会覆盖全局配置。最直接的排查方式仍然是进入 Claude Code 后执行:
/permissions
它会列出规则和配置来源。
9.4 Linux / macOS 不要用 root 或 sudo 启动
Claude Code 在 Linux 和 macOS 中,使用 root 或 sudo 时会拒绝进入危险跳过权限模式。这是正常保护机制。
不要这样启动:
sudo claude --dangerously-skip-permissions
正常使用普通用户启动即可:
claude
10. 临时开启与永久开启的区别
只想让本次启动跳过确认:
claude --permission-mode bypassPermissions
或者:
claude --dangerously-skip-permissions
想让以后每次直接 claude 都生效,就使用本文的 settings.json 全局配置方案。
11. 最后提醒
bypassPermissions 省掉的是确认步骤,不代表命令本身没有风险。我的习惯是:
- 重要项目先提交 Git;
- 不在生产服务器使用;
- 不确定删除、覆盖类命令时,先看命令再执行;
- 多项目或多人共用环境,优先考虑
acceptEdits。
Claude Code 的配置和权限模式可能随版本更新,建议以官方文档为准:
更多推荐




所有评论(0)