做了一个把多 Agent、终端和 Diff 放进同一条任务时间线的类 Codex 开源工具: Threadlight

14 天前
 nagisa12321

大家好,最近把我一直在做的 Threadlight 整理到了 1.0 ,想发出来请大家帮忙挑挑问题。

GitHub:

https://github.com/nagisa77/threadlight

官网:

https://threadlight.xyz

现在 AI Agent 客户端已经很多了。我不太想把 Threadlight 介绍成“另一个更强的聊天框”,它目前也不是。

我做它主要是因为,用 Coding Agent 处理稍微长一点的任务时,真正让我不放心的往往不是模型会不会写代码,而是整个过程能不能被管住:

这些过程经常散在对话、终端、编辑器和多个 Agent 窗口里。

Threadlight 想做的事情比较明确:把规划、Agent 协作、工具调用、终端、文件、Diff 和最终交付,放进同一条可观察、可恢复的任务时间线。

下面是 Web 客户端连接到远程 Host 后的新任务界面。Web 端只是客户端,代码、模型配置和执行环境仍然留在自己的机器或服务器上。

多 Agent 是 Runtime 行为

Threadlight 的主 Agent 可以派发、追问、等待、中断和收集子 Agent 的结果。

每个子 Agent 都有自己的连续上下文和运行状态,不是临时拼几段 Prompt 。主 Agent 可以把相互独立的研究任务并行派出去,等结果回来后继续汇总、验证或安排下一轮工作。

任务中可以同时看到 Agent 卡片、完成状态和右侧的 Agent 树:

Plan 模式不只是一句提示词

Threadlight 的 Plan 模式由 Runtime 管理。

它会先以只读方式研究项目,生成执行步骤和验收标准,一次推进一个步骤;完成证据不足时,不会直接把任务标记为完成。

模型输出、工具调用、命令日志、Agent 活动、文件变化和 token usage 都会保留在任务时间线中。中途关闭客户端后,任务、Agent 树和相关状态也可以继续恢复。

对话、Diff 、文件和终端放在一起

我希望它不只是负责“生成代码”,还要能让人方便地检查结果。

右侧可以打开源码、文件树和当前任务的 Diff ,底部可以打开多个终端。Git 项目中的新任务默认在独立 worktree 里运行,完成后可以检查改动、运行测试,再 Commit 、Push 或创建 Draft PR 。

一个实际案例

例如,我在一个空任务中输入:

从零创建 incident-replay-lab:制作可播放的电商线上事故沙盘,包含服务拓扑、实时指标、事件流、时间轴和自动复盘。完成后测试、启动并保存事故高峰截图。

Agent 会在工作区中创建项目、编写仿真逻辑、运行测试并启动页面。执行期间,右侧可以实时查看新建文件和代码 Diff:

最后生成的是一个可以播放的事故回放页面,包含服务拓扑、实时指标、事件流和事故时间轴:

本机和远程 Host

Threadlight 目前提供两种主要使用方式:

桌面端和 Web 端复用同一套协议与工作区。远程使用时,代码、终端、模型配置和任务数据可以继续留在目标机器上。

Threadlight 本身不提供模型服务,需要配置自己的模型 API 。

核心 Agent Loop 是 provider-neutral 的,目前支持 OpenAI 、DeepSeek 、千问、Kimi 、豆包、Gemini 、Grok 和自定义 OpenAI-compatible 服务,也支持 Skills 、Plugins 、MCP 、项目记忆和定时任务。

当前状态和限制

也把目前的限制说清楚:

macOS 安装包:

https://github.com/nagisa77/threadlight/releases/tag/v1.0.0

Node.js 22+ 的 macOS 或 Linux 用户,也可以一键部署 Host + Web:

curl -fsSL https://threadlight.xyz/install.sh | sh

不喜欢直接执行 curl 脚本的话,可以先去 GitHub 查看安装脚本、Release 和完整部署文档。

项目使用 Apache-2.0 协议。安装、交互、架构或者文档方面的问题都欢迎提 Issue 。

我尤其想听听大家的真实看法:

你们在使用多 Agent 时,最希望看清楚的是任务拆分、运行过程,还是最后的结果 Review ?现在这种工作区的信息密度会不会太高?

595 次点击
所在节点    分享创造
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/1233531

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX