T3 Code 源码拆解

T3 Code 源码拆解

从一次 Agent 请求出发,理解 T3 Code 0.0.33 的完整系统设计。

T3 Code 不是另一个模型,也不是把某个 CLI 套进网页。它把已经安装在开发者机器上的 Codex、Claude Code、Cursor、Grok Build 与 OpenCode 统一成一个可以从 Web、桌面和手机控制的 Agent harness control surface。真正有价值的工程问题因此不在“怎样画一个聊天框”,而在:

  • 多个语义并不相同的 Provider,怎样被压进稳定的会话协议;
  • 流式输出、审批、工具调用、计划和错误,怎样在断线后仍可恢复;
  • Web、Electron、React Native 怎样共享状态语义,却保留各自的平台能力;
  • 本机 Agent 怎样被安全地暴露给远端设备,而不把长期密钥塞进 WebSocket URL;
  • Git 工作区怎样做可回退检查点,又不污染用户正在使用的 index。

这套文档以本地 t3code-main 源码快照为依据。快照中的核心包版本为 0.0.33,共有 95 个 RPC 定义、40 轮数据库迁移、5 类内置 Provider,TypeScript/TSX 源文件约 2,300 个; 统计用于建立量级感,不把生成文件、依赖镜像和测试夹具当作架构结论。

源码基线说明

分析输入是一个不含 .git 元数据的本地源码快照,因此无法给出精确 commit SHA。 文中的 GitHub 链接指向 pingdotgg/t3code 主分支,便于继续阅读,但上游代码可能随时间变化。

一张图先看懂

T3 Code 的稳定核心与多端外壳
remote authenticated tunnel 开发者 Web / Desktop / Mobile client-runtime Effect RPC over WebSocket 本机 T3 Server Orchestration Engine SQLite event log Command / Checkpoint Reactors Provider Registry Codex Claude Cursor / Grok via ACP OpenCode SDK Read projections Git / Checkpoints Terminal / Preview T3 Connect / SSH / Tailscale

图里最关键的一刀,是把系统分成两侧:

  1. 执行侧在开发者机器上。Server 持有 Agent 子进程、仓库、终端、Git 凭据和本地文件权限。
  2. 控制侧可以在任意设备上。客户端只通过有权限范围的 RPC 读取投影、发送命令和订阅事件。

这个边界让“手机控制本机 Agent”成为网络与状态同步问题,而不是把完整开发环境搬进云端。

你会学到什么

本书的约定

每一章都沿用相同的拆解顺序:

层次要回答的问题
是什么组件在整个系统中的职责与边界是什么?
怎么做入口文件、核心类型、状态转移和数据路径是什么?
为什么这个设计解决了哪个约束,付出了什么代价?
失败时断线、重复命令、进程崩溃、乱序事件时发生什么?
可迁移经验哪些模式能用于其他本地优先、实时或多 Provider 产品?

推荐先读阅读地图,再按你的目标选择路线。

原始资料

本文档是独立的源码研究笔记,不是 T3 Tools 官方文档;产品名和源码版权归各自权利人所有。