一天一个开源项目(第206篇):T3 Code - AI 编程 Agent 的统一控制台

引言

"If we ever go the wrong direction, we want you to have everything you need to fork."

这是"一天一个开源项目"系列的第 206 篇文章。今天带你了解的项目是 T3 Code

你的 AI 编程工作流大概是这样的:Claude Code 在终端里跑,Codex 开着另一个标签页,手边的手机完全插不上手。想从客厅的沙发上查看代码进度?打开笔记本,SSH 进服务器,再启动对应的 Agent......光是"看一眼"就要折腾五分钟。

T3 Code 解决的就是这个问题:给所有 AI 编程 Agent 提供一个统一的控制平面,手机、浏览器、桌面应用都可以作为控制界面,Agent 依然在你的机器上跑,你用的是自己的订阅,T3 Code 只负责"控制"这一件事。

21.4k Stars,MIT 协议,由打造了 T3 Stack 的 Ping 团队开发。

你将学到什么

  • T3 Code 的 Driver + Adapter 架构设计
  • 三个队列化工作线程如何解耦控制层和执行层
  • Branch-per-thread 工作流和 PR 自动生成机制
  • T3 Connect Relay 如何实现跨网络的远程访问
  • 如何接入五种不同的 AI 编程 Agent

前置知识

  • 用过至少一种 AI 编程工具(Claude Code、Cursor、Codex 等)
  • 了解基本的 Git 工作流
  • TypeScript 基础(能看懂接口定义)

项目背景

项目简介

T3 Code 定位自己为一个 "Agent 控制平面(control plane for coding agents)"

这个定位很重要------它不是又一个 AI 编程工具,而是现有 AI 编程工具的控制层。你已经有了 Claude Code 订阅,已经配置好了 Codex,T3 Code 在这之上加了一层统一界面,让这些 Agent 可以从任何设备被控制。

官方列出了三个核心主张:

  • Bring Your Own Subscription:不转售 API token,不设配额上限,用你自己的订阅
  • 多平台控制:iOS、Android、Web、Electron 桌面,任意一个都是完整的控制界面
  • 完全可 Fork:MIT 协议,代码完全开放,"如果我们走错了方向,你随时可以 fork 出去"

作者/团队介绍

  • 团队 : Ping (pingdotgg) --- T3 Stack 的创建者
  • T3 Stack: 由 Theo Browne 推广的 Next.js 全栈技术栈(tRPC + Prisma + Tailwind + NextAuth),是目前最受欢迎的 TypeScript 全栈方案之一
  • 官网 : t3.codes
  • 背景: 团队被 Codex desktop、Conductor、Cursor Glass 等工具启发,但认为这些工具都不够好,于是自己做了

项目数据

  • ⭐ GitHub Stars: 21,400+
  • 🍴 Forks: 5,200+
  • 📄 License: MIT
  • 💻 主要语言: TypeScript
  • 🌐 官网: t3.codes
  • 📦 安装: npx t3@latest

主要功能

核心作用

T3 Code 在 AI 编程 Agent 和开发者之间建立了一个独立的控制层:

css 复制代码
开发者设备(手机 / 浏览器 / 桌面应用)
    ↓ RPC over WebSocket / T3 Connect Relay
T3 Code 控制平面
    ↓ Driver + Adapter 协议
┌─────────────┬──────────┬──────────┬──────────┬──────────┐
│ Claude Code │  Codex   │ OpenCode │  Cursor  │   Grok   │
└─────────────┴──────────┴──────────┴──────────┴──────────┘
    ↑ 实际执行在本地机器,使用你自己的订阅

五个支持的 Agent(官方称为 "Harness"):

  • Claude Code --- claude auth login
  • Codex CLI --- codex login
  • OpenCode --- opencode auth
  • Cursor --- cursor-agent
  • Grok CLI --- grok login

使用场景

  1. 手机远程监控代码任务

    • 让 Claude Code 在机器上跑一个长任务,用手机随时查看进度、批准工具调用,不用守在电脑旁边。
  2. 多 Agent 并行管理

    • 一个界面里切换不同的 Agent,每个线程(Thread)独立管理,互不干扰。
  3. 标准化 PR 工作流

    • Agent 跑完任务,一键从当前线程分支创建 PR,标题和描述自动从 commit 历史生成,遵循项目 AGENTS.md 中定义的规范。
  4. 团队代码 Review

    • 直接在 T3 Code 里 checkout 同事的分支,内联编辑 PR 描述和评论,支持 GitHub、GitLab、Bitbucket。
  5. 跨网络远程开发

    • 通过 T3 Connect Relay,从公司外网连接家里的开发机,不需要配置 VPN 或端口转发。

快速开始

零安装体验(需要 Node.js 22.16+):

bash 复制代码
npx t3@latest

桌面应用安装:

bash 复制代码
# macOS
brew install t3code

# Windows
winget install t3code

# Arch Linux
yay -S t3code   # 通过 AUR

