Skip to content

UI 与交互层概览

Claude Code 的 UI 基于 React 19 + Ink(自定义 fork) 构建,是一个完整的终端 UI 框架。

技术栈

技术版本用途
React19组件模型与状态管理
Ink自定义 fork (~96 文件)终端渲染引擎
Yoga Layout原生 N-API 绑定Flexbox 布局引擎
React Compiler编译时优化自动 memo 与缓存

UI 架构

┌───────────────────────────────────────────────────┐
│                    App (根组件)                     │
├───────────────────────────────────────────────────┤
│  KeybindingProvider → ModalProvider → ...Providers │
│  ┌─────────────────────────────────────────────┐  │
│  │              REPL Screen                     │  │
│  │  ┌───────┬──────────────┬──────────────┐   │  │
│  │  │Status │  Messages     │  CompSprite  │   │  │
│  │  │Line   │  ┌──────────┐│              │   │  │
│  │  │       │  │ UserMsg  ││              │   │  │
│  │  │       │  │ AIMsg    ││              │   │  │
│  │  │       │  │ ToolUse  ││              │   │  │
│  │  │       │  │ ToolRes  ││              │   │  │
│  │  │       │  └──────────┘│              │   │  │
│  │  │       │              │              │   │  │
│  │  ├───────┴──────────────┴──────────────┤   │  │
│  │  │          Prompt Input               │   │  │
│  │  │  ┌──────────────────────────────┐   │   │  │
│  │  │  │  TextInput (多行编辑器)       │   │   │  │
│  │  │  └──────────────────────────────┘   │   │  │
│  │  │          Footer Bar                 │   │  │
│  │  └────────────────────────────────────┘   │  │
│  └─────────────────────────────────────────────┘  │
└───────────────────────────────────────────────────┘

组件数量

类别文件数说明
components/389UI 组件库
hooks/104React Hooks
screens/3主屏幕 (REPL, Doctor, ResumeConversation)
keybindings/14快捷键系统
vim/5Vim 模式引擎
buddy/6虚拟伙伴系统
ink/96自定义 Ink fork

渲染管道

React render()
  → Virtual DOM diff
    → Yoga Layout (Flexbox 计算)
      → Terminal Output (ANSI 序列)
        → stdout

文档导航

文档涵盖内容
Ink 渲染引擎自定义 Ink fork、Yoga 布局、渲染管道
组件库389 个组件详解
Hooks 系统104 Hooks 分类
快捷键系统14 文件快捷键引擎
Vim 模式完整 Vim 状态机
设计系统主题、颜色、输出样式
语音模式语音输入系统
Buddy 伙伴ASCII 虚拟宠物