内容
# hubd
**适用于人类和AI代理团队的项目跟踪器 — 使用纯文本文件。**
您运行两个、三个、五个代理会话 — 不同的工具、不同的供应商 — 跨越您的项目。每个都非常出色,但每个都不知道其他代理的存在。您是协调层:复制粘贴上下文、重新解释状态、周一发现周五代理做了什么。
hubd 用最枯燥的技术取代了您的工作:**纯文本文件**。一个共享的总部,适用于您的整个团队 — 代理和人类:一个记录每个人所做的事情的日志、每个代理都可以等待的任务队列、跨项目任务和一个只读的看板来查看所有内容。所有内容都采用 Markdown 和 JSONL,存放在您拥有的文件夹中。
**不是运行器。**编排器启动您的编码代理并流式传输它们的输出 — 这使得编码更快。hubd 管理 **工作**:哪些项目、接下来是什么、谁来做、什么时候做、已经做了什么。编排器可以运行您的代理;hubd 运行您的项目。它们可以组合使用。
## Unix pair
- **`hubd`** — 守护进程:一个 MCP 服务器(stdio,JSON-RPC 2.0),代理通过它进行通信。
- **`hub`** — 命令行界面:适用于人类的相同数据,不需要大型语言模型。
就像 `sshd` 和 `ssh` 一样。守护进程为代理服务;命令行界面为您服务。
## 快速入门
**选项 A — 创建公司(GitHub 模板)。** 在 [`hubd-company/`](hubd-company/) 目录中使用 **"使用此模板"** 按钮 — 或克隆并复制该文件夹到现有的私有存储库中。您将获得一个现成的组织结构:章程(AGENTS.md)、角色 onboarding、项目卡、队列、配方。雇用代理 = 一个全新的会话读取角色文件。此模板不包含在 npm 包中;它来自存储库。
**选项 B — 将二进制文件添加到您现有的内容中:
```bash
npm i -g @bzdos/hubd # 安装两个二进制文件:hubd(MCP 服务器)+ hub(命令行界面)
hub init # 搭建团队文件夹:AGENTS.md、INBOX.md、queues/
hub doctor # 检查 hub 基础、团队根目录、锁和队列
hub status # 一览所有项目
hub brief # 早间简报:任务、日志、锁
hub serve # localhost 上的只读看板
# 一次性,无需安装:npx -p @bzdos/hubd hub status
```
npm 包中包含:`hub/`(二进制文件 + 库)、`prompts/`、`README.md`、`LICENSE` 和 `HARVEST.md`。它不包含 `hubd-company/`。
连接您的代理(任何 MCP 客户端):
```bash
claude mcp add --scope user hubd -- npx -y @bzdos/hubd
```
没有 MCP?没问题 — 任何可以读写文件的模型都可以加入:粘贴 [`prompts/`](prompts/) 中的匹配块(Claude Code、Cursor 或任何无 MCP 代理),它就知道协议。
**为团队运行?** hubd 还通过 HTTP 提供 MCP 服务 — 一个共享的 hub,所有代理都指向它,带有 token gating 和多租户。参见 [self-hosting](docs/self-hosting.md)。
## 更新和数据存储位置
hubd 是一个工具,像 `git` 或 `node` 一样:您安装 **代码**,而您的数据是一个您拥有的文件夹。它们是两件独立的事情 — 这正是重点。
- **代码** — npm 包。像任何全局 CLI 一样更新:`npm i -g @bzdos/hubd@latest`(或使用 `npx -y @bzdos/hubd` 运行一次)。新版本提供引擎;它从不触及您的数据。
- **数据** — `HUBD_DIR`(默认为 `~/.hubd`):纯 Markdown + JSONL,您保留的。
- **多台机器?** 将 `HUBD_DIR` 设为 git 仓库,并同步您喜欢的任何内容 — 私有远程仓库通过 SSH 工作,不需要 GitHub。 每台机器从 npm 安装代码;您的数据在您自己的 git 中传输。两条独立的轨道:来自包的代码,文件夹中的数据。升级代码从不迁移或删除您的数据 — 事件日志是追加的,并且比任何一个版本的模式都更丰富。
## 工作原理
- **日志(INBOX.md)** — 追加的团队日志。每个代理在启动时读取它,在交接时写入它。您用眼睛读取它。
- **队列** — 按角色划分的消息队列。发送工作;代理在有工作到达之前阻塞在 `wait` 上,然后返回等待。无需轮询您,无需督促它们。队列有一个实时消费者 — 每个角色运行一个等待会话。
- **项目和任务** — 每个项目一张卡;具有所有者(代理或人类)和声明的跨项目任务作为软锁,以便两个代理不会相互冲突。
- **看板(只读)** — 卡片因代理移动而移动。唯一的按钮是 **⚙ 规则**,它打开 AGENTS.md。您不管理代理 — 您管理规则。
- **收获** — 一个粘贴的提示将任何工作对话框转换为项目摘要、任务和记录的决策。参见 [HARVEST.md](HARVEST.md)。
- **MCP + 文件,两个兼容性级别** — 智能客户端通过 MCP 连接;其他一切直接使用文件。如果 hubd 关闭,您的资料仍然只是 Markdown。
## 原则(违反这些原则 = 不是此产品)
文件优先。简单的服务器,智能代理 — **内部没有 AI**:hubd 存储和提供服务,智能来自您的代理。所有内容都可供人类阅读。零依赖。人类只读;写入访问通过规则流动。优雅的降级:没有 MCP → 文件;没有 hubd → 文件仍然可以原样读取 — 在任何编辑器、`grep` 或像 Obsidian 这样的 Markdown 应用程序中。参见 [使用任何工具阅读您的 hub](docs/interop.md)。
## hubd 不是什么
不是编排器(不启动代理或流式传输输出)。不是向量内存(日志存储您可以看到的事实,而不是嵌入)。不是适用于人类的 Jira(这里的人类是旁观者和立法者,而不是分配者)。不是另一个聊天(通过 *您的* 代理与 hubd 通信;手动 — 命令行界面;眼睛 — 看板)。
## 由它协调的团队构建
hubd 的自身开发通过 hubd 运行:一个人类和几个来自不同供应商的模型代理,通过上述文件进行协调。这是我们的日常测试 — 以及我们可以提供的最诚实的协议在实际使用下的示例,包括一个工具故障迫使一切都回到纯文件中,而工作只是继续进行。一个团队的故事,稍微匿名化处理过,自己报告,不是基准:[案例研究](docs/case-study.md)。
人类的主要工作是编辑规则。
## 定价
核心是 MIT,永久免费。个人使用永久免费。如果存在托管团队计划,则规则很简单:**代理免费,人类付费**。
## 路线图
已经交付:多机器同步(每台主机追加日志,无冲突)和通过 HTTP 的远程访问(token gating,多租户) — 参见 [self-hosting](docs/self-hosting.md)。
下一个(v0.2)— 图形/语义层:`[[project]] / #task / @role` 链接工具解析,任务类型具有自己的生命周期(一个 *通信* 任务知道它正在等待回复),以及 `hub next` 以显示您未阻塞的顶级任务。稍后:端到端远程模式(服务器从不读取您的工作)和一个代理您的个人 MCP 服务器的网关。文件格式是稳定的契约;其他一切都可以协商。
## 许可证
MIT。