# 或从 GitHub Releases 下载对应平台的安装包

配置 Agent:

启动后,在设置界面添加已安装的 Agent。每个 Agent 使用各自的登录命令完成授权:

bash 复制代码
# Claude Code
claude auth login

# Codex
codex login

# OpenCode
opencode auth

# Grok
grok login

T3 Code 会检测到已认证的 Agent 并自动注册。

核心特性

1. Branch-per-Thread 工作流

每个对话线程(Thread)对应一个独立的 Git 分支,这是 T3 Code 的核心设计决策之一:

bash 复制代码
Thread #1 → branch: feature/add-auth-flow
Thread #2 → branch: fix/payment-bug
Thread #3 → branch: refactor/api-layer

线程和分支一一对应,Agent 的所有变更有明确的 Git 边界,不会互相污染。CheckpointReactor 负责管理工作区快照------出错可以直接回滚到上一个检查点。

2. 一键 PR 创建

css 复制代码
Agent 完成任务
    ↓
T3 Code 读取 commit 历史
    ↓
(如果有 AGENTS.md)遵循项目 PR 规范
    ↓
自动生成 PR 标题 + 描述 + Changelog
    ↓
支持:普通 PR / Draft PR / Stacked PR / Amended PR

支持 GitHub、GitLab、Bitbucket、Azure DevOps,且 Inline 编辑 PR 描述和评论(Azure DevOps 评论只读)。

3. 权限控制与工具调用审批

每次 Agent 执行工具调用(文件写入、命令执行等)前,T3 Code 提供审批界面。这对远程控制场景尤其重要------你可以在手机上看到 Agent 要做什么,决定是否允许,而不是让 Agent 在无监督状态下运行。

4. 远程访问(T3 Connect Relay)

通过内置的 T3 Connect Relay,实现跨网络连接:

  • 手机 → T3 Connect Relay → 家里的开发机
  • 不需要公网 IP,不需要端口转发
  • 指数退避重连(上限 16 秒,稳定 30 秒后重置),断线自动重连

5. 多平台原生体验

平台 安装方式
macOS Homebrew / DMG
Windows winget / 安装包
Linux AUR / DEB / 独立二进制
iOS App Store
Android Google Play
Web 浏览器直接访问

项目详细剖析

Driver + Adapter 架构

T3 Code 用 Driver + Adapter 模式实现对多个 AI Agent 的统一控制:

typescript 复制代码
// 每个 Provider 需要实现的 Driver 接口
interface ProviderDriver {
  driverKind: string;           // "claude" | "codex" | "opencode" | ...
  configSchema: ZodSchema;      // 这个 Provider 需要哪些配置
  create(config): ProviderAdapter; // 创建对应的 Adapter 实例
}

// Adapter 是和具体 Agent 通信的抽象层
// ClaudeDriver.ts → ClaudeAdapter.ts
// CodexDriver.ts  → CodexAdapter.ts
// OpenCodeDriver.ts → OpenCodeAdapter.ts
// ...

两个注册表分离关注点:

  • ProviderInstanceRegistry:管理已配置的 Provider 实例,按 ID 索引
  • ProviderAdapterRegistry:将实例 ID 解析为活跃的 Adapter 对象

ProviderService 在两者之上,按线程而非 Provider 实例路由操作------调用方不需要知道当前线程使用的是哪个 Agent,统一通过线程 ID 交互。

新增一个 Provider 只需要写 Driver + Adapter,然后在 BUILT_IN_DRIVERS 中注册------不需要修改 orchestration 层或客户端代码。

三个队列化工作线程

控制层和执行层通过三个后台工作线程完全解耦:

scss 复制代码
客户端(手机/浏览器)
    ↓ orchestration.dispatchCommand()
命令队列
    ↓
ProviderCommandReactor      ← 处理意图事件,向 Provider 发起实际调用
    ↓
Provider(Claude Code / Codex / ...)
    ↓ 流式输出
ProviderRuntimeIngestion    ← 消费 Provider 流,转换为内部命令
    ↓
CheckpointReactor           ← 管理工作区快照和回滚点
    ↓
orchestration.subscribeThread()
    ↓
客户端订阅(实时更新)

这个设计的关键:客户端永远不直接接触 Provider 。所有操作通过 orchestration.dispatchCommand 发起,结果通过 orchestration.subscribeThread 订阅。网络抖动时客户端只需重连订阅,不影响服务端正在运行的任务。

连接运行时:RPC + 指数退避

连接运行时(Connection Runtime)处理多种目标类型:

目标类型 说明
Primary 直连本地服务器
Bearer Token 认证连接
Relay T3 Connect 中继(跨网络)
SSH SSH 隧道连接

RPC Session 建立流程:preparing → opening → synchronizing。Session 不自带重试------重试逻辑完全在 Supervisor 层:

  • 离线:释放当前 Session,等待,不消耗重试次数
  • 瞬时错误:指数退避,上限 16 秒
  • 稳定 30 秒:重置累积退避
  • 认证/配置错误:阻塞等待外部输入变化

