本文记录我在 Linux 环境下使用 Claude Code 的实践,涵盖 ClawGod 运行时补丁 的安装原理、cc-switch-cli 多供应商 API 管理,以及 Linux 虚拟机无限制模式 的开启方法。
一、ClawGod:让 Claude Code 进入"上帝模式"
1.1 它是什么?
ClawGod 不是第三方 Claude Code 客户端,而是一个运行时补丁(Runtime Patch),直接作用在官方 Claude Code 之上。
它的核心设计哲学是:兼容任何版本。当 Claude Code 官方升级后,ClawGod 会在下次启动时自动从新版本中重新抽取并重新打补丁,无需手动维护。
1.2 安装原理:用户目录 Hook 机制
ClawGod 的安装过程本质上是一次 "中间人注入" ,在用户目录下构建一套独立的运行时环境,劫持官方 claude 命令的执行链路。
安装流程拆解
第一步:定位官方二进制
ClawGod 首先通过 which claude 检测用户系统中已安装的 Claude Code 位置,支持 npm/pnpm/yarn 全局安装或官方独立二进制安装。
第二步:提取嵌入的 cli.js 源码
自 Claude Code v2.1.113 起,npm 包不再直接分发 cli.js,而是作为一个轻量加载器,将请求分发给平台特定的 Bun standalone 二进制文件。这些二进制文件位于:
~/.local/share/claude/versions/ # macOS/Linux
ClawGod 从这些 Bun 二进制文件中提取嵌入的 cli.js 源码(从 __BUN 段中解析 Mach-O / ELF / PE 格式),以及嵌入的原生模块(audio-capture、image-processor、computer-use-*、url-handler)。
第三步:在用户目录构建独立运行时
所有提取的文件被放置到用户目录下的 ~/.clawgod/ 中:
~/.clawgod/
├── cli.original.js # 提取出的原始 cli.js(备份)
├── cli.js # 打过补丁的版本
├── patch.js # 补丁器脚本
├── vendor/ # 提取的原生模块
│ ├── audio-capture.node
│ ├── image-processor.node
│ ├── computer-use-*.node
│ └── url-handler.node
├── features.json # 功能开关配置
├── provider.json # API 供应商配置
└── .source-version # 记录补丁来源版本
第四步:应用 23 个正则补丁
ClawGod 使用版本无关的正则表达式 对 cli.js 进行 20+ 处修改,这些补丁不依赖具体版本号,因此跨版本兼容:
| 补丁类别 | 具体修改 | 效果 |
|---|---|---|
| 功能解锁 | USER_TYPE → ant |
开启内部用户模式,解锁 24+ 隐藏命令(/share、/teleport、/issue、/bughunter 等) |
| GrowthBook 环境/配置覆盖 | 可通过 features.json 覆盖任意功能开关 |
|
| Agent Teams 强制启用 | 多 Agent 协作无需额外权限 | |
| Computer Use 订阅绕过 | macOS 屏幕控制无需 Max/Pro 订阅 | |
| Auto-mode 解锁 | 第三方 API 用户也能使用自动模式 | |
| Ultraplan / Ultrareview | 多 Agent 规划与自动化 Bug 狩猎 | |
| 限制移除 | CYBER_RISK_INSTRUCTION |
移除安全测试拒绝(渗透测试、C2、漏洞利用不再被拒绝) |
| URL 生成限制 | 移除"绝不生成或猜测 URL"的指令 | |
| Cautious Actions | 移除破坏性操作前的强制确认 | |
| Login Notice | 移除未登录启动提醒 | |
| 视觉标识 | Logo/品牌色 → 绿色 | 一眼识别是否已打补丁 |
| 消息过滤器 | 显示对非 Anthropic 用户隐藏的内容 | |
| 可靠性 | 1h Prompt Cache | 强制 1 小时缓存 TTL(原为 5 分钟) |
| 第三方 Cache 修复 | 非 Anthropic 域名时自动关闭 x-anthropic-billing-header,避免第三方代理的 prompt-cache 命中率归零 |
|
| Auto Re-patch | 检测到官方二进制升级后自动重新打补丁 |
第五步:创建启动器劫持原命令
安装脚本会:
- 将原始
claude命令重命名为claude.orig - 创建新的
claude启动器(shell 脚本 / cmd 文件) - 启动器调用
bun运行打过补丁的cli.js,并指向提取的原生模块
bash
# 安装后的命令映射
claude # → 运行 ClawGod 补丁版(绿色 Logo)
claude.orig # → 运行官方原版(橙色 Logo)
clawgod # → 别名,同 claude
自动重补丁机制
.source-version 文件记录当前补丁对应的官方版本号。每次启动 claude 时,启动器会比对 ~/.local/share/claude/versions/ 中的最新版本与 .source-version:
- 版本一致 → 直接运行现有补丁
- 版本更新 → 自动重新提取、打补丁、更新启动器
这意味着用户执行 claude update 时,ClawGod 已将该命令 patch 为走自己的 installer,从 npm 拉取最新 Anthropic 发布、重新提取、重新打补丁,一条龙完成。
1.3 安装命令
bash
# macOS / Linux(一键安装)
curl -fsSL https://github.com/0Chencc/clawgod/releases/latest/download/install.sh | bash
# Windows(PowerShell)
irm https://github.com/0Chencc/clawgod/releases/latest/download/install.ps1 | iex
前置依赖:Node.js ≥ 18、ripgrep、Bun(缺失时自动安装)、已安装的官方 Claude Code。
1.4 配置第三方 API 供应商
ClawGod 在用户目录下创建 ~/.clawgod/provider.json,用于配置非 Anthropic 官方的 API 端点:
json
{
"apiKey": "sk-ant-api03-...",
"baseURL": "https://api.anthropic.com",
"model": "claude-sonnet-4-20250514",
"smallModel": "claude-haiku-...",
"timeoutMs": 3000000
}
- 设置
apiKey后,ClawGod 会将其注入为ANTHROPIC_API_KEY,并隔离于~/.claude/settings.json - 非 Anthropic 的
baseURL还会自动填充ANTHROPIC_AUTH_TOKEN用于网关认证 apiKey留空则走 OAuth 路径,运行claude auth login一次即可
1.5 卸载
bash
# macOS / Linux
curl -fsSL https://github.com/0Chencc/clawgod/releases/latest/download/install.sh | bash -s -- --uninstall
hash -r
# Windows
irm https://github.com/0Chencc/clawgod/releases/latest/download/install.ps1 -OutFile install.ps1; .\\install.ps1 -Uninstall
卸载会将 claude.orig 还原为 claude,并移除 clawgod 别名。
二、API 供应商管理:cc-switch-cli
当使用第三方 API 聚合平台(如 AIHubMix、小麦 API、硅基流动等)时,频繁切换 API Key 和端点非常麻烦。cc-switch-cli 是一个命令行工具,专门用于管理多个 CLI 工具的供应商配置。
2.1 核心概念
供应商(Provider) = 供应商名称 + API Base URL + API Key + 模型名称。切换供应商的本质是自动将这套配置写入对应 CLI 工具的配置文件。
2.2 安装与使用
bash
# 快速安装(macOS / Linux)
curl -fsSL https://github.com/SaladDay/cc-switch-cli/releases/latest/download/install.sh | bash
# 交互式模式(推荐)
cc-switch
# 命令行模式
cc-switch provider list # 列出供应商
cc-switch provider switch <id> # 切换供应商
cc-switch provider export <id> # 导出配置
cc-switch provider stream-check <id> # 检查供应商流健康度
cc-switch env tools # 检查本地 CLI 工具
cc-switch mcp sync # 同步 MCP 服务器
# 指定应用
cc-switch --app claude provider list # 管理 Claude 供应商
cc-switch --app codex mcp sync # 同步 Codex MCP
cc-switch --app gemini prompts list # 列出 Gemini 提示词
2.3 支持的 CLI 工具
cc-switch 不仅管理 Claude Code,还支持:
- Codex(OpenAI)
- Gemini CLI(Google)
- OpenCode(开源多 Provider CLI)
- OpenClaw(兼容 OpenAI 接口的自定义工具)
三、Linux 虚拟机无限制模式
在 Linux 虚拟机或 Docker 容器中,以 root 用户运行 Claude Code 时,官方会出于安全考虑阻止 --dangerously-skip-permissions 的使用。此时需要配合环境变量:
bash
# 在 root 用户下开启无限制模式(适用于 Docker/VM)
IS_SANDBOX=1 claude --dangerously-skip-permissions
IS_SANDBOX=1 向 Claude Code 声明当前处于沙盒环境,从而允许 root 用户使用危险模式。
3.1 危险模式的安全边界
--dangerously-skip-permissions 是 Anthropic 官方提供的"Safe YOLO Mode",让 Claude 绕过所有权限提示,完全自主执行直到任务完成。
适用场景:
- 重复性低风险的 Lint 错误修复
- 标准代码脚手架生成
- 自动化重构
- CI/CD 流水线中的自动化执行
- 沙盒和容器环境(强烈推荐)
安全实践:
- 仅在隔离环境运行:Docker 容器、VM、CI Runner
- 避免生产环境:不要在有生产凭证、客户数据的机器上使用
- 网络隔离:容器内限制外网访问,防止数据外泄
3.2 Docker 隔离方案示例
yaml
# docker-compose.yml
services:
agent:
image: claude-code:latest
environment:
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
- IS_SANDBOX=1
volumes:
- ${WORKSPACE}:/workspace
working_dir: /workspace
network_mode: none # 网络隔离
command: claude --dangerously-skip-permissions
四、快速参考
| 场景 | 命令 |
|---|---|
| 安装 ClawGod | `curl -fsSL https://github.com/0Chencc/clawgod/releases/latest/download/install.sh |
| 运行补丁版 | claude(绿色 Logo) |
| 运行原版 | claude.orig(橙色 Logo) |
| 更新(自动重补丁) | claude update |
| 卸载 ClawGod | bash ~/.clawgod/install.sh --uninstall |
| 添加 API 供应商 | cc-switch provider add(交互式) |
| 切换供应商 | cc-switch provider switch <id> |
| VM root 无限制模式 | IS_SANDBOX=1 claude --dangerously-skip-permissions |
五、参考资源
- ClawGod GitHub 仓库 --- 运行时补丁的官方文档
- cc-switch-cli --- 多供应商 API 管理工具
- Claude Code 官方文档 --- 官方 CLI 文档