如何在使用claude code的时候,不需要一直点yes

发布时间:2026/6/10 3:49:28

如何在使用claude code的时候,不需要一直点yes 如何在使用claude code的时候不需要一直点yes前言方法一推荐方法给这个项目单独建本地配置这样以后还会问哪些 yes方法二用 WSL2 或 Docker / Dev Container 做隔离方案 AWSL2更适合 Windows 用户方案 BDocker / Dev Container更适合想开 bypass 的人WSL2 和 Docker 怎么选前言我们的方法不是给全盘权限而是只在自己的当前文件夹下的方法。如果是下面的方法claude--dangerously-skip-permissions或者claude--permission-mode bypassPermissions这会跳过几乎所有权限确认。Claude Code 官方明确说bypassPermissions会跳过所有权限提示只建议在容器或虚拟机这类隔离环境里用。比如WSL2、Docker dev container或VM。方法一推荐方法给这个项目单独建本地配置先退出 Claude然后在 PowerShell 里执行cd D:\coding\你的文件夹New-Item-ItemType Directory-Force.claude|Out-Nullnotepad.claude\settings.local.json把下面内容粘进去保存{$schema:https://json.schemastore.org/claude-code-settings.json,permissions:{allow:[WebSearch,WebFetch,PowerShell(Get-ChildItem *),PowerShell(Get-Content *),PowerShell(Select-String *),PowerShell(Select-Object *),PowerShell(Format-Table *),PowerShell(git status*),PowerShell(git diff*),PowerShell(git log*),PowerShell(git branch*),PowerShell(npm run *),PowerShell(npm test*),PowerShell(pnpm *),PowerShell(yarn *),PowerShell(node *),Bash(git status*),Bash(git diff*),Bash(git log*),Bash(git branch*),Bash(npm run *),Bash(npm test*),Bash(pnpm *),Bash(yarn *),Bash(node *),PowerShell(\\(Get-Content \D:\\\\coding\\\\serenity.skill\\\\A股人工智能公司调研.md\ | Measure-Object -Line\\).Lines)],deny:[Read(//**/.env),Read(//**/.env.*),Read(//**/secrets/**),Read(//**/*credential*),Edit(//**/.env),Edit(//**/.env.*),Edit(//**/secrets/**),Edit(//**/*credential*),PowerShell(git push*),PowerShell(Remove-Item *),PowerShell(Invoke-WebRequest *),PowerShell(curl *),PowerShell(wget *),Bash(git push*),Bash(rm -rf *),Bash(curl *),Bash(wget *)],defaultMode:acceptEdits}}然后重新启动cd D:\coding\你的文件夹 claude进去后检查/status你应该能看到类似Setting sources: User settings, Project local settingsClaude Code 官方文档说明.claude/settings.local.json是“只对当前仓库、只对你本人”的本地项目配置并且创建时会被 git 忽略/status可以看到当前加载了哪些 settings source。([Claude Code][2])这样以后还会问哪些 yes会少很多但也不是完全不问。它会自动做修改当前项目里的文件 创建/移动/复制常见文件 运行你允许的 git status / git diff / npm run / pnpm / node 等命令但这些仍然可能问你或直接拒绝访问项目外文件 读取 .env / secrets / credential git push Remove-Item rm -rf 未在 allow 里的 shell 命令也就是说日常改代码不用一直点 yes但也没有给它全盘权限。方法二用 WSL2 或 Docker / Dev Container 做隔离如果你确实想更少的点yes或者干脆不点yes在项目里赋予claude完全的权限claude--dangerously-skip-permissions或者claude--permission-mode bypassPermissions那可以创建一个隔离环境里比如WSL2 Docker dev container VM 虚拟机核心思路是不是让 Claude 在你的整台电脑里自由行动 而是让它只在一个隔离出来的开发环境里行动。这样即使 Claude 执行了比较激进的命令影响范围也主要限制在这个 Linux 环境、容器环境或者当前挂载进去的项目目录里。方案 AWSL2更适合 Windows 用户WSL2 可以理解成 Windows 里的一个 Linux 开发环境。你可以把项目放在 WSL2 里面然后在 WSL2 终端里安装和运行 Claude Code。先在 PowerShell 里安装 WSL2wsl--install-d Ubuntu安装完成后重启电脑打开 Ubuntu更新一下环境sudoaptupdatesudoaptupgrade-y然后在 WSL2 里安装 Claude Codecurl-fsSLhttps://claude.ai/install.sh|bash接着把项目放到 WSL2 自己的 Linux 目录里例如mkdir-p~/codingcd~/codinggitclone 你的仓库地址cd你的项目 claude更推荐这种路径~/coding/your-project不太推荐一开始就直接操作/mnt/c/Users/你的用户名/Desktop /mnt/d/coding/你的项目因为/mnt/c、/mnt/d是 Windows 磁盘挂载进 WSL2 的路径Claude 如果在这些目录里运行实际还是能影响到你的 Windows 文件。如果只是普通日常开发可以在 WSL2 项目里继续使用前面的方法一也就是.claude/settings.local.json。如果你已经确认这个 WSL 环境只放当前项目没有重要私密文件再考虑claude --permission-mode bypassPermissions或者claude --dangerously-skip-permissions方案 BDocker / Dev Container更适合想开 bypass 的人Docker / Dev Container 的隔离更明确Claude、node、npm、git、测试命令都在容器里执行而不是直接在宿主机里执行。如果你用 VS Code可以在项目根目录新建.devcontainer/devcontainer.json写入一个最小配置{image:mcr.microsoft.com/devcontainers/base:ubuntu,features:{ghcr.io/anthropics/devcontainer-features/claude-code:1.0:{}}}然后在 VS Code 里执行Dev Containers: Reopen in Container或者Dev Containers: Rebuild Container进入容器后在 VS Code 的集成终端里运行claude第一次会要求登录。登录完成后Claude Code 就是在容器里运行了。这时再使用claude --dangerously-skip-permissions会比直接在宿主机上安全很多因为它能直接影响的主要是容器环境和你挂载进去的项目目录。但注意这不等于绝对安全。不要把这些东西挂进容器~/.ssh ~/.aws ~/.azure ~/.config/gcloud .env secrets credential 文件 整个 C 盘或 D 盘更好的做法是只挂载当前项目目录 只给短期 token 不要给宿主机密钥 不要把私人文件夹挂进去WSL2 和 Docker 怎么选简单说只是 Windows 上舒服地开发选 WSL2 想更适合开启 bypassPermissions选 Docker / Dev Container 想最大隔离选 VM 虚拟机我个人建议日常开发方法一项目级 settings.local.json Windows 用户方法一 WSL2 想开 dangerously-skip-permissionsDocker / Dev Container 或 VM不要把--dangerously-skip-permissions当成日常默认选项。它适合的是“已经隔离好的环境”不是你的主力系统。

相关新闻