OpenCode 的特殊处理

五个 Provider 中,OpenCode 的基础设施最复杂:

  • 每个实例维护一个懒加载本地服务器,最后一个借用方释放后 30 秒自动关闭
  • 每次连接都需要通过认证的 /global/health 检查(版本要求 ≥ 1.14.19)
  • 每个线程维护一个独立的服务器实例,避免共享目录时的 MCP 连接冲突
  • T3 Code 不管理外部 OpenCode 进程------"原生配置变更可能需要在外部重新加载"

这种"更复杂的 Provider 需要更复杂的 Adapter"的模式,正是 Driver + Adapter 分层的价值所在。

与 Cursor Glass / Conductor 的定位差异

T3 Code 的 README 提到团队被 Codex desktop、Conductor、Cursor Glass 启发,但这些工具都不满足他们的标准:

工具 定位 局限
Cursor Glass Cursor 的独立悬浮窗 绑定单一 Agent
Conductor Agent 编排层 闭源,无法 Fork
Codex desktop Codex 的桌面客户端 绑定单一 Agent
T3 Code 多 Agent 控制平面 早期阶段,功能仍在迭代

T3 Code 的差异化在三点:多 Agent 支持、完全开源可 Fork、原生移动端。


项目地址与资源

官方资源

  • 🌟 GitHub : github.com/pingdotgg/t...
  • 📚 官网 : t3.codes
  • 📱 iOS: App Store 搜索 T3 Code
  • 🤖 Android: Google Play 搜索 T3 Code
  • 📦 一键安装 : npx t3@latest

相关项目

  • T3 Stack --- 同一团队打造的 Next.js 全栈技术栈
  • Claude Code --- Anthropic 出品的 AI 编程工具,T3 Code 最完整支持的 Provider
  • OpenCode --- 开源 AI 编程 Agent,T3 Code 内置支持

总结与展望

核心要点回顾

  1. 控制平面,不是 Agent:T3 Code 不替代 Claude Code 或 Codex,而是在它们之上加一层统一控制界面
  2. Bring Your Own Subscription:你的订阅、你的 quota,T3 Code 不碰,也不介入
  3. Driver + Adapter 分层:新增 Provider 只改一处,orchestration 层完全不动
  4. Branch-per-Thread:Agent 的每个会话对应一个 Git 分支,有边界、可回滚
  5. 远程访问是一等公民:T3 Connect Relay + 指数退避重连,从手机控制开发机是设计目标,不是附加功能

适用人群

  • 同时用多个 AI 编程工具的开发者:Claude Code + Codex 的用户,不想在多个终端/界面间切换
  • 想从移动设备监控长任务的工程师:跑一个大型 Agent 任务,走开后用手机查进度、批准操作
  • 重视代码审计的团队:所有 Agent 操作有完整轨迹,工具调用可逐一审批
  • 想 Fork 和定制 AI 工具的开发者:MIT 协议,完全开放,T3 团队明确欢迎 Fork

一句话评价

T3 Code 做的是 AI 编程时代的"云控台":你的 Agent 在本地跑,你在任何地方都能掌控它。


欢迎访问 PrimeSkills ------ 一个精心策划的 AI Agent 与技能市场,所有内容均经过真实企业级工作流验证。没有噱头,只有真正有效的东西。

更多实用知识和有趣产品,欢迎访问我的个人主页

相关推荐
IT古董15 分钟前
AI 资讯日报 | 2026年9月1日 :混元 Hy4 开源、DeepSeek 多模态登顶、可灵获国家队 14 亿注资
人工智能·开源
冬奇Lab15 分钟前
Code Agent 解剖(18):AgentTeams——TeamFanout 与 TeamCollect 的并行机制
人工智能
ai小陈21 分钟前
FramePack图生视频云端部署实战:从单图输入到视频输出的完整流程
服务器·人工智能·安全·ai·音视频·gpu算力
程序员-Benothing35 分钟前
OpenAI断供Cursor:当AI巨头开始“清理门户“,开源生态的中立性还能撑多久?
人工智能·开源·大模型
光锥智能39 分钟前
机器人走进大众时代加速到来:郎朗跨界合作启元机器人,消费级人形机器人开启直播发售
人工智能
Jialu.43 分钟前
中文 BERT 多任务分类项目:从模型结构到训练细节
人工智能·pytorch·分类·微软·nlp·bert
ZhouDevin43 分钟前
算法论文/数据集3——CLD(TMLR2025)压缩训练集,仅保留对验证集有益的样本
人工智能·深度学习·算法·计算机视觉
长沙京卓1 小时前
Copilot Coding Agent 变了:AI 编程正在从插件变成项目成员
人工智能·ai
AIGC大时代1 小时前
知网 AIGC 检测在罚什么:均匀句长、低指代、零口癖,并不等于「用过 ChatGPT」
人工智能·chatgpt·nlp·aigc·论文·知网·学术规范