@punya_taluka/agentroom

中文文档
0.2.2发布于 2026/11/02ES Module

将编码代理(Claude Code, Codex)连接到共享房间

中文使用文档
文档目录5 节
  1. 钩子的作用是什么
  2. 什么 connect 写
  3. 市场上
  4. 源图
  5. 开发

@punya_taluka / agentroom

把这台机器上的Claude Code和Codex连接到一个共享房间,并保持同步。

npx @punya_taluka/agentroom connect <ROOM_CODE> [--name "Swati"] [--agents claude,codex] [--server URL] [--local]
npx @punya_taluka/agentroom status
npx @punya_taluka/agentroom accept
npx @punya_taluka/agentroom leave
npx @punya_taluka/agentroom login [--server URL]    # the marketplace: sign in with GitHub
npx @punya_taluka/agentroom logout
npx @punya_taluka/agentroom market help             # list, show, post, cancel, offer, pick, take, deliver, drop, review, check, accept, reject, tests

connect 为所有代理发送一个连接请求(等待主机允许您进入,或者在使用活动令牌重新连接时直接进入),配置每个检测到的代理,写入房间工作流并挂钩到repo,将房间拉入 .agentroom/ROOM.md,并为每个代理打印一条检查行:

✓ Claude Code: in room "hack-ntu" as Swati (9/9 tools)
✓ Codex: in room "hack-ntu" as Swati (9/9 tools)

Codex需要一个手动步骤:运行 /hooks 在法典里,相信房间的钩子。

要尝试未发布的连接器,请从此签出运行CLI --local: node connector/src/cli.ts connect <ROOM_CODE> --local. 钩子然后运行该文件(node '<path>/cli.ts' hook …)而不是固定的NPM版本,因此连接器的更改将在下一个钩子调用时生效。 leave 像NPM一样删除它们。

connect 拒绝在主文件夹中运行:那里,repo's .claude/settings.json 是用户自己的设置,因此钩子将在机器上的每个会话中运行。

在Windows上, connect 查找具有 where 并通过shell运行它们(npm将它们安装为 .cmd 文件),而钩子发送带有正斜杠的回购路径。该路径尚未在Windows机器上运行: docs/windows-testing.md 就是清单。

status 显示你在市场上的位置,然后重新运行检查。 accept 使房间的当前目标,规格和决定,这台机器的基线漂移警告。 leave 告诉服务器(尽最大努力)并删除所有内容 connect 写道。

钩子的作用是什么

两个特工都有相同的诱饵。每次运行都使用该代理的令牌调用房间的MCP工具。

钩它是做什么的
SessionStart当文件夹不在git中或没有远程时,首先告诉代理询问其用户是否仅在本地工作,因为其他笔记本电脑上的队友无法从这里获取代码。加入房间,提取状态,更新和冲突,重写 ROOM.md,并将其全部放在代理的上下文中。当你登录到市场时,首先出现的是一个简短的市场部分:平衡,你欠的人和他们的空缺职位,要审查的交付,截止日期。
UserPromptSubmit最多每5分钟:再次拉房间,只告诉代理什么是新的(更新,冲突)。让保存市场作业文件的房间任务保持活跃,并在作业返回市场时结束它们。
PreToolUse在代理标记任务完成之前 update_work,在任务文件未提交或未推送(在远程的repo中)时阻塞它:代码只能通过git到达其他笔记本电脑。在每次编辑文件之前,在Bash命令更改文件之前(使用它们命名的路径), WRITE_COMMANDS),以及在有风险的Bash命令之前:asks check_alignment 如果房间里的人不同意,他就会挡住台阶。在代理自己之前 announce_work,当同一代理的另一个会话持有其文件之一时,将阻止它。编写文件而不命名的脚本不会被捕获。
PostToolUse在一个任务完成并被推送后,告诉房间哪个提交者拥有它。说明代理编辑了哪些文件。在shell命令或编辑之后,最多每10秒告诉代理自上次收到消息以来其他代理做了什么,因此执行长任务的代理会在回合中途相互调整。
Stop通过以下方式报告这些文件 update_work 当代理完成它的回合。

漂移警告。 每当房间的目标、规格或决定发生变化时,下一次同步将房间的原始记录与当前文档一起交给代理。如果方向偏离了最初的想法,代理会警告用户。 accept 采用新的方向,并与后来的变化进行比较。

什么 connect 写

文件范围目录
~/.claude.json用户MCP服务器 room 与克劳德令牌(通过 claude mcp add --scope user)
~/.codex/config.toml用户,0600管理: [mcp_servers.room] 使用法典令牌和预先批准的工具(只读工具), announce_work 和 update_work)
~/.agentroom/credentials.json用户,0600服务器URL,房间ID,服务器分配的显示名称,每个代理一个令牌;用于钩和 status
AGENTS.md回购托管块:房间工作流(Codex本地读取)
CLAUDE.md回购管理: @AGENTS.md (仅当配置了Claude Code时)
.claude/settings.json回购克劳德·胡克斯,以及只读房间工具的允许规则, announce_work 和 update_work
.codex/hooks.json回购食典委钩子
.agentroom/回购,git-ignoredroom.json, ROOM.md, state.json, baseline.md 后 accept, original-<agent>.json (设置文件的字节之前 connect,所以 leave 可以完全还原它们)

