我把 Claude Code 深度集成进日常内核开发之后,陆续有人问「这套怎么装」。这篇手记把从零到能用的全过程 记下来——nvm → npm → ccswitch → Claude Code → cc-connect → lark-cli → Docker,MacOS 和 Ubuntu 两套命令都在这,还有个不踩就卡死的坑。

🛠️ 总览:装什么、按什么顺序

/ section

一共七样,顺序很重要:先装 nvm(管 Node 版本)和 npm(包管理器), 再装 ccswitch(切大模型),然后才是 Claude Code 本体、 cc-connect(接飞书机器人)、lark-cli(飞书文档/IM 操作)。最后 Docker 可选。

★ ⚠️ 一个必须先知道的坑:为什么会被要求 login

KEY 相关环境变量还没配,先装 ccswitch 就是为了配它

现象 装 @latest 版 Claude Code 后,第一次跑可能被要求登录(login)。
原因 login 是因为 KEY 相关的环境变量(ANTHROPIC_API_KEY、ANTHROPIC_BASE_URL 等)还没配置——这些变量写在 settings.json 的 env 块里,没配就没有 key 可用,Claude 就要求登录。
对策 先装 ccswitch 就是为了方便设置这些环境变量:ccswitch use 配置名 会把对应 profile 的 key / base URL / model 写进 settings.json 的 env 块,配好之后就不会再触发 login。
切模型时 每次 ccswitch use 切换模型,就是重新写一遍 settings.json 的 env 块。切完若还被要求登录,先确认环境变量配好没有,或检查该 key 是否被记过 reject。

1. MacOS 安装(Ubuntu 大同小异)

/ column
bash
# 1.1 安装 nvm
brew install nvm

# 1.2 配置环境变量(~/.zshrc)
export NVM_DIR="$HOME/.nvm"
[ -s "/usr/local/opt/nvm/nvm.sh" ] && \. "/usr/local/opt/nvm/nvm.sh"  # This loads nvm
[ -s "/usr/local/opt/nvm/etc/bash_completion.d/nvm" ] && \. "/usr/local/opt/nvm/etc/bash_completion.d/nvm"

# 1.3 应用配置
source ~/.zshrc

# 2 安装 npm
nvm install --lts

# 3 安装 cc-switch(GUI 桌面版,配置见下图)
# https://cc-switch.cc/tutorials

# 4 安装 Claude
npm config set registry https://registry.npmmirror.com  # 换国内源
npm config set allow-scripts=@anthropic-ai/claude-code --location=user
npm install -g @anthropic-ai/claude-code@latest

# 5 安装及配置 cc-connect
npm install -g cc-connect

# 6 安装 lark-cli
npx @larksuite/cli@latest install

2. nvm / npm 安装(Ubuntu 实录)

/ column
bash
# nvm 安装(Node 版本管理工具)
curl -k -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
# => Downloading nvm from git to '/home/jiaqi/.nvm'
# => Cloning into '/home/jiaqi/.nvm'...
source ~/.bashrc
bash
# npm 安装
nvm install --lts
# Installing latest LTS version.
# Now using node v24.19.0 (npm v11.17.0)

3. ccswitch 安装及配置

/ column
bash
curl -sSL https://raw.githubusercontent.com/huangdijia/ccswitch/main/install.sh | bash
# [SUCCESS] Binary installed to /home/jiaqi/.local/bin/ccswitch

echo 'export PATH="/home/jiaqi/.local/bin:$PATH"' >> ~/.bashrc && source ~/.bashrc
ccswitch --version
bash
ccswitch init   # ~/.ccswitch 下创建必要的文件夹结构
ccswitch add <配置文件名称>   # 例如:ccswitch add deepseek-claude
ccswitch use <你的配置名>     # 切换到该配置

Mac 用户也可以装 cc-switch 的 GUI 桌面版(cc-switch.cc/tutorials),在图形界面里填 key 和 base URL—— 和上面命令行的 add 是同一件事的两种做法,界面如下。

cc-switch GUI 配置界面
bash
# 配置一个接 DeepSeek 的 profile 实录
ccswitch init
# ✓ default configuration file created successfully: ~/.ccswitch/ccs.json

