Skip to content

Demo: mini-claude 构建指南

跟随教程逐章构建,最终得到一个与 Claude Code 架构一致的 AI 编程助手

Open in GitHub Codespaces

最终目标

demo/
├── main.ts                    # CLI 入口(Commander.js)
├── context.ts                 # 系统提示词构建器
├── query.ts                   # 查询循环(流式 + 工具调用)
├── Tool.ts                    # 工具接口与工厂
├── tools.ts                   # 工具注册表
├── types/                     # 类型系统 ← 第 1 章
├── tools/                     # 工具实现
│   ├── BashTool/
│   ├── FileReadTool/
│   ├── FileWriteTool/
│   ├── FileEditTool/
│   ├── GrepTool/
│   └── GlobTool/
├── services/
│   ├── api/claude.ts          # Anthropic SDK 封装
│   └── compact/compact.ts     # 上下文压缩
├── screens/REPL.tsx           # 终端 UI(Ink)
├── components/                # UI 组件
├── commands/                  # 斜杠命令
└── utils/                     # 工具函数

每章构建进度

新增模块完成后能力状态
1types/ 类型系统类型定义可编译
2Tool.ts + tools.ts工具接口与注册表
3services/api/ + context.ts流式 API 调用
4query.ts + utils/messages.ts多轮工具调用循环
5tools/BashToolFileReadToolGrepTool执行命令、读文件、搜索
6tools/FileWriteToolFileEditToolGlobTool完整文件操作
7utils/permissions.ts危险命令拦截
8screens/REPL.tsx + components/交互式终端 UI
9main.ts(Commander.js)完整 CLI 参数支持
10commands/ + compact 服务/help、/clear、/compact
11components/PermissionRequest.tsx交互式权限确认
12历史、重试、错误处理生产就绪

运行 Demo

bash
# 本地运行
cd demo
bun install
bun run main.ts

# 类型检查
bun run typecheck

架构对应关系

Demo 文件真实 Claude Code 文件
types/message.tssrc/types/message.ts
types/tool.tssrc/Tool.ts
types/permissions.tssrc/types/permissions.ts
Tool.tssrc/Tool.ts
tools.tssrc/tools/index.ts
query.tssrc/query.ts
context.tssrc/context.ts
services/api/claude.tssrc/services/claude.ts
screens/REPL.tsxsrc/screens/REPL.tsx
utils/permissions.tssrc/utils/permissions.ts