小张正在努力加载 · 0%

Hang on, I'm still loading.

EN

Conflux · AI Coding Agent 控制面

把 Claude Code / Codex / Aider 等多个 agent CLI 收进一个本地可视化工作台:真实 PTY 会话、注意力路由、跨 agent 讨论、审计权限闸。目标是「不用一直盯每个终端,关键时刻精准接管」。

Tauri 2 / Rust / Tokio / React / TypeScript / Zustand / xterm.js / SQLite / ConPTY


CASE STUDY · 第 1 幕 / 3

背景与难点

同时开五个 agent CLI,真正的成本不是它们跑得慢,是你不知道该看哪一个——有的在等确认,有的已经跑偏十分钟,有的干完在空转。终端本身不会告诉你这些。

市场定位

给谁用:同时驱动多个命令行编程 agent(Claude Code、Codex、Aider 一类)的个人开发者。这类人今天的工作面是五六个终端窗口,靠人肉轮询判断哪个在等确认、哪个跑偏了。

替代什么:替代的是「多开终端 + 来回切窗口」这套原始工作法,也替代各家 agent 自带的、只管自己一个会话的界面。它不替代 agent 本身——Conflux 不写代码,它管写代码的那些东西。

凭什么:注意力路由。把「我去看每一个」变成「该看的时候它叫我」,再加一道审计过的权限闸——agent 要做危险动作时必须经过人。这两件事是单个 agent 的自带界面给不了的,因为它们本质上是跨 agent 的。

本地桌面应用,数据不出机器。这是刻意的:编程 agent 手里握着你的代码库和凭据,控制面本身不该再多一层云。

主要功能模块

  • 会话画布:每个 agent 一张卡,卡里是真实的 PTY 终端(xterm.js + WebGL 渲染),不是日志回放。
  • 注意力路由:等待确认 / 长时间无输出 / 报错三类状态自动上浮,三种呈现——灵动岛、侧栏、系统托盘,按你在不在屏幕前切换。
  • 跨 agent 讨论:把一个 agent 的输出喂给另一个当上下文,让它们互相审。
  • 权限闸:高风险命令(删文件、推代码、装依赖)拦下等人点头,动作与裁决进审计时间线。
  • 编排层:会话生命周期、事件时间线、重启恢复。

技术栈

  • Tauri 2 + Rust(Tokio、SQLite):桌面壳与后端。选 Tauri 不选 Electron 是内存——渲染栈(WebView2 与 egui)用一手内存实测数据做的取舍,不是凭印象。
  • React + TypeScript + Zustand:前端状态;xterm.js 承担终端渲染。
  • ConPTY + Windows Job Object:真实伪终端与整树进程监管,这一块抽成了独立开源项目 conmux(见下一条),Conflux 完全跑在它之上。
  • 命名管道 IPC:前后端通信,DACL 收紧过,走过多轮红队审查;审计链路按 fail-closed 建威胁模型。

五层架构(Adapter → Installation → AgentSession → CardView → Orchestration)由我独立设计并主导,包括产品方向、API / IPC 契约冻结与里程碑裁决。

状态

已发布 GitHub Release v0.1.1,含安装包。

单人 + AI agent 协作开发:代码大量由 agent 生成,我做的是架构、契约、裁决与验证。这一点我不打算含糊——它恰恰是这个项目最想证明的事。

← 项目版