开启 Claude code 的危险模式,也可以放心去睡了

1,496 阅读2分钟

默认情况下,Claude code 在使用系统工具、创建新文件、删除文件等操作的时候,会弹出对话框,让用户确认。

测试一个简单的写文件需求:

在项目根目录创建一个 hello.md 文件,里面写上 Hello, Claude code.

在执行大多数任务的时候,需要频繁的确认,非常浪费时间和影响效率。

Claude code 官方提供了 --dangerously-skip-permissions 参数,可以跳过所有的权限检查,能极大减少任务中断。

但是这个参数是有风险的,可能会对系统造成损害。想象一下,一觉睡醒发现代码库没了,还算好的,毕竟可以从远程仓库恢复;要是本地重要文件被删,想想都可怕。

那有没有什么办法呢,毕竟官方提供了这个参数,还特别说明了要在沙箱里用?

方法有很多,以 Mac OS 系统为例,至少可以用:

  • chroot
  • sandbox
  • App Sandbox
  • Docker

经过一番调研,我决定用 Docker 来实现,配置简单、方便。

0x01、环境准备

我使用的是 Apple M3,本地需要提前安装好:

  • Docker
  • git

0x02、构建 claude-code 镜像

# 从官方下载 claude-code 代码仓库(使用官方的文件构建更放心)
$ https://github.com/anthropics/claude-code
$ cd claude-code/.devcontainer
$ docker build -f ./Dockerfile -t claude-code:latest .
# 检查镜像
$ docker images
REPOSITORY    TAG         IMAGE ID       CREATED          SIZE
claude-code   latest      babf9abdffb0   1 minutes ago      1.4GB

0x03、配置 claude 命令

这里用自定义函数的方式来做,系统用的是 zsh,所以自定义函数需要写在 ~/.zshrc 文件中。 如果你用的是 bash,可以写在 ~/.bashrc 中。

~/.zshrc 中添加如下定义:

# 使用 MiniMax M2 模型,注意替换 <MINIMAX_API_KEY>
# https://platform.minimax.io/docs/guides/text-ai-coding-tools#configure-minimax-api
function open.claudecode.minimax() {
	export ANTHROPIC_BASE_URL=https://api.minimax.io/anthropic
	export ANTHROPIC_AUTH_TOKEN=<MINIMAX_API_KEY>
	export API_TIMEOUT_MS=3000000
	export CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1
	export ANTHROPIC_MODEL="MiniMax-M2"
	export ANTHROPIC_SMALL_FAST_MODEL="MiniMax-M2"
	export ANTHROPIC_DEFAULT_SONNET_MODEL="MiniMax-M2"
	export ANTHROPIC_DEFAULT_OPUS_MODEL="MiniMax-M2"
	export ANTHROPIC_DEFAULT_HAIKU_MODEL="MiniMax-M2"

	docker run -it --rm \
	--network host \
	-v "${PWD}":/workspace \
	-w /workspace \
	$(env | grep -E '^(ANTHROPIC_|CLAUDE_|OPENAI_)' | sed 's/^/-e /') \
	claude-code:latest \
	claude --dangerously-skip-permissions "$@"
}

0x04、测试

打开新的命令行,让刚才定义的函数生效,然后执行:

$ open.claudecode.minimax

因为每次执行都会开一个新的环境,所以需要先选择主题:

然后是安全提示:

然后是 Bypass Permissions mode 的警告:

确认之后,进入到操作界面,默认已经是 bypass permissions on了。

再次测试写文件的需求:

执行成功。

如果不想每次都选择主题、确认安全信息,可以使用非交互模式,如:

$ open.claudecode.minimax -p "在项目根目录创建一个 hello.md 文件,里面写上 Hello, Claude code."
已成功创建 hello.md 文件。