tech stack

Claude Code 的技术选型体现了对性能、开发体验和生态系统的综合考量。

核心技术

运行时环境

Node.js 18+

  • 原因:成熟的生态系统,广泛的平台支持

  • 特性:ESM 模块、Top-level await、Fetch API

  • 限制:最低版本 18.0.0

Bun(构建工具)

  • 用途:打包、转译、依赖管理

  • 优势:极快的启动速度,内置 TypeScript 支持

  • 配置:bunfig.toml

编程语言

TypeScript 5.x

  • 严格模式:strict: true

  • 目标:ES2022

  • 模块:ESNext

  • 特性:类型推导、泛型、装饰器

类型验证:Zod 3.x

UI 框架

React 19

  • 特性:Hooks、Suspense、并发渲染

  • 用途:组件化 TUI 开发

  • 优势:声明式、可测试、生态丰富

Ink 5.x

特点:

  • 将 React 渲染到终端

  • 支持 Flexbox 布局

  • 键盘事件处理

依赖分析

核心依赖

AI 相关

@anthropic-ai/sdk

  • 用途:调用 Claude API

  • 特性:流式响应、工具调用、消息管理

  • 版本:0.30.0+

@modelcontextprotocol/sdk

  • 用途:MCP 客户端实现

  • 特性:工具发现、资源管理、提示模板

  • 版本:1.0.0+

文件系统

chokidar

  • 用途:文件监听(Hooks 系统)

  • 特性:跨平台、高性能、递归监听

fast-glob

  • 用途:文件搜索和模式匹配

  • 特性:快速、支持 gitignore

fs-extra

  • 用途:增强的文件系统操作

  • 特性:Promise API、递归操作

代码分析

@babel/parser

  • 用途:JavaScript/TypeScript AST 解析

  • 应用:ReadCodeTool 的代码结构分析

typescript

  • 用途:TypeScript 编译和类型检查

  • 应用:GetDiagnostics 工具

网络通信

ws(WebSocket)

  • 用途:Bridge 模式的双向通信

  • 特性:低延迟、全双工

eventsource

  • 用途:SSE (Server-Sent Events) 客户端

  • 应用:远程控制的备用传输

工具库

lodash

  • 用途:工具函数

  • 常用:debounce, throttle, cloneDeep

date-fns

  • 用途:日期处理

  • 应用:时间戳格式化、相对时间

chalk

  • 用途:终端颜色

  • 应用:错误高亮、状态指示

开发工具

构建配置

Bun

TypeScript 配置

代码质量

ESLint

  • 规则:Airbnb + TypeScript

  • 插件:React Hooks、Import

Prettier

  • 配置:单引号、无分号、2 空格缩进

性能考量

为什么选择 Bun?

相比 Webpack/Rollup:

  • 启动速度快 10-100 倍

  • 内置 TypeScript 支持

  • 更小的打包体积

为什么使用 Zod?

相比 TypeScript 类型:

  • 运行时验证

  • 自动生成错误消息

  • 类型推导

相比 JSON Schema:

  • 更好的 TypeScript 集成

  • 更简洁的 API

  • 更小的体积

为什么选择 Ink?

相比原生终端 API:

  • 声明式 UI

  • 组件复用

  • 状态管理

相比 blessed/blessed-contrib:

  • 现代化的 React 生态

  • 更好的类型支持

  • 活跃的维护

版本策略

依赖版本管理

  • 固定主版本 - 核心依赖(React, Ink)

  • 允许小版本更新 - 工具库(lodash, date-fns)

  • 锁定版本 - 安全相关(jsonwebtoken, ws)

向后兼容

  • 使用 feature flags 控制新功能

  • 保持 API 稳定性

  • 提供迁移指南

平台支持

操作系统

  • macOS - 主要开发和测试平台

  • Linux - 完整支持

  • Windows - 通过 WSL 或 PowerShell

终端兼容性

  • iTerm2 - 最佳体验

  • Terminal.app - 完整支持

  • Windows Terminal - 完整支持

  • VS Code 终端 - 完整支持

Shell 支持

  • bash - 默认

  • zsh - 完整支持

  • fish - 基本支持

  • PowerShell - Windows 平台

未来技术方向

计划中的技术升级

  1. Rust 核心模块 - 性能关键路径

  2. WASM 插件 - 跨平台插件系统

  3. 本地模型支持 - Ollama 集成

  4. LSP 集成 - 更好的代码理解

实验性技术

  • Speculation - 推测性工具执行

  • Swarm Mode - 多 Agent 并行协作

  • Coordinator - 智能任务分解

下一步