以前圈子里主要用的 cursor,后面edu也掉了,白嫖也困难了,再加上 claude code 中转也比较多,还有国内 glm、k2 等也可以直接用于 cc,所以决定转用 cc。本文算是基于官方文档转成的比较简易的操作流程吧,也结合了一些自己遇到的问题的解决方法
前言
本文关键词:WSL环境、第三方API
贴一下 Claude Code 官方文档:https://docs.claude.com/zh-CN/docs/claude-code/overview
本文主要讨论如何在 Windows 系统下,通过 WSL 安装和配置 Claude Code 工具。
WSL,全称 Windows Subsystem for Linux,是 Windows 系统的一个神来之笔。它允许开发者在 Windows 上直接运行 Linux 环境,而无需虚拟机或双启动。这意味着你既能享受到 Windows 的便利,又能直接在 Linux 环境中做开发,省去了很多切换平台的麻烦。
安装步骤
1. 进入 WSL 环境
首先,你需要确保 Windows 系统已经安装了 WSL。如果还没有,可以参考 Microsoft 官方文档进行安装。安装完成后,在 PowerShell 或 CMD 中输入 wsl 即可进入 Linux 环境。安装教程直接问 AI 就好了,就几步命令的事
2. 安装 Claude Code
在 WSL 环境中,使用 npm 进行安装:
npm install -g @anthropic-ai/claude-code
如果在安装过程中遇到问题,不要使用 sudo(官方也不推荐,可能导致后续的权限问题),可以按照以下方法解决:
首先创建 npm 全局安装目录,并配置 npm 将全局包安装到该目录:
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
然后,将这个目录添加到系统的 PATH 环境变量中,这样系统就能找到全局安装的命令了。执行以下命令,将配置写入 .bashrc 文件并立即生效:
echo -e "\n export PATH=~/.npm-global/bin:$PATH" >> ~/.bashrc
source ~/.bashrc
完成上述配置后,再次尝试安装 Claude Code。
3. 最简配置
Claude Code 文档很多内容,以下是保证能用的基础配置,再后面会有进阶设置。
3.1 第三方模型配置
配置第三方服务 API(比如 GLM、AnyRouter 等),就需要配置 key 和 baseUrl。这里以 AnyRouter 为例。
在 WSL 环境中,进入 ~/.claude 目录。如果该目录下没有 settings.json 文件,就新建一个,然后添加以下内容:
{
"env":{
"ANTHROPIC_AUTH_TOKEN": "sk-xxxxx",
"ANTHROPIC_BASE_URL": "https://anyrouter.top" # 没科学环境可以用https://pmpjfbhq.cn-nb1.rainapp.top
}
}
3.2 全局提示词
在 ~/.claude 目录下,检查是否存在 CLAUDE.md 文件。如果没有,就新建一个,并添加你希望的全局提示词,例如:
## Response Language
**除非有特殊说明,请用中文回答。**
你可以根据自己喜好随意修改这个全局提示词。
4. 开始使用
配置完成后,就可以开始使用 Claude Code 了。
首先,导航到你的项目目录:
cd your-awesome-project
然后,启动 Claude Code:
claude
5. 进阶配置
5.1 修改模型
如果你比较富有,或者有其他特殊需求,可以通过修改 settings.json 来使用不同的模型,比如 Opus 模型。
在 ~/.claude/settings.json 文件中,添加 model 字段:
{
"model": "opus",
"env":{
// ...省略其他配置...
}
}
这里 opus 是模型的别名,你可以填写完整的模型名称。具体可用的模型名称和配置,请参考 Claude Code 官方文档中关于模型配置的部分:https://docs.claude.com/zh-CN/docs/claude-code/model-config。
5.2 提示词管理
Claude Code 的提示词分为全局提示词和项目提示词。
全局提示词:上面已经提到过,在 ~/.claude/CLAUDE.md 中配置。
项目提示词:如果你希望某个项目有专属的提示词,可以在该项目目录下新增 CLAUDE.md 文件,或者在该项目目录下创建 .claude 文件夹,并在其中新增 CLAUDE.md 文件。
关于提示词的更多详细信息和最佳实践,可以参考 Claude Code 官方文档中关于记忆(Memory)的部分:https://docs.claude.com/zh-CN/docs/claude-code/memory。
5.3 (重要)IDE 联动 claude code
说起来,用过 cursor 的人刚入手 claude code 会发现命令行版始终是不太方便,其中最核心的就是:cursor 中,当前编辑器所打开中的某个文件,会实时的在 cursor AI (暂且叫这个名)中实时关联,我可以直接对这个文件提问,同样的,如果我选中某段代码,它也能实时感知到。相比之下, cc (打 claude code 打累了,就叫这个吧)如果你要对某个文件提问,你就得把文件具体路径告诉它,如果你偷懒只打了文件名,那么好,它会在整个项目中调命令去找到这个文件,耗时间也耗token,针对代码段提问你也得把具体行数告诉它。
==但其实,这个问题是可以解决的==
cc 内置功能是可以通过 /ide 命令来选择关联的 ide的,vscode 系列包括 cursor、Jetbrain 等都可以。但是吧,如果你通过这个命令,发现检测不到 ide,那就看下面的解决方法
- 官方解决方案:https://docs.claude.com/zh-CN/docs/claude-code/troubleshooting#wsl2%E4%B8%8A%E6%9C%AA%E6%A3%80%E6%B5%8B%E5%88%B0jetbrains-ide
- WSL 环境处理
首先呢,WSL 默认是 NAT 网络,是什么不重要,重要的是,这可能会导致 WSL 环境下安装的 cc 检查不到 windows 系统下的 ide。官方说 “可能”,反正在我这里就是 100% 不得行。然后官方这里提了两种解决方案:
第一种:配置Windows防火墙:windows 下执行wsl hostname -I可以看到 wsl 系统的 IP,然后以管理员身份打开PowerShell并创建防火墙规则:New-NetFirewallRule -DisplayName "Allow WSL2 Internal Traffic" -Direction Inbound -Protocol TCP -Action Allow -RemoteAddress 172.21.0.0/16 -LocalAddress 172.21.0.0/16(根据步骤1中的WSL2子网调整IP范围)
其实第一种,我执行了并没什么用,还是不得行,你们可以试试,我是用第二种解决的,但官方推荐这种
第二种:切换到镜像网络:
在您的Windows用户目录中的 .wslconfig 中添加(没这个文件就自己加一个):
[wsl2]
networkingMode=mirrored
然后从PowerShell使用wsl --shutdown重启WSL。(自测发现最好也要重启下 ide 和其他 wsl 窗口)
- 在 cc 中,通过
/ide命令来选择关联的 ide。 - 如果有必要,你可以设置自动连接 ide:输入
/config,将Auto-connect to IDE (external terminal改成true。完事
5.4 状态栏自定义
使用 cursor 的 ai 时,输入框旁边是可以显示你当前用的什么模型,也能显示当前上下文的百分百。但你刚用 cc 会发现,这玩意啥都没有
==好了,其实也是可以有的==
cc 提供了状态栏的自定义,懒得说了,有兴趣可以直接看文档: https://docs.claude.com/zh-CN/docs/claude-code/statusline
我这里直接说一个简单版的,有两种选择吧:
第一种选择(稍微复杂一点,自定义程度高):
来自:https://github.com/sirmalloc/ccstatusline
通过bunx安装(如果没安装bunx就问AI):bunx ccstatusline@latest
然后在 `.claude\settings.json` 中配置:
{
...
"statusLine": "bunx ccstatusline@latest"
...
}
然后 wsl 中执行 bunx ccstatusline@latest,可以自定义配置你要显示的状态栏,配置完按指引保存,下次打开 cc 就能看到效果了
第二种选择(极其简单,自定义程度低,够用):
来自:https://github.com/ryoppippi/ccusage
在 `.claude\settings.json` 中配置:
{
...
"statusLine": "npx -y ccusage@latest statusline"
...
}
两种都只介绍了最简单的用法,详细可以去对应的 github 仓库看