Claude Code笔记
这样愚蠢的我竟然还放声高歌
手册:https://code.claude.com/docs/zh-CN/quickstart
claude-howto:https://github.com/lhfer/claude-howto-zh-cn
环境:Windows11,powershell
写在前面
感觉网上的教程对于skills是什么rules是什么都有不同的一套理解,迷茫
看的啥学啥了,会综合一下,加入一点自身使用经历
其实copy一套别人的配置也能直接跑的,而且肯定比自己摸索出来的要好,但是那样就纯摸瞎了,还是得自己试出一套来。但是我还是好想要师姐的配置啊….
真的得时不时看看它在写什么在做什么,提出提问和想法,才能把握方向,改进工作流,也趁早发现问题
(怎么跟科研这么像,我-cc,导-我。我理解你了导)
基础使用
订阅
先订阅claude会员,才能使用claude code(或者也可以买API)
目前中国大陆用户自己订阅有几种方法:
- 直接在官网绑卡。最稳定最推荐,但是需要国外的信用卡
- Apple商店购买。第二推荐,据说不容易被封,并且可以买礼品卡有优惠
- Google Pay。Google Pay可以绑国内的visa卡
- PayPal。不了解
Google Pay
纯凭印象了,致歉
卡里先换好足够的USD。
Google Wallet添加身份资料,支付方式相关信息,都最好提前找一个免税地址的(地区,地址,邮编等,可以网上生成一个)。据说是根据法定地址来收税的
如果需要切换法定地址,就得换一个身份资料(或者新建一个)
防封
也是听别人说的。
尽量固定ip。不要开着claude code或者web端切换节点。关闭设置中的privacy-Location metadata,顺便Help improve Claude也关了吧
Claude Code安装
Windows powershell
1 | irm https://claude.ai/install.ps1 | iex |

直接下到C盘了,试着贴到别的地方,好像也能用
把新路径加到环境变量
然后随便打开一个终端,输入claude,有欢迎词,就OK了。好萌啊

后面会提示你进行一些基础设置,以及登录账号
但是配置文件还是在C盘那个目录:C:\Users\usr\.claude
Linux
安装
1 | npm install -g @anthropic-ai/claude-code |
碰到了node js版本过低和npm全局安装目录权限问题
安装nvm
1 | curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash |
重启终端或者
1 | source ~/.bashr |
然后安装最新的 LTS(长期支持)版本的 Node.js
1 | vm install --lts |
查看claude路径
1 | which claude |
小tip
绕过claude启动时的地区与登录检查:在~/.claude.json中添加一行:
1 | "hasCompletedOnboarding": true |
命令
导出
1 | ./export my-session-midpoint.md |
/compact
大概是压缩历史记录的意思。能节省token,但是会丢失细节
用久了可以手动/compact一下
自动压缩会导致丢失的信息不确定,尽量不要让自动压缩
/btw
不打断现有的对话,旁路询问
快捷键
rewind,回退
两次Esc
将对话状态倒退到之前的某个时间点。可以用于纠错,尝试不同方案,以及节省token。rewind之后会回到这次对话之前
上下文也会回到之前的状态(对于走错了路之后回退很好用,跟它说不走这条路,节省和防止污染上下文)
也可以选择将这期间做的文件修改也回退

两次Ctrl + C:退出Claude Code
Ctrl + O:展开/收起详细信息
会话session
重命名会话
1 | /rename auth-refactor |
resume
恢复某次会话
1 | claude --resume session-id |
不记得会话叫啥了可以直接输入
1 | claude --resume |
然后选择

