[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-74276":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":25,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":37,"readmeContent":38,"aiSummary":39,"trendingCount":16,"starSnapshotCount":16,"syncStatus":40,"lastSyncTime":41,"discoverSource":42},74276,"claude-code-from-scratch","Windy3f3f3f3f\u002Fclaude-code-from-scratch","Windy3f3f3f3f","Build your own Claude Code from scratch.  🔍 Claude Code 开源了 50 万行代码，读不动？用 ~4000 行 TypeScript \u002F Python 从零复现核心架构，11 章分步教程带你理解 coding agent 精髓","https:\u002F\u002Fwindy3f3f3f3f.github.io\u002Fclaude-code-from-scratch\u002F#\u002F",null,"Python",1391,392,6,1,0,26,81,232,78,20.78,"MIT License",false,"main",true,[27,28,29,30,31,32,33,34,35,36],"ai","ai-agent","anthropic","build-from-scratch","claude","claude-code","coding-agent","llm","tutorial","typescript","2026-06-12 02:03:24","\u003Cdiv align=\"center\">\n\n# Claude Code From Scratch\n\n**一步一步，从零造一个 Claude Code**\n\n[![GitHub stars](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002FWindy3f3f3f3f\u002Fclaude-code-from-scratch?style=flat-square&logo=github)](https:\u002F\u002Fgithub.com\u002FWindy3f3f3f3f\u002Fclaude-code-from-scratch)\n[![GitHub forks](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fforks\u002FWindy3f3f3f3f\u002Fclaude-code-from-scratch?style=flat-square&logo=github)](https:\u002F\u002Fgithub.com\u002FWindy3f3f3f3f\u002Fclaude-code-from-scratch\u002Ffork)\n[![License: MIT](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-blue.svg?style=flat-square)](.\u002FLICENSE)\n[![TypeScript](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTypeScript-3178C6?style=flat-square&logo=typescript&logoColor=white)](#)\n[![Python](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPython-3776AB?style=flat-square&logo=python&logoColor=white)](#)\n[![Lines of Code](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F~4300_lines-minimal-green?style=flat-square)](#)\n\n\u003Cbr\u002F>\n\n[**📘 在线阅读教程 →**](https:\u002F\u002Fwindy3f3f3f3f.github.io\u002Fclaude-code-from-scratch\u002F)\n&nbsp;&nbsp;|&nbsp;&nbsp;\n[📘 Read Tutorial (English) →](https:\u002F\u002Fwindy3f3f3f3f.github.io\u002Fclaude-code-from-scratch\u002F#\u002Fen\u002F)\n&nbsp;&nbsp;|&nbsp;&nbsp;\n[English](.\u002FREADME_EN.md)\n\n\u003Cbr\u002F>\n\n> 📖 **想深入了解原理？** 姊妹项目 **[How Claude Code Works](https:\u002F\u002Fgithub.com\u002FWindy3f3f3f3f\u002Fhow-claude-code-works)** — 12 篇专题，33 万字，从源码级别深度解析 Claude Code 架构\n\n\u003C\u002Fdiv>\n\n---\n\n**Claude Code 开源了 50 万行 TypeScript。读不动？**\n\n本项目用 **~4300 行代码**（TypeScript 和 Python 两个版本分别实现）复现了 Claude Code 的核心架构——Agent Loop、13 个工具（含并行执行 + 流式早期启动）、4 层上下文压缩、语义记忆召回、技能系统、多 Agent、MCP 集成……每一步都对照真实源码讲解\"它怎么做的 → 我们怎么简化的\"。\n\n这不是 demo，是一份**分步教程**——13 章内容，跟着动手写几千行代码，快速理解 Claude Code 这样最好用的 coding agent 的精髓。读完你就理解了 coding agent 的工作原理，无需啃那几十万行代码。\n\n\u003Cdiv align=\"center\">\n  \u003Cvideo src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002F4f6597e2-6ea3-45ae-8a6b-77662c4e9540\" width=\"100%\" autoplay loop muted playsinline>\u003C\u002Fvideo>\n\u003C\u002Fdiv>\n\n## 📖 分步教程\n\n13 章内容，分两个阶段——先构建一个可用的 Coding Agent，再逐步添加进阶能力。每章都贴真实代码 + Claude Code 源码对照：\n\n| 章节 | 内容 | 对应源码 |\n|------|------|---------|\n| **Phase 1: 构建一个可用的 Coding Agent** | | |\n| [1. Agent Loop](https:\u002F\u002Fwindy3f3f3f3f.github.io\u002Fclaude-code-from-scratch\u002F#\u002Fdocs\u002F01-agent-loop) | 核心循环：调用 LLM → 执行工具 → 重复 | `agent.ts` ↔ `query.ts` |\n| [2. 工具系统](https:\u002F\u002Fwindy3f3f3f3f.github.io\u002Fclaude-code-from-scratch\u002F#\u002Fdocs\u002F02-tools) | 13 个工具 + mtime 防护 + 延迟加载 | `tools.ts` ↔ `Tool.ts` + 66 工具 |\n| [3. System Prompt](https:\u002F\u002Fwindy3f3f3f3f.github.io\u002Fclaude-code-from-scratch\u002F#\u002Fdocs\u002F03-system-prompt) | 提示词工程 + @include 语法 | `prompt.ts` ↔ `prompts.ts` |\n| [4. CLI 与会话](https:\u002F\u002Fwindy3f3f3f3f.github.io\u002Fclaude-code-from-scratch\u002F#\u002Fdocs\u002F04-cli-session) | REPL、Ctrl+C、会话持久化 | `cli.ts` ↔ `cli.tsx` |\n| [5. 流式输出](https:\u002F\u002Fwindy3f3f3f3f.github.io\u002Fclaude-code-from-scratch\u002F#\u002Fdocs\u002F05-streaming) | 双后端 + 流式工具执行 + 并行执行 | `agent.ts` ↔ `api\u002Fclaude.ts` |\n| [6. 权限与安全](https:\u002F\u002Fwindy3f3f3f3f.github.io\u002Fclaude-code-from-scratch\u002F#\u002Fdocs\u002F06-permissions) | 5 模式 + 声明式规则 + 危险检测 | `tools.ts` ↔ `permissions\u002F` (52KB) |\n| [7. 上下文管理](https:\u002F\u002Fwindy3f3f3f3f.github.io\u002Fclaude-code-from-scratch\u002F#\u002Fdocs\u002F07-context) | 4 层压缩 + 大结果持久化 | `agent.ts` ↔ `compact\u002F` |\n| **Phase 2: 进阶能力** | | |\n| [8. 记忆系统](https:\u002F\u002Fwindy3f3f3f3f.github.io\u002Fclaude-code-from-scratch\u002F#\u002Fdocs\u002F08-memory) | 4 类型记忆 + 语义召回 + 异步预取 | `memory.ts` ↔ `memory.ts` |\n| [9. 技能系统](https:\u002F\u002Fwindy3f3f3f3f.github.io\u002Fclaude-code-from-scratch\u002F#\u002Fdocs\u002F09-skills) | 技能发现 + inline\u002Ffork 双模式 | `skills.ts` ↔ `SkillTool\u002F` |\n| [10. Plan Mode](https:\u002F\u002Fwindy3f3f3f3f.github.io\u002Fclaude-code-from-scratch\u002F#\u002Fdocs\u002F10-plan-mode) | 只读规划 + 4 选项审批工作流 | `agent.ts` ↔ `EnterPlanMode` |\n| [11. 多 Agent](https:\u002F\u002Fwindy3f3f3f3f.github.io\u002Fclaude-code-from-scratch\u002F#\u002Fdocs\u002F11-multi-agent) | Sub-Agent fork-return 多 Agent 架构 | `subagent.ts` ↔ `AgentTool\u002F` |\n| [12. MCP 集成](https:\u002F\u002Fwindy3f3f3f3f.github.io\u002Fclaude-code-from-scratch\u002F#\u002Fdocs\u002F12-mcp) | JSON-RPC over stdio 连接外部工具 | `mcp.ts` ↔ `mcpClient.ts` |\n| [13. 架构对比](https:\u002F\u002Fwindy3f3f3f3f.github.io\u002Fclaude-code-from-scratch\u002F#\u002Fdocs\u002F13-whats-next) | 完整对比 + 扩展方向 | 全局 |\n| [14. 功能测试](https:\u002F\u002Fwindy3f3f3f3f.github.io\u002Fclaude-code-from-scratch\u002F#\u002Fdocs\u002F14-testing) | 19 项手动测试覆盖全部功能 | `test\u002F` |\n\n## 🚀 快速开始\n\n**TypeScript 版**\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FWindy3f3f3f3f\u002Fclaude-code-from-scratch.git\ncd claude-code-from-scratch\nnpm install && npm run build\n```\n\n**Python 版**（需要 Python 3.11+，[详细说明](.\u002Fpython\u002FREADME.md)）\n\n```bash\ncd python\npip install -e .\nmini-claude-py          # 命令行入口（避免与 TS 版 mini-claude 冲突）\npython -m mini_claude   # 或用 python -m 方式运行\n```\n\n### 配置 API\n\n支持两种后端，通过环境变量自动识别：（支持自定义base url）\n\n**方式一：Anthropic 格式（推荐）**\n\n```bash\nexport ANTHROPIC_API_KEY=\"sk-ant-xxx\"\n# 可选：使用代理\nexport ANTHROPIC_BASE_URL=\"https:\u002F\u002Faihubmix.com\"\n```\n\n**方式二：OpenAI 兼容格式**\n\n```bash\nexport OPENAI_API_KEY=\"sk-xxx\"\nexport OPENAI_BASE_URL=\"https:\u002F\u002Fapi.openai.com\u002Fv1\"\n```\n\n默认模型为 `claude-opus-4-6`，可通过环境变量或命令行参数自定义：\n\n```bash\nexport MINI_CLAUDE_MODEL=\"claude-sonnet-4-6\"    # 环境变量方式\nnpm start -- --model gpt-4o                      # 命令行方式（优先级更高）\n```\n\n### 运行\n\n**TypeScript 版**\n\n```bash\nnpm start                    # 交互式 REPL 模式（推荐）\nnpm start -- --resume        # 恢复上次会话继续对话\nnpm start -- --yolo          # 跳过安全确认（危险命令自动执行）\nnpm start -- --plan          # Plan 模式：只分析不修改\nnpm start -- --accept-edits  # 自动批准文件编辑\nnpm start -- --dont-ask      # CI 模式：需确认的操作自动拒绝\nnpm start -- --max-cost 0.50 # 费用限制（美元）\nnpm start -- --max-turns 20  # 轮次限制\n```\n\n**Python 版**\n\n```bash\nmini-claude-py               # 交互式 REPL 模式（推荐）\nmini-claude-py --resume      # 恢复上次会话继续对话\nmini-claude-py --yolo        # 跳过安全确认\nmini-claude-py --plan        # Plan 模式：只分析不修改\nmini-claude-py --accept-edits # 自动批准文件编辑\nmini-claude-py --dont-ask    # CI 模式：需确认的操作自动拒绝\nmini-claude-py --max-cost 0.50 # 费用限制（美元）\nmini-claude-py --max-turns 20  # 轮次限制\n```\n\n全局安装后可在任意目录使用：\n\n**TypeScript 版**\n\n```bash\nnpm link                     # 全局安装\ncd ~\u002Fyour-project\nmini-claude                  # 直接启动\n```\n\n**Python 版**\n\n```bash\ncd python\npip install -e .             # 全局安装（editable 模式）\ncd ~\u002Fyour-project\nmini-claude-py               # 直接启动\n```\n\n### REPL 命令\n\n| 命令 | 功能 |\n|------|------|\n| `\u002Fclear` | 清空对话历史 |\n| `\u002Fcost` | 显示累计 token 用量和费用估算 |\n| `\u002Fcompact` | 手动触发对话压缩 |\n| `\u002Fmemory` | 列出所有已保存的记忆 |\n| `\u002Fskills` | 列出可用的技能 |\n| `\u002F\u003Cskill>` | 调用已注册的技能（如 `\u002Fcommit`） |\n\n> 详见 [CLI 与会话](https:\u002F\u002Fwindy3f3f3f3f.github.io\u002Fclaude-code-from-scratch\u002F#\u002Fdocs\u002F04-cli-session) 和 [功能测试](https:\u002F\u002Fwindy3f3f3f3f.github.io\u002Fclaude-code-from-scratch\u002F#\u002Fdocs\u002F14-testing)\n\n## ⚖️ 与 Claude Code 的对比\n\n| 维度 | Claude Code | Mini Claude Code |\n|------|------------|-----------------|\n| 定位 | 生产级编程智能体 | 教学 \u002F 最小可用实现 |\n| 工具数量 | 66+ 内置工具 | 13 个工具（6 核心 + web_fetch + tool_search + skill + agent + plan mode） |\n| 工具执行 | 并发 + streaming 早期启动 | 并行执行 + streaming 早期启动 |\n| 上下文管理 | 4 级压缩流水线 | 4 层压缩 + 大结果持久化（>30KB） |\n| 权限系统 | 7 层 + AST 分析 | 5 种模式 + 声明式规则 + 正则检测 |\n| 编辑验证 | 14 步流水线 | 引号容错 + 唯一性 + mtime 防护 + diff 输出 |\n| 记忆系统 | 4 类型 + 语义召回 | 4 类型 + 语义召回 + 异步预取 |\n| 技能系统 | 6 源 + inline\u002Ffork | 2 源 + inline\u002Ffork |\n| 多 Agent | Sub-Agent + Coordinator + Swarm | Sub-Agent（3 内置 + 自定义 Agent） |\n| MCP 集成 | mcpClient.ts + 动态工具发现 | McpManager + JSON-RPC over stdio |\n| 预算控制 | USD\u002F轮次\u002Fabort 三维 | USD + 轮次限制 |\n| 代码量 | 50 万+ 行 | ~4300 行（TS）\u002F ~3800 行（Python） |\n\n## ⚡ 核心能力\n\n- **Agent 循环**：自动调用工具、处理结果、持续迭代，直到任务完成\n- **13 个工具**：读写编辑文件（mtime 防护）、搜索、Shell、WebFetch、ToolSearch（延迟加载）、技能、子 Agent、Plan Mode\n- **流式输出**：逐字实时显示，Anthropic + OpenAI 双后端，streaming 工具早期执行\n- **并行工具执行**：只读工具（read_file、grep_search 等）自动并发，2-3x 加速\n- **4 层上下文压缩**：budget 截断 → stale snip → microcompact → auto-compact + 大结果持久化（>30KB 写磁盘）\n- **权限系统**：5 种模式 + `.claude\u002Fsettings.json` 声明式 allow\u002Fdeny 规则 + 16 个危险命令正则\n- **记忆系统**：4 类型记忆 + 语义召回（sideQuery 调模型选择相关记忆）+ 异步预取\n- **技能系统**：`.claude\u002Fskills\u002F` 目录加载，支持 inline 注入和 fork 子 Agent 两种执行模式\n- **多 Agent**：Sub-Agent fork-return 模式（3 内置类型 + `.claude\u002Fagents\u002F` 自定义类型）\n- **MCP 集成**：JSON-RPC over stdio 连接外部工具服务器，动态工具发现与调用转发\n- **System Prompt**：@include 语法递归引入、.claude\u002Frules\u002F 自动加载、模板变量替换\n- **Extended Thinking**：支持 Anthropic 扩展思考（`--thinking`），adaptive\u002Fenabled\u002Fdisabled 三模式\n- **预算控制**：`--max-cost` 费用限制 + `--max-turns` 轮次限制，超限自动停止\n- **会话持久化**：自动保存对话，`--resume` 恢复上次会话\n- **跨平台**：Windows \u002F macOS \u002F Linux，自动检测 shell（PowerShell \u002F bash \u002F zsh）\n- **错误恢复**：API 限流\u002F过载时指数退避 + 随机抖动重试（最多 3 次），Ctrl+C 优雅中断\n\n## 📁 项目结构\n\n```\nsrc\u002F                # TypeScript 版\n├── agent.ts        # Agent 循环：流式、并行执行、4 层压缩、预算   (1501 行)\n├── tools.ts        # 工具：13 工具 + mtime 防护 + 延迟加载       (858 行)\n├── cli.ts          # CLI 入口：参数解析、REPL、预算 flags         (371 行)\n├── memory.ts       # 记忆系统：4 类型 + 语义召回 + 异步预取       (376 行)\n├── mcp.ts          # MCP 客户端：JSON-RPC over stdio             (266 行)\n├── prompt.ts       # System Prompt：@include + 模板 + 注入       (230 行)\n├── ui.ts           # 终端输出：彩色显示、格式化、子 Agent 显示    (211 行)\n├── subagent.ts     # 子 Agent：3 内置 + 自定义 Agent 发现         (199 行)\n├── skills.ts       # 技能系统：目录发现 + inline\u002Ffork 双模式      (175 行)\n├── session.ts      # 会话持久化：保存\u002F恢复\u002F列表                   (63 行)\n├── frontmatter.ts  # 共享 YAML frontmatter 解析器                (41 行)\n                                                    总计: ~4291 行\n\npython\u002F             # Python 版（功能一致）\n├── mini_claude\u002F\n│   ├── agent.py, tools.py, __main__.py, ui.py, prompt.py,\n│   ├── session.py, memory.py, skills.py, subagent.py,\n│   ├── mcp_client.py, frontmatter.py\n│   └── system_prompt.md\n└── pyproject.toml                                  总计: ~3811 行\n```\n\n## 🏗️ 架构图\n\n```\n用户输入\n  │\n  ▼\n┌─────────────────────────────────────┐\n│          Agent Loop                 │\n│                                     │\n│  消息历史 → API (流式) → 实时输出   │\n│       ▲                   │         │\n│       │              ┌────┴───┐     │\n│       │              │文本输出│     │\n│       │              │工具调用│     │\n│       │              └────┬───┘     │\n│       │                   │         │\n│       │   ┌───────┐ ┌────▼───┐     │\n│       │   │截断保护│←│工具执行│     │\n│       │   └───────┘ └────┬───┘     │\n│       │                   │         │\n│       │   ┌───────────────▼───┐     │\n│       └───│Token 追踪 + 压缩 │     │\n│           └───────────────────┘     │\n└─────────────────────────────────────┘\n  │\n  ▼\n任务完成 → 自动保存会话\n```\n\n## 🔗 相关项目\n\n- **[how-claude-code-works](https:\u002F\u002Fgithub.com\u002FWindy3f3f3f3f\u002Fhow-claude-code-works)** — Claude Code 源码架构深度解析（12 篇专题，33 万字）\n\n## 🤝 贡献者\n\n| \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002FWindy3f3f3f3f.png\" width=\"60\" \u002F> | \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fdavidweidawang.png\" width=\"60\" \u002F> | \u003Cimg src=\".\u002Fassets\u002Fkaibo.jpg\" width=\"60\" \u002F> |\n|:---:|:---:|:---:|\n| [@Windy3f3f3f3f](https:\u002F\u002Fgithub.com\u002FWindy3f3f3f3f) | [@davidweidawang](https:\u002F\u002Fgithub.com\u002Fdavidweidawang) | [Kaibo Huang](https:\u002F\u002Fscholar.google.com\u002Fcitations?user=C7B5X5IAAAAJ&hl=zh-CN) |\n\n## 🙏 致谢\n\n感谢 [LINUX DO](https:\u002F\u002Flinux.do\u002F) 社区的支持与讨论。\n\n## 💬 更多交流\n\n\u003Cdiv align=\"center\">\n\n**加入 AI Agent 工坊 交流群**\n\n\u003Cimg src=\".\u002Fassets\u002Fqq.jpg\" width=\"280\" alt=\"QQ 群二维码\" \u002F>\n\nQQ 群号：**1090526244**\n\n\u003C\u002Fdiv>\n\n## 📈 Star History\n\n\u003Cdiv align=\"center\">\n\u003Cpicture>\n  \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=Windy3f3f3f3f\u002Fclaude-code-from-scratch&type=Date&theme=dark\" \u002F>\n  \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=Windy3f3f3f3f\u002Fclaude-code-from-scratch&type=Date\" \u002F>\n  \u003Cimg alt=\"Star History Chart\" src=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=Windy3f3f3f3f\u002Fclaude-code-from-scratch&type=Date\" width=\"600\" \u002F>\n\u003C\u002Fpicture>\n\u003C\u002Fdiv>\n\n## 📄 License\n\nMIT\n","Claude Code From Scratch 项目旨在通过约4300行TypeScript和Python代码从零复现Claude Code的核心架构，帮助开发者快速理解coding agent的工作原理。该项目提供11章分步教程，涵盖核心循环、工具系统、提示词工程、CLI与会话管理、流式输出、权限与安全以及上下文管理等功能模块，并对照真实源码讲解每一步的实现细节。适合希望深入了解AI coding agent内部机制而不愿直接阅读大量原始代码的技术爱好者和开发者使用。",2,"2026-06-11 03:49:47","high_star"]