Claude Code 安装
根据官方教程,照着操作就好了: https://docs.anthropic.com/en/docs/claude-code/setup
接入 Kimi K2
国内访问 Claude
困难,因此有了Kimi K2 平替方法,下面是操作步骤:
首先到这里申请一个API, 然后设置环境变量:
1 | export ANTHROPIC_BASE_URL="https://api.moonshot.cn/anthropic/" |
最后,由于 Claude code
设置了地域限制,需要绕过初始登录验证,操作如下。
打开 Claude code 的配置文件: vim ~/.claude.json
,修改 hasCompletedOnboarding
为 true
, 如果没有 hasCompletedOnboarding
则添加。
使用 Claude Code
在命令行切换到 工作目录
,输入 claude
命令,结合上面的教程,根据提示进行操作即可。
自定义设置
- 创建
CLAUDE.md
文件CLAUDE.md
是一个特殊文件,Claude 在发起对话时会自动将其拉入上下文中。可以在该文件内指定如下的内容:- 常用 bash 命令
- 核心文件和实用函数
- 代码风格指南
- 测试说明
- 仓库规则(如,分支命名,merge 和 rebase等)
- 开发者环境设置(例如,pyenv 的使用、哪些编译器可以工作)
- 项目特有的任何意外行为或警告
- 希望 Claude 记住的其他信息
CLAUDE.md
文件没有格式要求。建议保持其简洁易读。例如:
1
2
3
4
5
6
7
8
9
10
11# Bash commands
- npm run build: Build the project
- npm run typecheck: Run the typechecker
# Code style
- Use ES modules (import/export) syntax, not CommonJS (require)
- Destructure imports when possible (eg. import { foo } from 'bar')
# Workflow
- Be sure to typecheck when you're done making a series of code changes
- Prefer running single tests, and not the whole test suite, for performance
可以将 CLAUDE.md
文件放在多个位置:
- 仓库根目录 ,或者你运行
claude
的任何地方(最常见的用法)。将其命名为CLAUDE.md
并将其提交到 git,以便你可以在不同会话之间以及与你的团队共享它(推荐);或者将其命名为CLAUDE.local.md
并.gitignore
忽略它。 - 运行
claude
目录的任何父目录 。这对于单一代码库
最有用,你可以在root/foo
中运行claude
,并在root/CLAUDE.md
和root/foo/CLAUDE.md
中都有CLAUDE.md
文件。这两个目录都会自动被拉入上下文。 - 运行
claude
的目录的任何子目录 。这与上面的操作相反,只会从子目录中的 CLAUDE.md 文件中提取上下文 - 用户主文件夹 (
~/.claude/CLAUDE.md
),这会将其应用于所有的 claude 会话
运行/init
命令时,Claude 会自动为你生成一个CLAUDE.md
。
- 调整
CLAUDE.md
文件
CLAUDE.md
文件将成为 Claude 提示的一部分,因此应该对其进行优化改进。一个常见的错误是添加大量内容,而没有对其有效性进行迭代。这里需要花时间进行实验,以便确定哪些提示词能够使得模型生成最佳的指令遵循。
可以手动将内容添加到 CLAUDE.md
中,也可以按 #
键向 Claude 发出指令,使其自动合并到相关的 CLAUDE.md
中。在 Anthropic,工程师们偶尔会通过修改提示词,来提高模型的指令依从性,比如使用”重要”或”必须”来强调。
整理 Claude 允许使用的工具列表
在默认情况下, 当 Claude Code 进行任何有可能修改系统的操作时,将会请求用户给予权限。这是为了优先考虑安全性的保守做法。使用者可以自定义允许的列表,以允许认为安全的工具,或者允许可能不安全但易于撤销的工具,如文件编辑、git commit等。
以下四种方法用于管理工具的许可:- 在会话期间出现提示时, 选择“始终允许” 。
- 使用
/permissions
: 启动 Claude Code 后,可以添加或移除允许列表中的工具。例如,可以添加Edit
以始终允许文件编辑,添加Bash(git commit:*)
以允许 git 提交,或添加“mcp__puppeteer__puppeteer_navigate
”以允许使用 Puppeteer MCP 服务器进行导航。 - 手动编辑
.claude/settings.json
或~/.claude.json
- 使用
--allowedTools
CLI flag 获取特定于会话的权限。
如果使用 GitHub , 请安装
gh CLI
Claude 知道如何使用gh
CLI 与 GitHub 交互,例如创建问题、提交拉取请求、阅读评论等等。即使没有安装gh
,Claude 仍然可以使用 GitHub API 或 MCP 服务器(如果您已安装)。
给 Claude 更多工具
- 让 Claude 使用 bash 工具
Claude Code
会继承你的Bash环境,使其能够访问你所有的工具。虽然Claude可以识别unix tools
和gh
等常用工具,但如果没有指令,它就无法识别你自定义的Bash
工具:- 告诉
Claude
工具的名称和使用示例 - 告诉
Claude
运行--help
来查看工具的使用文档 - 在
CLAUDE.md
中记录常用工具
- 告诉
- 让 Claude 使用 MCP
Claude Code
即可以作为 MCP 服务器,也可以作为客户端,作为客户端,它可以连接任意数量的MCP服务器,并通过三种方式访问服务器工具。 - 自定义命令
对于重复的工作流,可以通过设置提示模版,自定义工作流命令,从而通过 / 访问
尝试常见的工作流
- 探索、规划、编码、提交
探索阶段: 告诉 Claude 读取文件,但是不进行任何编码
规划阶段: 让 Claude 制定一个解决特殊问题的计划
编码阶段: 要求 Claude 在代码中实现其解决方案
提交阶段: git维护,readme维护,日志维护以及解释操作
📢注意:前面两个步骤至关重要,如果没有这些步骤,Claude
会直接开始编写解决方案,但是如果有前面两个步骤,可以显著提高需要深入思考的问题的效率。 - 编写测试,提交;编码,迭代,提交
a. 让 Claude 根据预期的输入 输出对编写测试,明确说明你正在进行测试驱动开发。
b. 告诉 Claude 运行测试并确认它们是成功还是失败,明确告诉它在此阶段不要编写任何实现代码通常会有所帮助。
c. 当对测试满意时,请 Claude 提交测试
d. 要求 Claude 编写通过测试的代码,并提示它不要修改测试。
e. 对更改满意后,要求 Claude 提交代码 - 编写代码,截图结果,迭代
- 使用 YOLO模式
可以使用claude --dangerously-skip-permissions
绕过所有权限检查,让Claude
不间断地工作直至完成。但是这个模式有风险,为了降低风险,最好在没有互联网连接的容器中使用。 - 代码库问答
在新加入代码库时,可以使用Claude Code
进行学习和探索,常见问题如下:
a. 日志记录如何工作
b. 如何创建新的API端点
c. 第xx行的作用是什么
💡提示: 在Anthropic
, 以这种方式使用Claude Code
已经成为核心入职工作流程,显著缩短了上手时间,并减轻了其他工程师的负担。 - 使用 Claude 与git交互
Claude 可以高效地处理许多 git 操作,比如:
a. 搜索 git 历史记录来回答诸如”哪些更改导致了 v1.2.3版本”
b. 编写提交消息,Claude将自动查看更改和最近的历史记录,并根据所有相关上下文编写一条消息
c. 处理复杂的git操作,例如恢复文件、解决rebase等 - 使用 Claude 与 GitHub交互
- 使用 Claude 来操作 Jupyter Notebook
优化工作流
- 指示要具体
- 给 Claude 图片或者图表: 将图像直接拖放到提示输入中,或者提供图像的文件路径
- 指定希望Claude查看或处理的文件
- 为 Claude 提供URL: 将特定的 url 放在提示词中,以便于 Claude 获取并读取,为了避免出现权限问题,可以将url添加到允许的列表中
- 尽早并经常性的纠正错误
- 使用 /CLEAR 保持上下文聚焦: 在任务之间用 /clear 命令来重置上下文
- 使用清单来处理复杂的工作流
- 如何将数据传入 Claude
使用 headless mode
实现 infra
的自动化
使用多 Claude 来对工作流进行升级
- 让一个 Claude 编写代码,另外一个Claude来验证
通过启动多个终端,从而实现多个 Claude 的启动