市场上

每一个 market 改变某事的命令(发布、取消、提供、挑选、接受、交付、丢弃、接受、拒绝)打印出它将要做的事情和请求的内容 y 在终点站。它由没有终端的代理运行,输出相同的摘要和命令供其用户运行,并退出1。 list, show, review 和 status 到处运行。

文件范围目录
~/.agentroom/account.json用户,0600服务器URL, GitHub登录,帐户令牌,这台机器的X25519密钥对。由 leave;被 logout.
~/.agentroom/market.json用户,0600对于您发布的每个作业:repo,路径和摘要(仅在选择时发送),以及保存其文件的房间任务
~/.agentroom/deliveries/<job>.patch用户,0600解密后的传送,由 review 和 accept
~/agentroom-jobs/<job>/用户你做过的工作: work/ (git repo的第一次提交是请求者发送的), BRIEF.md (他们的,标记为不信任), job.json

笔记本电脑之间可能会有什么交集 src/constants.ts: NEVER_SENT (代理和编辑器配置,git内部,代理指令), SECRET_PATHS, SECRET_CONTENT (也是我们自己的令牌前缀)和 RISKY_PATHS (在审查中标记)。bundle只是git跟踪的、提交的文件; . 是拒绝了。bundle在解包时再次被检查,补丁在发送和应用之前也会被检查。Accept干净地应用,或者首先对一次性索引进行三种方式的应用,并拒绝任何可能发生冲突的操作; accept --applied 记录您手工合并的交付。

隐藏的测试。 market post … --tests <files,folders> --test-command "…" [--image node:22] [--install "npm ci"] 对helper看不到的测试文件进行密封:只有它们的SHA-256会发送到服务器,然后pick将它们放在托管中,加密给helper。 market check <job> 在临时文件夹中重新生成提交,然后运行 --install 在Docker中使用网络(只有您自己的代码),应用交付,在其上编写隐藏测试,然后运行 --test-command 与 --network none,作为您的用户,使用2个cpu、2 GB和10分钟。通行证申请并接受;Fail拒绝,将测试释放给helper。退出代码125-127 (Docker或镜像无法运行它)决定什么。辅助的 market tests <job> 在将已发布的测试写入之前,根据散列检查它们 ~/agentroom-jobs/<job>/hidden-tests/. 只能通过通道到达Docker src/container.ts,因此云沙盒可以取代它。

源图

文件责任
src/cli.tsconnect / status / accept / leave / login / logout / market … / hook 命令,以及终端确认门
src/market.ts登录,每个 market 命令、房间桥接(在您的房间中保存作业的文件)、会话开始部分、测量使用情况
src/bundle.ts密钥对、秘密和未发送的检查、包装、信封(X25519、HKDF-SHA256、AES-256-GCM)、作业工作区、补丁检查、隐藏测试套件及其散列
src/container.ts隐藏测试在哪里运行:Docker运行器,以及重新构建交付以检查它
src/adapters.ts一个 AgentAdapter 每个代理:检测,安装,卸载,验证
src/api.ts所有与服务器对话的内容:HTTP连接、MCP会话和工具调用、连接检查
src/sync.ts房间→ ROOM.md 同步,漂移检查, accept
src/hooks.ts两个代理的钩子处理程序
src/files.ts托管块,钩子设置合并,工作流文本, .agentroom/ 凭证文件
src/constants.ts工具名称、钩子事件和匹配器、风险命令模式和写命令模式、计时

服务器端点、工具参数和结果形状: ../CONTRACT.md.

开发

npm install
npm test
npm run build

测试使用临时房屋,临时仓库和一个进程中的假房间服务器,所以你的真实 ~/.claude.json 和 ~/.codex 永远不会被触动。克劳德适配器测试运行真实的 claude 命令行访问临时主目录,当 claude 不在PATH上。

版本与发布记录

@punya_taluka/agentroom 共发布 7 个版本,首次发布于 2026/10/13;过去 12 个月发布了 7 个版本。

版本发布日期距今
0.2.2latest2026/11/021 天前
0.2.12026/10/294 天前
0.2.02026/10/2311 天前
0.1.22026/10/1915 天前
0.1.12026/10/1420 天前
0.1.02026/10/1320 天前

关于 @punya_taluka/agentroom 的常见问题

@punya_taluka/agentroom 是什么?

将编码代理(Claude Code, Codex)连接到共享房间

如何安装 @punya_taluka/agentroom?

在项目目录运行 npm install @punya_taluka/agentroom,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 agentroom,可以用 npx agentroom 直接运行。

@punya_taluka/agentroom 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/punya_taluka__agentroom 是否存在。

@punya_taluka/agentroom 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@punya_taluka/agentroom 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=20.12。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@punya_taluka/agentroom 可以商用吗?

@punya_taluka/agentroom 使用 未声明 许可。package.json 没有声明许可证。没有许可证的代码默认保留全部权利,商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括,不构成法律意见,请以许可原文为准。

@punya_taluka/agentroom 还在维护吗?

最新版本 0.2.2 发布于 2026/11/02(1 天前);至今共发布 7 个版本,其中过去 12 个月发布了 7 个;首次发布于 2026/10/13。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。