|
| 1 | +<div align="center"> |
| 2 | + |
| 3 | +<img src="./public/og.svg" alt="Coding CLI Guide" width="720" /> |
| 4 | + |
| 5 | +<br/><br/> |
| 6 | + |
1 | 7 | # Coding CLI Guide |
2 | 8 |
|
3 | | -Gemini CLI 架构交互式学习指南,帮助开发者深入理解 Gemini CLI 的内部实现与 AI 工具交互模式。 |
| 9 | +**AI Coding CLI 架构交互式学习指南**<br/> |
| 10 | +深入拆解 Gemini CLI 内部实现,从启动链路到工具调度,从 Agent Loop 到安全沙箱 |
| 11 | + |
| 12 | +<br/> |
| 13 | + |
| 14 | +[](https://tt-a1i.github.io/coding-cli-guide/) |
| 15 | + |
| 16 | +<br/> |
| 17 | + |
| 18 | +<img src="https://img.shields.io/badge/React-19-61DAFB?style=flat-square&logo=react&logoColor=black" alt="React 19"/> |
| 19 | +<img src="https://img.shields.io/badge/TypeScript-5.9-3178C6?style=flat-square&logo=typescript&logoColor=white" alt="TypeScript"/> |
| 20 | +<img src="https://img.shields.io/badge/Vite-7-646CFF?style=flat-square&logo=vite&logoColor=white" alt="Vite 7"/> |
| 21 | +<img src="https://img.shields.io/badge/Tailwind_CSS-4-06B6D4?style=flat-square&logo=tailwindcss&logoColor=white" alt="Tailwind CSS 4"/> |
| 22 | +<img src="https://img.shields.io/badge/Pages-158+-22c55e?style=flat-square" alt="158+ pages"/> |
| 23 | +<img src="https://img.shields.io/badge/Animations-120+-a855f7?style=flat-square" alt="120+ animations"/> |
| 24 | + |
| 25 | +</div> |
| 26 | + |
| 27 | +<br/> |
| 28 | + |
| 29 | +--- |
| 30 | + |
| 31 | +## Why |
| 32 | + |
| 33 | +AI Coding CLI(如 Gemini CLI、Claude Code、Qwen Code)的源码动辄数万行,直接阅读容易迷失。本项目将 **Gemini CLI** 的核心架构提炼为 **158 个交互式页面**,配合 **Mermaid 流程图** 和 **120+ 步进动画**,让你在浏览器中就能直观理解每一个内部机制。 |
| 34 | + |
| 35 | +> 可分享 · 可检索 · 可深链 — 每个知识点都有独立 URL,方便团队内传阅与讨论。 |
| 36 | +
|
| 37 | +--- |
| 38 | + |
| 39 | +## Features |
| 40 | + |
| 41 | +<table> |
| 42 | +<tr> |
| 43 | +<td width="50%"> |
| 44 | + |
| 45 | +### 📖 全景式架构拆解 |
| 46 | +从 CLI 启动的第一行代码,到用户输入→模型调用→工具执行→响应渲染的完整请求生命周期,每一步都有对应的可视化页面。 |
| 47 | + |
| 48 | +</td> |
| 49 | +<td width="50%"> |
| 50 | + |
| 51 | +### 🎬 120+ 步进动画 |
| 52 | +不是静态文档——关键流程(Agent Loop、工具调度、MCP 握手、Token 计算等)都配有可交互的逐步动画演示。 |
| 53 | + |
| 54 | +</td> |
| 55 | +</tr> |
| 56 | +<tr> |
| 57 | +<td> |
| 58 | + |
| 59 | +### 🔧 深入工具系统 |
| 60 | +工具注册、Schema 定义、并行调度、权限审批、结果缓存……完整覆盖从 `ToolReference` 到 `ToolScheduler` 的每个环节。 |
| 61 | + |
| 62 | +</td> |
| 63 | +<td> |
| 64 | + |
| 65 | +### 🛡️ 安全机制全解 |
| 66 | +审批模式、信任文件夹、沙箱隔离(Docker / Seatbelt)、Git Checkpointing、循环检测、命令注入检测——安全边界一览无余。 |
| 67 | + |
| 68 | +</td> |
| 69 | +</tr> |
| 70 | +<tr> |
| 71 | +<td> |
| 72 | + |
| 73 | +### 🔌 扩展与集成 |
| 74 | +Agent 框架、Subagent 系统、MCP 协议集成、IDE 扩展(VS Code / Cursor / Zed)、Prompt 注册表……了解 CLI 如何与外部世界交互。 |
| 75 | + |
| 76 | +</td> |
| 77 | +<td> |
4 | 78 |
|
5 | | -## 预览 |
| 79 | +### 🧭 多种学习路径 |
| 80 | +提供「快速入门」「端到端走读」「学习路径指南」等入口,无论你是想快速了解还是深入研究,都能找到合适的阅读路线。 |
| 81 | + |
| 82 | +</td> |
| 83 | +</tr> |
| 84 | +</table> |
| 85 | + |
| 86 | +--- |
| 87 | + |
| 88 | +## Content Map |
| 89 | + |
| 90 | +``` |
| 91 | +📂 快速入门 Start Here · 学习路径 · 架构概览 · 端到端走读 · 术语表 |
| 92 | +⚙️ 核心机制 启动链路 · 请求生命周期 · 交互主循环 · Turn 状态机 · Token 体系 |
| 93 | + 会话持久化 · 服务层架构 · Prompt 构建 · 流式响应 · 多厂商兼容层 |
| 94 | +🔧 工具系统 工具参考 · 开发指南 · 调度详解 · 文件发现 · 工具架构 · 执行流程 |
| 95 | +💻 命令系统 斜杠命令 · 自定义命令 · @命令 · Shell 模式 · Prompt 处理器 · 记忆系统 |
| 96 | +🔌 扩展集成 Agent 框架 · Agent Skills · Subagent · MCP 集成 · IDE 集成 · Zed ACP |
| 97 | +🎯 事件与策略 Hook 系统 · Policy 引擎 · 消息总线 · 模型路由 · 模型可用性 |
| 98 | +🛡️ 安全可靠 审批模式 · 信任机制 · 检查点恢复 · 沙箱系统 · 循环检测 · 错误恢复 |
| 99 | +▶️ 运行模式 非交互模式 · 聊天压缩 · 输出格式化 · 会话恢复 · 会话录制 |
| 100 | +🎨 UI 与观测 渲染层 · 状态管理 · 组件库 · React Hooks · 键盘绑定 · 主题 · 遥测 |
| 101 | +🎬 动画演示 50+ 核心流程动画 + 60+ 内部机制动画 |
| 102 | +📚 附录 配置系统 · 认证流程 · 模型配置 · 设计权衡 · 并发模式 · 错误恢复模式 |
| 103 | +``` |
| 104 | + |
| 105 | +--- |
| 106 | + |
| 107 | +## Quick Start |
| 108 | + |
| 109 | +### 环境要求 |
| 110 | + |
| 111 | +- **Node.js** >= 18 |
| 112 | +- **npm** >= 9 |
| 113 | + |
| 114 | +### 本地运行 |
6 | 115 |
|
7 | 116 | ```bash |
| 117 | +# 克隆 |
| 118 | +git clone https://github.com/tt-a1i/coding-cli-guide.git |
| 119 | +cd coding-cli-guide |
| 120 | + |
| 121 | +# 安装依赖 |
8 | 122 | npm install |
| 123 | + |
| 124 | +# 启动开发服务器 |
9 | 125 | npm run dev |
10 | 126 | ``` |
11 | 127 |
|
12 | | -访问 http://localhost:5173 |
| 128 | +浏览器访问 **http://localhost:5173** |
13 | 129 |
|
14 | | -## 技术栈 |
| 130 | +### 或者直接在线体验 |
15 | 131 |
|
16 | | -- React 19 + TypeScript |
17 | | -- Vite 7 |
18 | | -- Tailwind CSS 4 |
19 | | -- Mermaid(流程图渲染) |
| 132 | +👉 **https://tt-a1i.github.io/coding-cli-guide/** |
20 | 133 |
|
21 | | -## 内容模块 |
| 134 | +--- |
22 | 135 |
|
23 | | -### 核心架构 |
24 | | -- **启动流程** - CLI 初始化与启动链 |
25 | | -- **请求生命周期** - 用户输入到响应的完整流程 |
26 | | -- **交互循环** - Agent Loop 核心机制 |
27 | | -- **内存管理** - 上下文窗口与对话历史 |
| 136 | +## Tech Stack |
28 | 137 |
|
29 | | -### AI 交互 |
30 | | -- **Gemini Chat 核心** - LLM 调用与响应处理 |
31 | | -- **System Prompt 架构** - 系统提示词构建 |
32 | | -- **内容生成器** - 流式输出与 Tool Call 解析 |
33 | | -- **VLM 切换** - 视觉模型自动切换逻辑 |
| 138 | +| 分类 | 技术 | |
| 139 | +|------|------| |
| 140 | +| **框架** | React 19 (Hooks) | |
| 141 | +| **语言** | TypeScript 5.9 | |
| 142 | +| **构建** | Vite 7 | |
| 143 | +| **样式** | Tailwind CSS 4 | |
| 144 | +| **流程图** | Mermaid | |
| 145 | +| **代码高亮** | Prism.js | |
| 146 | +| **部署** | GitHub Pages (GitHub Actions) | |
34 | 147 |
|
35 | | -### 工具系统 |
36 | | -- **工具参考** - 内置工具一览 |
37 | | -- **工具调度器** - 并行执行与依赖管理 |
38 | | -- **工具架构** - Tool Schema 与执行流程 |
39 | | -- **MCP 集成** - Model Context Protocol 服务器 |
| 148 | +--- |
40 | 149 |
|
41 | | -### 命令系统 |
42 | | -- **斜杠命令** - /help, /clear 等内置命令 |
43 | | -- **自定义命令** - 用户自定义 Slash Commands |
44 | | -- **@ 命令** - @file, @web 等上下文注入 |
45 | | -- **Shell 模式** - 交互式与非交互式 Shell |
| 150 | +## Development |
46 | 151 |
|
47 | | -### 安全与扩展 |
48 | | -- **审批模式** - 工具执行权限控制 |
49 | | -- **可信文件夹** - 目录级别权限管理 |
50 | | -- **沙箱系统** - Docker/Seatbelt 隔离执行 |
51 | | -- **Checkpointing** - Git 快照与回滚 |
| 152 | +```bash |
| 153 | +npm run dev # 启动开发服务器 |
| 154 | +npm run build # 构建生产版本(含 TypeScript 类型检查) |
| 155 | +npm run preview # 预览生产构建 |
| 156 | +npm run lint # 代码检查 |
| 157 | +``` |
52 | 158 |
|
53 | | -### 其他 |
54 | | -- **IDE 集成** - VS Code / Cursor 扩展 |
55 | | -- **Subagent 系统** - 子代理任务委派 |
56 | | -- **遥测系统** - OpenTelemetry 集成 |
57 | | -- **主题系统** - 终端主题配置 |
| 159 | +--- |
58 | 160 |
|
59 | | -## 开发 |
| 161 | +## Project Structure |
60 | 162 |
|
61 | | -```bash |
62 | | -# 开发模式 |
63 | | -npm run dev |
| 163 | +``` |
| 164 | +src/ |
| 165 | +├── pages/ # 158 个内容页面(含 120+ 动画页) |
| 166 | +│ └── animations/ # 动画辅助组件 |
| 167 | +├── components/ # 通用 UI 组件 |
| 168 | +│ ├── MermaidDiagram # Mermaid 流程图渲染 |
| 169 | +│ ├── CodeBlock # 代码块 + 语法高亮 |
| 170 | +│ ├── FlowDiagram # 流程图组件 |
| 171 | +│ ├── Tabs # 标签页切换 |
| 172 | +│ └── ... |
| 173 | +├── contexts/ # React Context |
| 174 | +├── nav.ts # 导航树定义(13 个分组 · 160 个条目) |
| 175 | +├── types/ # TypeScript 类型 |
| 176 | +└── utils/ # 工具函数 |
| 177 | +``` |
64 | 178 |
|
65 | | -# 构建 |
66 | | -npm run build |
| 179 | +--- |
67 | 180 |
|
68 | | -# 预览构建结果 |
69 | | -npm run preview |
| 181 | +## Related Projects |
70 | 182 |
|
71 | | -# Lint |
72 | | -npm run lint |
73 | | -``` |
| 183 | +| 项目 | 说明 | |
| 184 | +|------|------| |
| 185 | +| [Gemini CLI](https://github.com/google-gemini/gemini-cli) | Google 官方 Gemini CLI — 本指南的分析对象 | |
| 186 | +| [Qwen Code](https://github.com/QwenLM/qwen-code) | 基于 Gemini CLI 的衍生实现,可对照阅读 | |
| 187 | + |
| 188 | +--- |
| 189 | + |
| 190 | +## Contributing |
| 191 | + |
| 192 | +欢迎提交 Issue 和 Pull Request!无论是纠正错误、补充内容,还是改进动画,都非常感谢。 |
| 193 | + |
| 194 | +--- |
| 195 | + |
| 196 | +## License |
74 | 197 |
|
75 | | -## 相关项目 |
| 198 | +[MIT](./LICENSE.md) |
76 | 199 |
|
77 | | -- [Gemini CLI](https://github.com/google-gemini/gemini-cli) - 上游实现 |
78 | | -- [Innies CLI / Qwen Code](https://github.com/QwenLM/qwen-code) - 基于 Gemini CLI 的衍生实现(可对照阅读) |
| 200 | +<div align="center"> |
| 201 | +<br/> |
| 202 | +<sub>Built with React + TypeScript + Tailwind CSS + Mermaid</sub> |
| 203 | +</div> |
0 commit comments