Cabinet 知识库 + Multica 任务调度 = 你的本地 AI 团队
📋 Issue 看板 • 🤖 多 Agent 并行 • 📚 知识自动沉淀 • 🔒 100% 本地运行
把两个开源项目合体,做成一个双击就能用的 AI Agent 桌面应用:
- Cabinet — AI 知识库:Markdown 文件系统 + WYSIWYG 编辑器 + Agent 面板
- Multica — AI 任务调度:Issue 看板 + 多 Agent 执行 + 实时输出
你创建 Issue → Agent 自动认领 → 执行任务 → 产出写入知识库 → 知识越用越多
由 GPT-5 和 Claude Opus 4.6 共同辅助创作。
| 你做的 | Agent 做的 |
|---|---|
| 创建 Issue:"调研 MCP 生态" | 搜索 + 整理 + 写报告到知识库 |
| 创建 Issue:"修复登录 bug" | 读代码 + 定位 + 提交 PR |
| 创建 Issue:"生成日报" | 拉 GitHub 数据 + 写 Markdown 日报 |
| @11 @二狗 "一起分析" | 两个 Agent 并行工作,各自回复 |
| 功能 | 说明 |
|---|---|
| Issue 看板 | 创建任务、设优先级、assign 给 Agent |
| 多 Agent | 11、二狗、22... 并行执行,@mention 协作 |
| 实时输出 | Agent 工作过程实时可见(thinking/tool/text 流) |
| 知识库 | Markdown 文件系统,Agent 产出自动沉淀 |
| WYSIWYG 编辑器 | 富文本编辑,代码块,表格,slash 命令 |
| Git 版本控制 | 每次保存自动 commit,可回滚到任意版本 |
| 项目管理 | 项目 + 子任务 + 看板视图 |
| 收件箱 | Agent 回复/任务完成的通知聚合 |
| 定时任务 | Cron 调度,每天自动跑 GitHub 监控等 |
| 终端 | 内嵌 Web 终端(xterm.js) |
| 100% 本地 | 数据不离开你的机器,嵌入式 PostgreSQL |
- 从 Releases 下载
Cabinet-xxx-arm64.dmg - 双击安装,拖到 Applications
- 打开 Cabinet,等几秒自动初始化完成
Cabinet 会自动启动内嵌的 multica-server(端口 18080)、创建默认用户和认证 token、初始化知识库。你不需要配置任何东西。
- 安装 Agent 运行依赖(至少装一个):
# Claude Code(推荐)
npm install -g @anthropic-ai/claude-code
# 首次运行需要登录
claude
# 或者 Codex
npm install -g @openai/codex- 安装并启动 Agent Daemon:
# 安装 multica CLI
brew install multica-ai/tap/multica
# 登录到 Cabinet 的内嵌 server
multica auth login --server-url http://localhost:18080
# 输入 PAT token(在 Cabinet 应用的终端里运行以下命令获取):
# cat ~/Library/Application\ Support/cabinet/multica-pat.json
# 选择要监听的 workspace
multica workspace list # 查看 workspace ID
multica workspace watch <workspace-id> # 开始监听
# 启动 daemon(保持运行)
multica daemon start --foreground- 完成!在 Cabinet 里创建 Issue 并 assign 给 Agent,它会自动执行任务。
适合想修改代码、调试或二次开发的人。
| 依赖 | 版本 | 安装 |
|---|---|---|
| Node.js | 20+ | brew install node |
| Go | 1.26+ | brew install go |
| PostgreSQL | 17 | brew install postgresql@17(或用 Docker) |
| pnpm | 9+ | npm install -g pnpm |
| 至少一个 AI CLI | Claude Code 或 Codex(见上面) |
git clone https://github.com/8676311081/cabinet.git
cd cabinet
npm installCabinet 的事项管理、Agent 调度等功能由 Multica 后端提供。你需要单独启动它:
# 克隆 multica(如果还没有)
cd ..
git clone https://github.com/multica-ai/multica.git
cd multica
# 启动数据库 + 运行迁移
make setup # 首次:创建数据库、运行迁移
make dev # 启动 Go 后端(端口 8080)
make setup会自动启动 PostgreSQL Docker 容器、创建multica数据库、运行所有迁移。 如果你不用 Docker,确保本地 PostgreSQL 在运行,然后编辑.env里的DATABASE_URL。
cd ../cabinet
cp .env.example .env.local编辑 .env.local:
# 指向你的 multica 后端
MULTICA_API_URL=http://localhost:8080
NEXT_PUBLIC_MULTICA_API_URL=/multica-api
NEXT_PUBLIC_MULTICA_WS_URL=ws://localhost:8080/ws
# 认证 token(从 multica 获取)
# 先在 multica 里创建用户并获取 PAT:
# cd multica/server
# multica auth login
# multica config show # 查看 token
# 把 token 填到这里:
NEXT_PUBLIC_MULTICA_PAT=mul_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx如何获取 PAT token:
cd multica/server go run ./cmd/multica auth login # 浏览器登录 go run ./cmd/multica config show # 显示 token复制
token字段的值填到.env.local的NEXT_PUBLIC_MULTICA_PAT里。
npm run dev:all # 启动 Next.js(3000)+ Cabinet Daemon(3001)打开 http://localhost:3000,应该能看到知识库和 Multica 的事项/收件箱。
cd ../multica/server
# 监听 workspace
go run ./cmd/multica workspace list # 查看 workspace ID
go run ./cmd/multica workspace watch <ws-id> # 开始监听
# 启动 daemon
go run ./cmd/multica daemon start --foregroundDaemon 启动后会自动:
- 注册 runtime(Claude/Codex/OpenCode)
- 开始轮询任务队列
- 认领并执行被 assign 给 Agent 的 Issue
- 在 Cabinet 左侧点"事项"
- 点 board 列头的 "+" 创建一个 Issue
- Assign 给一个 Agent
- 在 Issue 详情页看 Agent 实时工作过程
- 完成后检查知识库是否有新文档
cabinet/ # 前端 + Electron 桌面应用
├── src/ # Next.js 源码
├── electron/ # Electron 主进程
├── packages/
│ ├── multica-core/ # Multica 数据层(API、Store、Hook)
│ ├── multica-views/ # Multica UI 组件(Issue、Inbox 等)
│ └── multica-ui/ # 基础 UI 组件(shadcn/base-ui)
├── server/ # Cabinet Daemon(终端、定时任务)
└── data/ # 知识库文件(Markdown)
multica/ # 后端 + CLI + Agent 运行时
└── server/
├── cmd/server/ # HTTP API 服务
├── cmd/multica/ # CLI 工具
├── internal/daemon/ # Agent Daemon(任务执行引擎)
├── internal/handler/ # API Handler
├── pkg/agent/ # Agent 后端(Claude/Codex/OpenCode)
└── migrations/ # 数据库迁移
# Cabinet
npm run dev:all # 启动 Cabinet 开发服务
npm run build # 生产构建
npm run electron:package # 打包 Electron 应用
# Multica
make dev # 启动后端
make test # 运行测试
make sqlc # 重新生成 SQL 代码(修改 queries/ 后需要)
make daemon # 启动 daemon适合部署到服务器,或不想装 Node/Go 的情况。
git clone https://github.com/8676311081/cabinet.git
git clone https://github.com/multica-ai/multica.git
cd cabinet
docker compose up -d会启动三个容器:
| 容器 | 端口 | 说明 |
|---|---|---|
| postgres | 5432(内部) | PostgreSQL 17 + pgvector |
| multica | 18081 | Multica API 后端 |
| cabinet | 3000 | Cabinet Web UI |
打开 http://localhost:3000 即可使用。
注意:Docker 模式下 Agent Daemon 需要在宿主机运行(因为 daemon 要调用本地的 Claude/Codex CLI)。
multica auth login --server-url http://localhost:18081 multica workspace list multica workspace watch <workspace-id> multica daemon start --foreground
停止:docker compose down
清除数据:docker compose down -v
在远程服务器上部署,可以随时随地通过浏览器访问。
# 在 VPS 上
ssh your-server
git clone https://github.com/8676311081/cabinet.git
git clone https://github.com/multica-ai/multica.git
cd cabinet
docker compose up -d
# 配置 Nginx 反代(可选)
# server {
# listen 80;
# server_name your-domain.com;
# location / { proxy_pass http://127.0.0.1:3000; }
# location /multica-api/ { proxy_pass http://127.0.0.1:18081/api/; }
# }Agent Daemon 可以在你本地电脑跑,连远程 server:
multica auth login --server-url http://your-server:18081 multica daemon start --foreground这样 Agent 在你本地执行任务,但任务调度和知识库在服务器上。
在本地跑 Cabinet,让同一网络的其他人通过浏览器访问。
# 启动 Cabinet(默认绑定所有网卡)
npm run dev:all
# 查看你的局域网 IP
ifconfig | grep "inet " | grep -v 127.0.0.1
# 比如 192.168.1.100其他人在浏览器打开 http://192.168.1.100:3000 即可访问。
| Claude Managed Agents | 本项目 | |
|---|---|---|
| 运行环境 | Anthropic 云端 | 你的电脑 |
| 费用 | $0.08/session-hour + token | 只有 token 费用 |
| 数据隐私 | 云端 | 100% 本地 |
| 知识沉淀 | 需外接 Notion/Slack | 内置知识库 |
| 自定义 | API 调用 | 完全可控源码 |
| 多 Agent | 支持 | 支持 |
| 实时输出 | WebSocket | WebSocket |
详见 FORK.md。主要改动:
Cabinet 侧:
- Multica 集成(事项/项目/收件箱/智能体)
- 固定端口 18080 + 动态 PAT 认证
- 知识库 sidebar 修复 + 折叠状态持久化
- Create Issue 崩溃修复
- 中文汉化
Multica 侧:
- Agent 流式 idle timeout(5min 无输出自动 kill)
- Ghost task 自动清理
- 任务完成后自动 push 到知识库
- 多 assignee 支持
- 知识库索引自动注入 Agent context
- 嵌入式模式 seed owner
- Cabinet by Hila Shmuel — AI-first 知识库,MIT License
- Multica by Multica AI — AI Agent 任务调度平台,MIT License
本项目由 GPT-5 和 Claude Opus 4.6 共同辅助完成:
- GPT-5:前期架构设计、功能规划
- Claude Opus 4.6 (1M context):代码实现、调试、Review、测试
- Cabinet 上游未指定显式 License
- Multica 使用 Modified Apache 2.0(禁止未授权 SaaS 托管,内部使用 OK)
- 本 Fork 的修改部分采用 Apache 2.0
详见 LICENSE 文件。本项目仅供个人/内部使用,不作为商业托管服务。