本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容:
- 我的帖子已经打上 开源推广 标签: 是
- 我的开源项目完整开源,无未开源部分: 是
- 我的开源项目已链接认可 LINUX DO 社区: 是
- 我帖子内的项目介绍,AI生成、润色内容部分已截图发出: 是
- 以上选择我承诺是永久有效的,接受社区和佬友监督: 是
以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出
仓库地址:
现在市面上具备多 harness、多 agent 管理的项目很多是跑的 GUI 的 agent, 有的还是基于 ACP 协议,项目复杂不说,也可能损失一些 CLI 版本的最新特性。
于是作为一个对开发环境的品质有执念的人,我做了 Spexcode - 一个轻量的,基于 tmux 的多 agent 管理工具,包揽 agent 创建、worktree 创建、agent 多层级监督、状态显示、worktree 资源清理等功能。
该工具既可以在终端用也可以在 web 上用,这里着重介绍 web 前端上的使用方式。 目前支持 Claude Code, Codex, Pi, Opencode 等 CLI Agent

它提供了一个独立的输入框,即时计算该 agent harness 的 skill、command 等等,所以你在这个输入框按下 / 的时候,不仅有 Spexcode 提供的特殊指令,还带了该 harness 原本的所有指令,是 100% 包含关系。如图,type,eval,stop,close 等是额外指令,其它 harness 自带指令都在。

按下快捷键 cmd + I 就能进入终端直接去操作,再按一下退出来。还有一些方便的快捷键,比如 cmd + 上下箭头 切换、cmd + / 全局搜索、option + n 创建新 session 等等。

tmux 保证了你即便关掉 spexcode,agent 页仍在运行,你随时可以在任意终端去重新 attach 到这个 agent,并和他直接通过终端进行交互。右键 session 点击 open in terminal,就提供打开对应的 tmux 窗口的指令。

既然说到了管理,如何管理?两个方便的记号就能解决几乎一切问题,@ 和 [[。
@ 让 agent 得到对方联系方式从而互相发消息;@new 就是开一个新 session 来接手。[[ 用来引用项目地图上的某个节点,可以看作是一块被治理的代码,有了它 agent 就知道你指的是项目里哪一块。

Agent 多层级监督范例,你可以全部折叠也可以一层层地展开和底下 Agent 去交互。

注意显示在面板上的都是有独立 worktree 的 agent,并非 subagent,它们并不矛盾,一个做持久的、可能需要人干预的任务,一个做短期一次性的任务。
spexcode 在 spexcode.json 中含有丰富的配置项。
每个 session 的生命周期如下:

说白了就是先给这次任务创建一个隔离的工作区,让 agent 读懂这块地方已有的 spec 再动手;完成之后自己准备一个测试场景验证一下,把和代码对不上的 spec 补齐,最后提交合并,把工作区清理掉。
关于 spec,后面会发一篇研究性的帖子,还有详细的评测结果,这也是我 phd 的方向之一。这里大家就当成文档或者 claude memory 那一类的经验积累就行,唯一的区别是它不会过时。
安装使用的方式极简:
npm i -g spexcode
cd your-repo
spex init --harness claude # claude/codex/opencode/pi,可以逗号隔开同时 init 多个
# 到这里接入已经完成。需要实时看板时再运行:
spex serve # 当前项目 backend,自动注册
spex dashboard # 每个用户只运行一个全局 dashboard
你用哪个 agent CLI,由 launcher 决定,目前接了 Claude Code、Codex、pi、OpenCode。spex init 会先给你内置 claude 和 codex 两个 launcher,一个 launcher 就是一个名字对应一套「harness 加启动命令」,比如:
{
"harnesses": ["claude", "codex", "opencode", "pi"],
"lint": {
"governedRoots": ["spec-dashboard/src", "spec-cli/src", "spec-forge/src", "spec-eval/src"],
"sourceExtensions": ["ts", "tsx", "js", "jsx"],
"identifierExtensions": ["ts", "tsx", "js", "jsx", "json", "md"],
"altitude": { "lineBudget": 50, "charBudget": 4200, "sizeable": 35, "dense": 1.3, "steps": 3 },
"maxChildren": 8,
"scenarioTags": ["frontend-e2e", "backend-api", "cli", "desktop", "mobile"]
},
"sessions": {
"maxActive": 8,
"launchers": {
"claude": { "harness": "claude", "cmd": "claude --dangerously-skip-permissions" },
"codex": { "harness": "codex", "cmd": "codex --yolo" },
"pi": { "harness": "pi", "cmd": "pi" }
},
"defaultLauncher": "claude"
}
}
因为有一些需要注入给 agent 的 prompt,会自动生成一些文件,但用了 git filter 的功能所以不会进入 git。也就是说即便你 git 了 CLAUDE.md,spexcode 生成的那部分 CLAUDE.md 段落也不会进入 git,只有 .spec 会进入 git。spexcode 的初始化严格满足遗忘性,如果你觉得不好用,随时可以把所有相关的东西清除掉。
另外手机上也能用。session 面板、单个 session 的时间线和消息,在手机上都能查看,也能直接给 agent 发送消息。


预制了几个不同的主题,来源是 obsidian 社区。可以一键切换!

项目地图,可以全键盘游览,点击节点能打开详细信息:

保证 spec 不过时的机制:

这部分后续我再发一篇更偏学术的帖子来详细讨论 !
Spexcode 出生于业界某 top AI lab 的实际生产项目的维护,各种机制都有过硬的理论基础。同时前端也在不断优化,极简的同时提供强大的、vibe coding 时代人类友好的项目管理方式。目前希望在 L 站获取佬友们的使用反馈!期待大家来用!
^-^项目 • 提交 Issue • 贡献代码 • Spec 树生长视频