@namki1222/loomo
v2.1.0
Published
Weave your Claude Code & Codex sessions into a team that talks to each other — multi-agent messaging over tmux, no daemon, no MCP.
Maintainers
Readme
loomo
把你的 Claude Code 和 Codex 会话编织成一支互相对话的团队。
无守护进程 · 无数据库 · 无 MCP —— 一个脚本加一套约定。
用一个 Claude Code 会话跑后端、另一个跑前端,你很快会撞上一堵墙:这两个会话看不到彼此。
后端一改 API,就得你亲手把结果复制粘贴到前端会话。每一次交接都是手动中转。
loomo 拆掉了这堵墙。 你的会话变成会互相发消息的队友——后端改完后自己去告诉前端,前端做完再把结果回传。
你只用自然语言说话,协调交给会话自己完成。而且它不在乎会话跑的是 Claude Code 还是 Codex —— 它们都在同一座桥上对话。
loomo 有两个目标:
- 会话间对话 —— 项目和模型可以不同;Claude ↔ Claude、Codex ↔ Codex、Claude ↔ Codex 都能直接请求工作并回复。
- 人人都能上手 —— 你不需要懂 tmux、session ID 或消息命令。在仪表盘里建好项目和窗格,然后用自然语言委派即可。
新用户只需运行 loomo。它会引导你完成依赖安装、项目与窗格创建、对话接入,以及重启后的对话恢复。
没有它 —— 你是中转者: 有了它 —— 会话自己循环:
[后端] "完成,API 改了" ┌──"API 改了,更新 UI"──►┐
│ [后端] [前端]
│ ✋ 复制粘贴 └◄──────"完成 ✅"────────┘
▼
[前端] "…粘贴到这里" 你:一句话,剩下的会话自己处理每个会话都是长期存活的——一个持有该项目历史的常驻队友,而不是每次任务间就忘光的一次性 agent。loomo 会保存并恢复 session ID,用户永远不必手动管理它们。
环境要求
首次运行 loomo 会为你安装以下全部内容,就绪后打开仪表盘。已安装的项目会自动跳过。
| 需要 | 检查 | 说明 |
|---|---|---|
| tmux | tmux -V | 建议 3.x · 首次运行 loomo 时安装 |
| Claude Code 和/或 Codex | claude --version / codex --version | 首次运行 loomo 时安装两者 |
| Node.js / npm | npm -v | 仅作安装渠道(运行时是纯 shell) |
| macOS 或 Linux | — | Windows 预期可在 WSL 下运行(未验证) |
安装
npm install -g @namki1222/loomo
loomo # 检查/安装 Homebrew → tmux → Claude Code → Codex,然后打开仪表盘首次运行是幂等的:已安装的依赖会被跳过。在 macOS 上,如果缺少 Homebrew,将先运行其官方交互式安装程序。
从 1.1 之前的韩语协议头升级?export LOOMO_LANG=ko 可保持原有协议头不变。
初学者仪表盘指南
运行 loomo 打开仪表盘。几乎所有事情都能在这里用鼠标管理。
Sessions
- 选择
[+ Add project],然后依次选择 Claude/Codex → 项目名 → 首个窗格角色 → 文件夹。 - 单击项目一次即可打开窗格与布局的详情。
- 在详情里,用
Add unassigned panel→[+ New panel]立即创建并分配一个窗格。 - 双击项目会在专用终端里打开它的全部窗格。
- 用
Edit arrangement分配未指派的窗格,或在项目之间移动已有窗格。
Adopt
- 预览此前在 Claude 或 Codex 中用过的对话。
- 选择一个对话并命名窗格,把它放进 Unassigned panels。
- 已由 loomo 管理的对话会从 Adopt 中排除。
Settings
- 选择负责在项目间路由请求的 Hub 会话。
- 检查 Claude/Codex 认证状态,并开始或撤销登录。
- 查看环境状态与用量。
- 用 [⟳ Sync now] 刷新每个项目的协作约定 —— 无需 CLI。
窗格右键技能
- 在仪表盘里选择 Settings → Skills → Add Markdown skill。
- 把一个
.md文件拖入输入区并按 Enter。 - 该技能会在下次右键时以
Use: 文件名出现。 - 选中它会让该窗格的 AI 读取并激活这段 Markdown 指令。
- 在 Settings 里用
[Delete]→[Confirm delete]移除技能。 - 技能保存在 loomo 的
skills/<名称>/SKILL.md配置目录下。
一个项目就是一个 tmux 会话;每个角色就是一个常驻 AI 窗格。Claude 和 Codex 窗格可以共存于同一个项目。
这同时会把协作约定插入每个目录的约定文件(CLAUDE.md 或 AGENTS.md)——这正是接收方 AI 通过桥回复的依据。项目窗格只在自己项目内发消息;要触达另一个项目,会经由中枢路由。
对话持久化
loomo 会为每个窗格保存 Claude/Codex 的 session ID。对话预览和恢复都使用同一个 ID,所以 loomo restart 会重新打开相同的对话。如果某个已配置的窗格在运行中的 tmux 会话里缺失,打开该会话或运行 loomo up 会自动恢复它。
Adopt 只显示 loomo 尚未拥有或分配的外部对话。
终端命令指南
想要更快的终端工作流或做脚本化时使用 CLI。初学者不需要记住这些命令。
启动与接入
loomo up <project> # 启动一个项目
loomo up --all # 启动每个已注册的项目
loomo ws <project> # 启动并在当前终端接入
loomo down <project> # 停止一个项目,保留其配置
loomo down --all # 停止每个项目配置与管理
loomo add # 用终端向导注册一个项目
loomo adopt # 导入一个已有的 Claude/Codex 对话
loomo hub # 注册一个 Hub 会话
loomo layout <project> tiled # 更改窗格布局
loomo list # 显示会话、角色与运行状态
loomo rm <project> # 移除项目配置恢复与诊断
loomo restart # 重启私有 tmux 并恢复已保存的窗格/对话
loomo doctor # 检查环境与配置
loomo doctor --fix # 修复可以安全自动修复的问题
loomo sync # 刷新 CLAUDE.md/AGENTS.md 里的协作块
loomo tmux status # 检查 loomo 的私有 tmux 服务器
loomo update # 更新到最新的 npm 发布版更新 loomo 后,请先运行
loomo sync。 它会刷新每个已注册项目CLAUDE.md/AGENTS.md中的协作约定。然后重启这些会话以重新加载新约定 —— 会话只在启动时读取约定。
会话间请求状态
loomo task list
loomo task ack <KEY>
loomo task status <KEY> <state> "summary"
loomo skill add <file.md>
loomo skill list会话之间可以用 tell <session> <role> "request" 发消息。大多数用户只需用自然语言让自己的 AI 去做,而不必直接输入这条命令。
让会话对话
在仪表盘里双击一个项目,然后用自然语言对任意窗格的 AI 说:
tell web the order schema changed and have it update the UI你从不输入消息命令——约定会让 AI 自己中转,对方会话自己回复。
Claude → Codex、Codex → Claude,任意方向。
好用的特性
- 单击项目查看详情;双击它打开会话终端。
- 窗格名与路径作为一个可选项一起行动,文件夹可在浏览器中选择。
- 在运行中的 tmux 会话里缺失的已配置窗格,会在会话打开时恢复。
- 对话预览与启动使用同一个 session ID。
- 停止项目或重启 loomo 都会保留配置与对话身份。
- 会话间请求按 KEY 追踪;中枢可以路由工作并汇总回复。
混用 Claude 与 Codex
桥与具体 agent 无关,所以跑 Claude 的中枢可以指挥跑 Codex 的项目——反之亦然。
在仪表盘里创建项目或窗格时先选择 Claude 或 Codex。同一个项目里的不同窗格可以使用不同模型:
howlpot|server|~/work/howlpot| claude
labs|dev|~/work/labs| codex它们共享一块屏幕,以完全相同的方式互相对话——Claude 会话把工作交给 Codex 会话并拿回结果,无需胶水代码。
实战 —— 作者这样用
我注册了 6 个项目,每个 1~4 个窗格(服务器 / 应用 / 仪表盘 …)。
一个 Claude 中枢会话掌控全局 —— 把我的请求路由到对应会话,追踪回复并汇报。配合 Claude Code 的 远程控制(Remote Control),不带电脑时也能用手机指挥整支队伍。
专注单个项目时,我跳过中枢,直接和那个项目会话对话 —— 这样上下文能贯穿一整天,不必每次重新开始。
安全
仅限可信的本地环境。 任何能访问同一 tmux 服务器的人都能往任意窗格注入消息。相关 key 用于路由,不是身份认证。
绝不要用它发送密码、令牌或密钥 —— 它们会以明文留在目标窗格的回滚缓冲里。凭据请走带权限的通道(scp 等)。
MIT © namki1222