ccswitch add deepseek-claude
# Enter ANTHROPIC_API_KEY (or press Enter to skip): sk-***
# Enter ANTHROPIC_BASE_URL [https://api.anthropic.com]: https://api.deepseek.com/anthropic
# Enter ANTHROPIC_MODEL [opus]:
# ✓ Profile 'deepseek-claude' added successfully!

ccswitch use deepseek-claude
# ✓ Successfully switched to profile: deepseek-claude

4. 安装 Claude Code

/ column

官方文档见 code.claude.com/docs/zh-CN/setup。三种装法,前两种国内都有坑,推荐第三种 npm。

bash
# 1. 官方(国内受限)
curl -fsSL https://claude.ai/install.sh | bash

# 2. 国内社区脚本(装了 ccswitch 就建议别用,会环境变量冲突)
curl -fsSL https://www.qiaoqiaoyun.com/claude/install-claude-code.sh | bash

# 3. npm 方式(推荐)
npm config set registry https://registry.npmmirror.com  # 换国内源
npm config set allow-scripts=@anthropic-ai/claude-code --location=user
npm install -g @anthropic-ai/claude-code@latest

配大模型之前,先清理掉 .claude.json 里被记成 reject 的 key——它在「是否信任此 API key」弹窗里 按 key 末 20 位缓存 approve/reject。某把 key 一旦被记成 reject,Claude 就拒绝用它、转而要求登录; 清掉后重进 Claude 再选一次 yes,才重新接受这把 key。

清理 .claude.json 里被拒绝的 key 缓存

重新进 Claude 后,遇到询问就选 YES。

运行 Claude 后选择 YES

YES 之后就是国产大模型在跑了,登录这关跳过。

YES 后即为国产大模型,跳过登录

5. 安装 cc-connect(接飞书)

/ column
bash
npm install -g cc-connect
# 若提示 allow-scripts 未覆盖,补一句:
npm install -g --allow-scripts=cc-connect cc-connect
bash
# 生成默认配置
cc-connect config example > config.toml

接飞书:执行 cc-connect feishu setup 会生成一个授权链接,打开后选择 「创建新 Bot」或「选择已有 Bot」,完成后把拿到的 app_id / app_secret 填进下面的 config.toml。

text
# config.toml 关键字段
language = "zh"

[log]
level = "info"

[display]
mode = "quiet"  # 飞书聊天卡片不显示思考过程

[[projects]]
name = "项目名称"
admin_from = "启动 cc-connect 服务后,发 /whoami 获取 User ID"

[projects.agent]
type = "claudecode"

[projects.agent.options]
work_dir = "cc-connect 的工作路径"
mode = "default"

[[projects.platforms]]
type = "feishu"

[projects.platforms.options]
app_id = "飞书 Bot 的 APP ID(feishu setup 拿到)"
app_secret = "飞书 Bot 的 APP Secret(feishu setup 拿到)"
allow_from = "启动 cc-connect 服务后,发 /whoami 获取 User ID"
bash
# 装 daemon 服务并启动
cc-connect daemon install
cc-connect daemon restart  # 更新配置后跑一下

daemon 起来后,在飞书里找到刚创建的 Bot 发一句就能聊——配置完成后的聊天界面长这样。

配置完成后,飞书 Bot 的聊天界面

6. 安装 lark-cli(飞书 skill)

/ column
bash
# 手动安装
npx @larksuite/cli@latest install

# 装完配凭证并授权
lark-cli config init --new --brand feishu --lang zh
lark-cli auth login --recommend
lark-cli auth status --verify

auth login 会生成一个授权链接,打开并同意后回到终端,再用 auth status --verify 验证登录态和 scope 是否齐。

7. Docker(可选)

/ column
bash
curl -fsSL https://get.docker.com | sudo bash -s docker --mirror Aliyun

# 加入 docker 组,之后不用每次 sudo
sudo usermod -aG docker $USER
newgrp docker
docker run --rm hello-world

这套下来,Claude Code 就能换着国产大模型跑、又能挂进飞书当机器人。装的时候卡在哪一步,回来翻这篇。

站长手记 · 教程