pairdown
Pairdown
多人 Markdown 协作,房间里还有 agent。
一台服务器持有所有文档。人们打开一个链接,就能实时共同编辑同一份文档,并在页边空白处留下评论。房间里的任何人都可以把自己的 Claude Code 会话带进来——它会以一个具名参与者的身份出现,安静地待着,直到有人提到它,然后它会在被召唤进来的那个线程里作答。
它可以在浏览器里运行,无需安装任何东西。房间、编辑、评论和分享功能在完全没有接入 agent 的情况下也能正常工作;Claude Code 插件只是接入会话的可选方式,而且它本身从不持有文档。
运行服务器
托管需要一份代码检出和 bun:
bun install
bun run build # bundles the browser client into public/js
bun run src/server.ts # http://127.0.0.1:8790一个进程服务所有房间。/ 是房间索引——服务器上的每个房间,都链接到各自的 /r/<id>,并带有一个创建表单。房间持久化存储在 data/rooms/ 下,每个房间一个文件,并且比进程活得更久。
Related MCP server: agent-room-mcp
接入 agent
从这个仓库安装插件——这个仓库本身就是自己的 marketplace,所以是两条命令而不是一条:
claude plugin marketplace add rohanrichards/pairdown
claude plugin install pairdown@pairdown安装时会询问四件事,其中前两件比较重要:
设置项 | 原因 |
Agent 代号 | 人们输入 |
你的名字 | 显示在代号旁边,让人们能看到这是谁的 agent |
房间服务器 | 如果服务器在你自己的机器上就保持默认;设置为别人的服务器地址即可加入他们的房间 |
共享密钥 | 仅当他们的服务器有密钥保护时才需要。这是一个共享演示密钥,而不是个人凭据,以明文存储在 |
之后可以用 /plugin configure pairdown 修改其中任何一项。
你的 PATH 上需要有 node(22 或更新版本)。你不需要克隆这个仓库或安装它的依赖——agent 以单个打包文件的形式发布,直接运行即可。
bun 只在托管房间服务器时需要,因为服务器构建在 Bun.serve 之上。把 agent 带到别人的房间不需要它。
如果要开发插件本身,claude --plugin-dir . 可以从代码检出中加载而无需安装,并且会在 /reload-plugins 时拾取你的修改。
插件运行一个 MCP 服务器,以客户端身份连接到房间服务器。它的 pairdown 二进制文件在插件启用期间位于 PATH 上,如果房间服务器尚未启动,会按需启动它。
接入后,会话先调用 room_list,然后调用 room_create 或 room_join,再通过 read、outline、search、edit、append、insert、comments、reply 和 resolve 进行工作。
agent 在被点名之前处于休眠状态。除非有评论提到它的代号,否则不会有任何内容到达会话,所以一个有四个 agent 的房间和没有 agent 的房间一样安静,直到有人召唤其中一个。
同样的四个设置也可以作为环境变量,用于在插件之外运行 agent:
变量 | 作用 |
| 此会话的代号,即人们在 |
| 这是谁的 agent,显示在代号旁边 |
| 要接入的房间服务器(默认 |
| 共享密钥,当服务器有门禁时使用 |
环境变量优先于同名的插件设置,这就是你可以在不修改配置的情况下,以不同代号运行第二个 agent 的方式:
PAIRDOWN_AGENT=scout PAIRDOWN_OWNER=Rohan claude更新
安装不会把现有安装升级到新版本——它会报告插件已安装并保持当前运行版本不变。要获取新版本:
claude plugin marketplace update pairdown
claude plugin uninstall pairdown@pairdown
claude plugin install pairdown@pairdown用 claude plugin list 检查实际运行的版本;重要的是那里的版本号,而不是缓存里放着什么。
提及一个代号会立即通知该会话;未标记的评论会一直等待,直到有人按下"发送给 claude"。即时通知还需要 channels 研究预览版,并且在 Team/Enterprise 上,组织管理员必须设置 channelsEnabled——否则通知会被静默丢弃,其他一切仍然正常工作。
共享密钥门禁
设置 PAIRDOWN_SECRET 会把整个服务器置于一个密钥之后:浏览器会看到一个表单,然后获得一个会话 cookie;agent 和脚本发送 Authorization: Bearer <key>。未设置时,服务器是开放的,和之前完全一样。
PAIRDOWN_SECRET="$(openssl rand -base64 32 | tr -d /+= )" bun run src/server.ts这是身份验证,不是授权。一个密钥意味着持有它的每个人都是同一个主体:无法区分任何人,无法单独撤销任何人,服务器上的每个房间都在同一扇门后面。它的存在是为了让受监督的演示可以通过隧道进行,而不必把机器交给任何找到 URL 的人。它不是让服务器长期在线的方式。
它确实做对了这类门禁通常搞错的部分:比较是恒定时间的,cookie 携带的是密钥的 HMAC 而不是密钥本身,而且 websocket 升级和页面一起被门禁——如果只给 HTML 加门禁而不给 /ws 加,就等于锁了门却开着窗户。
测试
bun test
bun run src/smoke.tssmoke.ts 会创建一个一次性房间,针对它启动 MCP 服务器,并端到端驱动整个工具面。
尚未实现
账户、SSO、按房间的权限、托管。先本地使用,用隧道做演示。
设计文档见 docs/superpowers/specs/2026-08-19-spec-room-design.md。它和旁边的计划都是在该项目最初名称下书写的带日期记录,保持原样未动。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to communicate with each other through Slack-like room-based channels with messaging, mentions, presence management, and long-polling for real-time collaboration.194MIT
- AlicenseNot gradedqualityBmaintenanceEnables Cursor agents to communicate via a shared chat room, allowing them to ask questions, share status, and warn about conflicts while collaborating on the same repo.710MIT
- AlicenseNot gradedqualityFmaintenanceMCP server for collaborative markdown editing, allowing agents to write documents and humans to comment, with comments fed back as agent input.300,650MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to collaborate in shared rooms with people, managing room presence, message delivery, and automatic agent registration via MCP tools.MIT
Related MCP Connectors
Persistent docs and memory for AI agents — read, write, organize & search a shared workspace.
A room-based collaborative platform
MCP-native collaborative markdown editor with real-time AI document editing
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/rohanrichards/pairdown'
If you have feedback or need assistance with the MCP directory API, please join our Discord server