加载当前目录中最近的对话
1 | claude --continue |
–fork session
会话分支。共享之前的上下文和历史,后面分叉
配置
作用域
| 功能 | User 位置 | Project 位置 | Local 位置 |
|---|---|---|---|
| Settings | ~/.claude/settings.json |
.claude/settings.json |
.claude/settings.local.json |
| Subagents | ~/.claude/agents/ |
.claude/agents/ |
无 |
| MCP servers | ~/.claude.json |
.mcp.json |
~/.claude.json(每个项目) |
| Plugins | ~/.claude/settings.json |
.claude/settings.json |
.claude/settings.local.json |
| CLAUDE.md | ~/.claude/CLAUDE.md |
CLAUDE.md 或 .claude/CLAUDE.md |
CLAUDE.local.md |
迁移默认配置路径
先把.claude文件全部搬过去,然后设置环境变量:
1 | [System.Environment]::SetEnvironmentVariable("CLAUDE_CONFIG_DIR", "D:\.claude", "User") |
如果配置文件中有写死的路径还指向c盘的话需要手动修改一下。
原文件可以先别删,以备不时之需。另外.claude中有个backups目录存了.claude.json的备份
最后打开claude看它是认识你还是新认识你,就知道了。
mcp
ida pro mcp
到配置文件目录中写入
1 | "mcpServers": { |
新开终端运行
1 | claude mcp list |

可以用这个命令测试连通性
1 | Test-NetConnection -ComputerName 127.0.0.1 -Port 13337 |
jadx mcp
mcp配置:
1 | "jadx-mcp": { |
测试连通性
1 | D:\Miniconda3\python.exe D:\CTFTools\jadx-ai-mcp\jadx-mcp-server\jadx_mcp_server.py --jadx-port 8650 |

资源和成本控制
https://claude.ai/settings/usage
成本控制手册:https://code.claude.com/docs/zh-CN/costs
一些tip
选择正确的模型
Sonnet 处理大多数编码任务效果很好,成本低于 Opus。为复杂的架构决策或多步推理保留 Opus。使用 /model 在会话中途切换模型,或在 /config 中设置默认值。对于简单的 subagent 任务,在您的subagent 配置中指定 model: haiku。
切换模型

查看消耗以及上下文

每个 MCP server 都会向您的上下文添加工具定义,即使处于空闲状态。运行 /context 查看占用空间的内容。
- 在可用时优先使用 CLI 工具:
gh、aws、gcloud和sentry-cli等工具比 MCP servers 更节省上下文,因为它们不添加持久工具定义。Claude 可以直接运行 CLI 命令,无需开销。 - 禁用未使用的 servers:运行
/mcp查看配置的 servers 并禁用您未积极使用的任何 servers。

Claude Pro的限制
session重置机制:第一次发送请求时,Claude Code 记录这个时间,在接下来的 5 小时里,你被允许消耗一定数量的消息/配额,一旦用完,就会锁住并显示一个重置时间
经常会用着用着就被截断了,目前在想,在马上达到限制时就停下来会不会好一些
Claude Code Project
Claude的上下文优先级:
| Source | Priority Level | Implication |
|---|---|---|
| CLAUDE.md | High | Treated as authoritative instructions |
| Rules Directory | High | Same weight as CLAUDE.md |
| Skills | Medium (on-demand) | Loaded only when triggered |
| Conversation history | Variable | Decays over long sessions |
| File contents (Read tool) | Standard | Normal context, no special weight |
按需加载
会话是临时的,项目才是持久的:如何让下一次会话复用
项目配置
https://claudecn.com/docs/claude-code/advanced/starter-kit/
项目结构
1 | your-repo/ |
目前很多模块我都是叫cc总结,但是要注意自己检查是否合理
CLAUDE.md
CLAUDE.md 适合放“广泛适用”的规则,也就是那些无论 Claude 正在改哪个模块、读哪个文件,几乎都应该知道的内容。CLAUDE.md 最好保持简洁、具体、可验证,并尽量控制在 200 行以内。因为它会在每次会话开始时加载,写得太长不仅消耗上下文,还会降低 Claude 遵守指令的一致性。
只写需要常驻在上下文中的内容
CLAUDE.md和rules感觉类似于prompt,建议或者引导模型应该怎么做,模型不一定会认真遵守。强制性的规则可以写入settings
rules
Claude Code Rules Directory: Modular Instructions That Scale
https://ai.iamchen.cn/content/32
这是CLAUDE.md 文件的模块化替代方案。可以避免CLAUDE.md太过庞大,上下文太多
把所有人都要长期遵守、几乎每次会话都相关的内容放进 CLAUDE.md;把只对某些目录、文件类型或专项主题生效的规则拆到 .claude/rules/ 中。
有点复杂,看网上说分成全局,主题化和路径化的都有。就当它有这三种好了
全局
像 .claude/CLAUDE.md 一样,在会话开始时就加载。适合那些不想塞进主文件,但仍然希望始终生效的规则。
简而言之就是和claude.md一模一样,只是换个地方存
主题化
在rules文件中写明生效的主题。
具体生效方式未知
paths
带有 paths frontmatter,只有 Claude 读取了匹配路径的文件时,这条规则才会进入上下文。
例:
1 | --- |
skills
https://github.com/lhfer/claude-howto-zh-cn/tree/main/03-skills
https://www.cnblogs.com/qiniushanghai/p/19767766
长期、重复使用的功能可以整合成skills。
按需加载,根据description自动判断何时触发。也可以使用command触发。有点类似于commands的扩展版
只有满足description时才会加载剩下的内容
| 位置 | 路径 | 作用范围 |
|---|---|---|
| 企业级 | 托管配置(managed settings) | 组织内所有用户 |
| 个人级 | ~/.claude/skills/<skill-name>/SKILL.md |
你的所有项目 |
| 项目级 | .claude/skills/<skill-name>/SKILL.md |
当前项目 |
| 插件级 | <plugin>/skills/<skill-name>/SKILL.md |
插件启用范围 |
同名 Skills 以高优先级覆盖低优先级:企业 > 个人 > 项目 > 插件。
如何写
description要具体,不要空泛- 一个 skill 聚焦一类问题
- 如果依赖脚本或模板,放进 skill 目录,不要散落各处
- 优先写“什么时候触发”和“输出长什么样”
注意:确认脚本依赖(用python还是node还是uv?powershell还是wsl?)
实际
https://www.cnblogs.com/qiniushanghai/p/19767766
实际上我还是想到了什么模式就让cc总结。
另外 OMC 有内置 /learner skill,功能正是”从当前对话提取可复用 skill”。可以:
- 每次遇到新的分析模式后调用->总结新的skill
- 遇到工具问题修复后调用->更新已有skill
用法:/learner
commands
长期、重复使用的功能可以整合成commands(?)
相比于skills,需要手动触发命令,所以自动化程度可能减少,但是触发时机和工作流程十分确定,可以约束cc实际按照你的指令去做,防止偷懒
settings
permissions
allow:
对某些文件操作和命令执行会一直要你的许可,即使选择了“在这个项目里总是许可”,也会不停问,因为总是许可的那些都是具体的命令,可以在Setting里加上用通配符的许可命令,也可以叫cc自己总结一下当前的许可(但是要注意安全)
deny:
规定哪些文件是不能动的,哪些命令是禁止的
Hooks
Memory
每次会话启动自动加载,Memory文件默认存放在config目录的projects\your-project\memory文件夹中
内容:(容易跟claude.md有重复)
记录经验和状态:踩过的坑、用户纠正过的理解、环境信息, 内容会随会话演进。不要重复规则信息
据说是:上限 200 行。需要保持简洁
subagent
https://code.claude.com/docs/zh-CN/sub-agents#quickstart-create-your-first-subagent
优点:上下文分离
缺点:上下文分离
subagent和主会话读取和加载的文件不是很一样。subagent读取 CLAUDE.md和自身定义文件,不读取memory文件
下面写的这点跟我现在体会到的不太一样,删掉了
subagent能跟主会话进行交互,但是其运行过程对于人类来说不是很可见和可控
目前 Agent tool 是同步阻塞的——你只能看到最终返回结果,看不到中间过程。唯一的方式是 run_in_background:true,但那样你会在后台收到通知,仍然不是流式进度。Claude Code 目前没有 subagent 实时流式输出的机制。
适合的方式是全自动运行,主会话负责调度subagent,和人类汇报。但是这样subagent出问题时人类也会延迟得知,并且无法直接操控,比较烧token
定义
定义:\.claude\agents中写agent定义。需要写 frontmatter才能被claude code识别:
1 | --- |
手动添加:
cc里输入/agents,选择create new agent,选择Project (.claude/agents/)
注意:Subagents 在会话启动时加载。如果手动添加文件来创建 subagent,需要重启会话或使用 /agents 立即加载它。

使用
当代理作为主线程运行时,使用 claude --agent
一些实际使用
可以切换到subagent的窗口,也可以发消息

神秘的通信机制…

我问它得到的通信机制:

报错,工具调用,终端输出都看不到,只能等主动通信。非常之黑盒的沟通啊
另外只有在turn之间才会收到其他agent发来的消息,说实话要等很久。我发现可以直接在subagent页面按esc打断,这样就会立即收到一条消息()
最最恼的一点其实是,subagent到了turn之间了收消息了但是只会收一条!但是lead可能发过多条,明显的时效不对等,非常烦人
观察发现子agent的工具调用申请也会显示在main中
可以通过agent名子是有颜色的还是灰色的判断agent是在工作还是在idle
ctrl+O展开细节只对main有效,subagent的信息还是太不透明了
多个agent并发的性能影响:
- API 并发竞争
- 每个 agent 是独立的 API 调用者,共享同一个 API 账号的速率限制
- 每个请求都要排队等模型响应,并发多时每个 agent 的响应都会变慢
- 上下文开销
- 每个 agent 有自己独立的上下文窗口,系统提示 + 对话历史各自维护
- agent 之间通过 SendMessage 通信,消息会同时出现在发送方和接收方的上下文中,双倍消耗
- 广播(broadcast)更贵:N 个 agent = N 份消息副本
- 本地资源
- 每个 agent 是一个进程/线程,占用内存和 CPU
- 大量并发文件读写(多个 agent 同时 Grep/Read 大文件)可能 IO 争抢
- 权限审批队列
- 工具调用审批请求是串行处理的,多个 agent 同时请求审批时,它们互相等待
Hooks
hooks允许你在不修改 Agent 核心代码的前提下,在特定事件(如工具调用前/后)发生时,强制性地执行一段自定义脚本
用于:需要在触发某些条件时强制执行的代码
常见的Hook生命周期事件
| Hook事件 | 类型 | 触发时机 |
|---|---|---|
SessionStart |
会话生命周期 | 会话创建或恢复时 |
UserPromptSubmit |
用户交互 | 用户提交文本输入时 |
PreToolUse |
工具调用 | 工具执行前被调用 |
PostToolUse |
工具调用 | 工具成功执行后被调用 |
PostToolUseFailure |
工具调用 | 工具执行失败后被调用 |
Stop |
Agent行为 | Agent完成一轮操作后触发 |
一些用法:
- 配置
PreToolUseHook,在命令执行前进行安全检查 - 配置
PostToolUseHook,在文件写入或修改后,自动运行格式化工具,确保代码风格统一 - 通过
PreToolUseHook 记录Agent执行的每一个Shell命令及其参数,用于事后复盘或合规审计
其他
git worktree
当多个会话协作更改同一个工作目录时,用于预防修改冲突

设置tmp目录
用于cc需要临时创建脚本做事的时候。设在项目目录下感觉有点费上下文(?)要不cc默认就放C盘去了
整合
时不时整合一下settings里的permission
看看临时脚本能否整合到skills
一些plugin&skills
一些仓库:
• Anthropic 官方 Skills 仓库:https://github.com/anthropics/skill
• Anthropic 官方 Plugins 仓库:https://github.com/anthropics/claude-plugins-officia
• Awesome Claude Skills 社区列表:https://github.com/travisvn/awesome-claude-skill
• Claude Code Skills 文档:https://code.claude.com/docs/en/skill
• Skills 市场:https://skillsmp.com/
Claude Code Skills :https://github.com/daymade/claude-code-skills
参考:https://zhuanlan.zhihu.com/p/2015725269667840386
安装&管理
在Claude code中(加market):
1 | /plugin marketplace add daymade/claude-code-skills |
然后/plugin找到market,就可以选择其中的skills

这个skills点了安装之后也不见个提示词,等安装完就直接退出了/plugin,并且显示(no content),让人很摸不着头脑。后来我才发现如果出错会直接在安装页面提示,不会退出。好神秘啊
也可以使用这种命令
1 | claude plugin install skill-creator@daymade-skills |
在installed页面查看和管理开启哪些skills

oh-my-claudecode
https://github.com/Yeachan-Heo/oh-my-claudecode/blob/main/README.zh.md
依赖
有些命令依赖nodejs
官网下载:https://nodejs.org/en/download
配置
安装
1 | /plugin marketplace add https://github.com/Yeachan-Heo/oh-my-claudecode |
初始化
1 | /omc-setup |
然后会自动进行看不懂的配置,会叫你选择一些模式选项什么的

状态栏
好像自动配了个状态栏,还改了高亮方案。因为我之前啥都没配,肯定是比之前清晰得多了。如图

还会提醒上下文要满了
agent
长这样,看不到agent的输出好像

team模式
oh-my-claudecode 的 /team 用 tmux 开多个独立 Claude Code 进程,每个进程是完全独立的会话。它们之间没有 SendMessage 这种消息机制,只能通过共享文件系统(写文件 → 另一个读文件)来协调。
1 | /team [N:agent-type] [ralph] <task description> |
不同team worker之间的切换:
1 | Shift + ↑ 切换到上一个 agent 的视图 |

但是我这测试下来只能识别出Shift + ↓ (这token太恐怖了
对我来说有个大问题是:
子 agent(team worker)不继承父会话的 MCP server 连接。MCP 只在你的主 Claude Code 会话中可用。
解决方法是,可以让主会话通过mcp获取信息,然后作为prompt传给team worker。缺点是费token
后续:改为统一用curl调用mcp server了。
superpowers
https://github.com/obra/superpowers
1 | /plugin marketplace add obra/superpowers-marketplace |
装了这些
● double-shot-latte
Automatically evaluates whether Claude should continue working instead of stopping prematurely using Claude-judged decision making
● elements-of-style
Writing guidance based on William Strunk Jr.’s The Elements of Style (1918)
写作
● episodic-memory
Semantic search for Claude Code conversations. Remember past discussions, decisions, and patterns.
搜索和读取历史对话
● private-journal-mcp
Private journaling MCP server with semantic search. Multi-section entries (feelings, project notes, technical insights), local AI embeddings, and full-text retrieval.
私人的记忆
● superpowers
Core skills library for Claude Code: TDD, debugging, collaboration patterns, and proven techniques
● superpowers-chrome
BETA: VERY LIGHTLY TESTED - Direct Chrome DevTools Protocol access via ‘browsing’ skill. Skill mode (17 CLI commands) + MCP mode (single use_browser tool). Zero dependencies, auto-starts Chrome.
chrome mcp
● superpowers-developing-for-claude-code
Skills and resources for developing Claude Code plugins, skills, MCP servers, and extensions. Includes comprehensive official documentation and self-update mechanism.
开发claude code配置
skill-creator
https://github.com/daymade/claude-code-skills/blob/main/skill-creator/SKILL.md
构建、验证和打包自己的 Claude Code 技能。
1 | claude plugin install skill-creator@daymade-skills |
或
1 | /plugin marketplace add daymade/claude-code-skills |
目前没看出来有啥用()
continue-claude-work
从本地 ~/.claude 会话产物中恢复可执行上下文,并在不重新打开旧交互会话的前提下继续实现工作。内置 Python 脚本实现智能上下文提取。
- 用户提供 Claude 会话 ID,希望继续上次的任务
- 需要直接检查本地
.claudeJSONL 文件,而不是运行claude --resume - 上一次会话被中断,需要重建下一步具体动作
- 多 agent 工作流被中断,需要了解哪些 subagent 已完成
1 | # 安装技能 |
ctf-skills
1 | npx skills add ljagiello/ctf-skills |
trailofbits/skills
1 | /plugin marketplace add trailofbits/skills |
c-review: 针对 C/C++ 项目的深度安全审查。它不仅仅是跑扫描器,而是像安全审计员一样分析内存分配、边界检查和危险函数。
static-analysis: 集成了 CodeQL 和 Semgrep。对于你关注的 nsppe 这种大型二进制文件的源码(如果有)或类似逻辑审计非常有效。
variant-analysis: 变体分析。如果你已经有一个 CVE(如 Citrix Bleed),它可以帮助 Agent 在代码库中搜索类似的逻辑漏洞模式。
testing-handbook-skills: 自动化配置 Fuzzer(模糊测试)、Sanitizers(内存检测)和 Coverage 工具。
自动化规则专家:Semgrep Rule Creator:发现一个漏洞点,想要在整个项目(或多个固件版本)中快速排查同类风险时,这个技能是神器。
上下文构建专家:Audit Context Building 强迫 Agent 进行“超细粒度”的代码分析,生成 Mermaid 流程图和函数调用树。它能显著提升 Agent 在处理 Binder IPC 或内核 Security 架构时的逻辑推理准确度。
trailofbits/skills-curated
GitHub - trailofbits/skills-curated: Curated, community-vetted Claude Code plugin marketplace · GitHub
1 | /plugin marketplace add trailofbits/skills-curated |
ghidra-headless(二进制逆向)和 ffuf-web-fuzzing(Web fuzzing)
联网搜索
官方的方案有web search和web fetch,是免费使用的,但是似乎和anthropic服务器一起的,换个网络就用不了了。需要自己装一些插件,都是mcp server
推荐比较多的几个:
Tavily MCP
每月1000次免费
注册:https://app.tavily.com/home
获得api key之后运行命令:
1 | claude mcp add --transport http tavily https://mcp.tavily.com/mcp/?tavilyApiKey=<你的密钥> |
然后重启claude code,/mcp查看。这里提示没认证

认证了之后重启,再/mcp,还是没连接点一下reconnect,就OK了
不知为何实际使用还是说没连上
她家的skills
1 | npx skills add https://github.com/tavily-ai/skills |
Brave Search MCP
每月2000次免费
mcp-search-server
完全免费,不需要api key。用完了就换这个
其他问题
网络问题排查
403
如果总是报403的话可以试试这个,7897是代理端口
1 | $env:HTTP_PROXY="http://127.0.0.1:7897"; $env:HTTPS_PROXY="http://127.0.0.1:7897" |
可以直接写入claude的setting
1 | "HTTP_PROXY": "http://127.0.0.1:7897", |
401
好的,新问题
1 | ⎿ API Error: 401 {"type":"error","error":{"type":"authentication_error","message":"Invalid authentication |
OAuth登录页面最后会显示建立安全连接失败,怀疑还是梯子节点的问题
High memory usage
下方显示
1 | High memory usage (4.8GB) · /heapdump |
意味着 Claude Code 进程消耗的内存超过了其预设的阈值
Claude Code 在启动时会扫描当前目录及其子目录(构建索引、读取 .gitignore 等)。可以建一个.claudeignore目录,将不需要claude关心的文件放进去
–resume失效
经常的事,明明重命名了会话但是resume就是找不到,找不到就算了,历史会话一个都显示不出来。搜了下说是 Claude Code 当前 session 管理机制设计不完善导致的。
解决方案是自己设计一个claude resume命令。session title现在只会存在.claude/projects/*.jsonl中(jsonl的命名是session id),并且没有什么索引,只能扫描文件内容然后定义到session id
可以去网上找一个这种工具
手动扫的话可以用这个
1 | grep -R '"customTitle":"analyst"' . |