序言:为什么要把这些分析整理成一本书
从这本书的目标、边界和阅读方式开始,明确它不是零散专题合集,而是一条围绕 Claude Code 运行时展开的主线。
前面这批专题文档,已经把 Claude Code 的很多局部都拆开了。
但“拆开”不等于“读懂”。
如果只是做研究笔记,专题化拆分已经够用了;可如果目标是更进一步:
- 真正吃透 Claude Code 的设计思路
- 把这份源码里有迁移价值的部分尽量榨干
- 最后把它翻成一套 C# 运行时
那就需要再做一步,把这些结论从“并列的专题”收束成“一条能顺着走的主线”。
现在这本书已经把那一步做完了。
1. 这本书不解决什么
先把边界说清楚,避免读到一半期待错位。
这本书不打算做这几件事:
- 不逐行解释所有源码文件
- 不假装这份快照是完整 monorepo
- 不把每一条推断都包装成确定事实
- 不追求和官方文档一样“面向使用者”
它现在更像一本:
面向实现者的 Claude Code 运行时设计书。
换句话说,读这本书时你最好带着下面这种问题意识:
- Claude Code 到底把哪些东西当 runtime 来做
- 哪些抽象值得在 C# 里原样保留
- 哪些只是 TS/React/Ink 时代的宿主实现
- 哪些地方是产品策略,哪些地方是工程骨架
2. 这本书真正想解决什么
这本书现在主要在回答三个问题。
2.1 它到底是什么
Claude Code 表面上长得像一个命令行工具。
但源码真正透露出来的东西是:
- 它不是“会调模型的 CLI”
- 它也不是“终端 UI 套一个 agent”
- 它更接近一套长生命周期的 agent runtime
所以第一步,必须先把对象认清。
2.2 它到底怎么活起来
源码里最值钱的,不是某个单独工具,而是整条生命周期:
- 启动
- 建 session
- 跑 turn loop
- 调工具
- 压缩上下文
- 恢复会话
- 热更新配置
- 接远端 session
这条线一旦理顺,很多看似零散的文件就会自动归位。
2.3 它怎么迁成 C#
如果目标只是“懂”,那读完源码大概就够了。
但我们现在的目标更明确:
要把 Claude Code 的设计思想迁成一套 C# 版。
所以这本书会一直带着迁移视角。
每一章都会不断问同一个问题:
- 这块在 C# 里应该叫什么
- 应该拆成接口、服务还是宿主层对象
- 哪些地方该保留
- 哪些地方该换一种更适合 .NET 的组织方式
3. 这本书现在是怎么排的
整本书现在按六部分来排。
3.1 第一部分:导言
先建立整体判断:
- 这份源码快照的边界是什么
- Claude Code 的总体定位是什么
- 它为什么应该被看成一个 runtime,而不是一个 CLI
3.2 第二部分:运行时主链路
这一部分是全书的主脊梁:
- 启动和宿主模式怎么分流
query.ts的 turn loop 怎么跑- 工具运行时和权限系统怎么接在一起
只要这部分吃透了,Claude Code 的“心脏”就差不多看见了。
3.3 第三部分:本地执行面
这部分看的是 Claude Code 最厚的一层本地能力面:
- Bash 和本地文件工具
- 搜索、Web、LSP、REPL 包装
也就是 Claude Code 真正落到本地工作区里干活的那一面。
3.4 第四部分:扩展与协作
这部分开始看 Claude Code 怎么把“一个 agent”扩成“一个会协作的 runtime”:
- Agent、Skill、Task、MCP
- 协作控制工具
- 运行时辅助工具
- 元工具层
也就是 Claude Code 真正往多主体、多控制面方向长出来的地方。
3.5 第五部分:会话续航与治理
Claude Code 之所以不像一次性 CLI,就因为它特别重视续航:
- 附件和上下文注入
- transcript、resume、compact、overflow recovery
- bridge、remote、managed settings、policy、settings sync
这一部分决定它能不能活得久、跑得稳、被组织化治理。
3.6 第六部分:迁移与附录
最后一部分开始收束和补全:
- 核心模块应该怎么映射到 C#
- 全部工具怎么挂回总索引
- 还剩哪些高价值模块值得继续挖
4. 读这本书时要记住的三个判断
为了避免读到后面又重新掉回“它是不是个 CLI”的直觉里,我建议一直记住下面三个判断。
4.1 它最值钱的不是某个工具,而是运行时组织方式
单看工具表,你能学到很多协议设计。
但 Claude Code 真正难抄、也真正值钱的,是它怎么把这些东西编织成一个会话 runtime。
4.2 它把“宿主外壳”和“对话内核”分开了
REPL、headless、bridge、remote attach,看起来很不一样。
但底下真正的会话、工具、上下文、权限、恢复逻辑,又尽量被压回同一套 runtime。
这对 C# 迁移非常重要。
4.3 它已经在往“会话系统”演化,而不是停留在本地 CLI
这句话在后面的章节里已经一遍遍出现:
- transcript 是 journal
- resume 是恢复管线
- bridge 是环境宿主
- remote attach 是会话投影
- managed settings 是组织治理面
这些都说明它早就不是一个“只在本地 terminal 里转一圈”的工具了。
5. 读完这本书,你应该得到什么
读完当前这版书,你至少应该能带走这些东西:
- 一张清楚的 Claude Code 总体地图
- 一条从启动到 session 结束的主链路
- 一套区分宿主层、运行时层、执行面、治理面的视角
- 一份能直接转进 C# 的接口和模块拆法
如果这几件事能成立,那这本书就不是把笔记重新排版,而是真的把前面那堆研究材料组织成了一套可以落地的设计理解。