跳到主要内容
项目档案应用项目

Cabinet:AI 优先的本地知识库系统 - 自托管 Markdown 知识库与智能代理团队完整指南

Cabinet 是一个 AI 优先的知识库和初创公司 OS,所有数据以 Markdown 文件存储在本地,无数据库、无供应商锁定。提供具有长期记忆的 AI 代理、定时自动化任务、WYSIWYG 编辑器,支持自托管确保数据安全。本页详细介绍项目定位、安装步骤、使用方法和核心技术架构。

2,869TypeScriptStar 于 2026年4月9日2026年9月19日 更新

AI 总结

Cabinet 是一个 AI 优先的本地知识库与初创公司操作系统,以 Markdown 文件为核心存储,提供具有长期记忆的 AI 代理团队与自动化工作流,确保数据完全自主可控。

中文项目介绍

Cabinet 是一个 AI 优先的知识库和初创公司操作系统,其核心设计理念是将所有信息以 Markdown 文件形式存储在本地磁盘,无需传统数据库,支持完全自托管,确保用户数据永不离开自己的机器。 该项目旨在解决现代 AI 使用中的关键痛点:每次开启新的 AI 会话时上下文记忆丢失、项目文档分散在不同平台、AI 对话缺乏持久记忆、以及在不同工具间手动复制粘贴的繁琐流程。Cabinet 通过统一的知识库和智能 AI 代理系统,让信息保持连贯且可追溯,实现"你的知识库,你的 AI 团队"。 从技术实现来看,Cabinet 采用 Next.js App Router 架构构建前端与 API 层,集成 Tiptap 富文本编辑器支持 WYSIWYG 和 Markdown 编辑。后端包含 cabinet-daemon 守护进程处理定时任务调度,使用 better-sqlite3 进行轻量级数据持久化,通过 chokidar 监控文件系统变化,利用 flexsearch 实现高效搜索。AI 能力通过统一的 provider-runtime 调用各类 LLM 提供商,并支持 Server-Sent Events (SSE) 实现实时状态推送。 适用场景广泛:个人或团队知识管理、AI 辅助决策与研究、自动化监控与报告、构建 24 小时工作的 AI 团队,以及作为初创公司的整体运营操作系统。其哲学强调数据所有权、Git 版本控制、自带 AI、简洁设计、安全优先和自托管。

详细信息与使用说明

1. 项目定位与核心理念

Cabinet 定位为 AI-first 的知识库与初创公司操作系统,核心哲学包括:数据所有权(Yours)——所有数据本地存储、可见、可移植;Git everything——记忆应有历史,可审计、可回滚;BYOAI(Bring Your Own AI)——支持 Claude、OpenAI、本地模型等多种提供商;KISS(Keep It Simple)——使用plain files,系统可理解、可检查、可 hack;Security——安全为设计需求而非事后补充;Self-hosted——完全自托管,环境由用户控制。项目目标是让 AI 团队像真实团队一样工作,同时避免企业级工作流软件的复杂性。

2. 解决的关键问题

Cabinet 主要解决三大痛点:一是 AI 会话记忆缺失——每次新对话都丢失上下文、项目决策和研究资料;二是知识分散——文档散落在 Notion 等不同工具,缺乏统一视图;三是手动同步——在多个平台间复制粘贴,效率低下且易出错。通过将一切存储为本地 Markdown 文件,并赋予 AI 代理长期记忆和自动化能力,Cabinet 实现知识的持久化、可追溯和自动化处理,让 AI 真正成为团队的延伸而非每次重启的陌生人。

3. 主要功能特性

核心功能包括:WYSIWYG + Markdown 编辑器(基于 Tiptap,支持表格、代码块、任务列表);AI 代理系统(每个代理有目标、技能、记忆和 scheduled jobs);定时作业(基于 node-cron,如每 6 小时 scout Reddit、周一生成周报);嵌入式 HTML 应用(可 drop index.html 到知识库);实时事件推送(通过 SSE 更新代理状态、目标进度、Slack 消息);每日摘要(结合 git 日志和任务板生成 markdown 报告);自动链接(基于任务描述推荐相关页面)。所有数据以文件形式存储,支持 Git 版本控制。

4. 安装与部署方式

本地开发安装:1) 使用 npx 创建项目:`npx create-cabinet@latest`;2) 进入目录:`cd cabinet`;3) 启动开发环境:`npm run dev:all`(同时启动 Next.js 前端和 cabinet-daemon 守护进程);4) 访问 http://localhost:3000 完成 onboarding wizard 配置。桌面应用:运行 `npm run electron:start` 启动 Electron 封装版本。生产构建:`npm run build` 构建 Next.js,`npm run electron:package` 打包桌面应用。项目支持自托管,数据完全本地存储,无外部依赖。仓库中未明确给出 Docker 或云部署的具体步骤。

5. 基础使用流程

1) 启动后打开浏览器访问本地服务,跟随 onboarding wizard 回答 5 个问题以定制 AI 团队;2) 使用 Tiptap 编辑器创建和编辑 Markdown 文档,支持富文本、表格、代码块等;3) 通过界面创建和管理 AI 代理,设置其目标、技能和定时作业;4) 代理会自动执行任务、更新记忆、生成报告,状态通过 SSE 实时推送;5) 所有文件存储在本地 data 目录,可用 Git 管理版本历史;6) 可选集成 Slack 获取消息作为对话触发源。高级功能包括自动链接相关页面、生成每日摘要、监控文件系统变化等。

6. 技术架构与实现特点

架构上,Cabinet 采用 Next.js 16 App Router 作为全栈框架,API 路由处理代理管理、作业调度、对话引擎等请求。核心模块包括:agent-manager(代理会话)、job-manager(定时作业持久化)、conversation-runner(对话提示构建)、persona-manager(代理人格与记忆)、goal-manager(目标进度跟踪)、slack-manager(Slack 集成)、daemon-client(与守护进程通信)、provider-runtime(统一 AI 提供商调用)。数据层使用 better-sqlite3 存储元数据,核心内容以 Markdown/YAML 文件存于文件系统。守护进程 cabinet-daemon 负责 cron 作业调度,前端通过 SSE 接收实时更新。项目强调可检查性、可 hack 性和安全性,serverExternalPackages 明确排除 node-pty、simple-git、better-sqlite3 以避免打包问题。

思维导图

Cabinet
核心存储层
本地文件系统
Markdown/YAML 文件
SQLite 元数据
Git 版本控制
前端界面
Next.js 16 App Router
Tiptap 编辑器
Tailwind CSS
实时仪表盘 (SSE)
后端服务
API 路由层
cabinet-daemon 守护进程
terminal-server 终端服务
daemon-client 通信
AI 代理系统
代理管理 (agent-manager)
人格与记忆 (persona-manager)
目标跟踪 (goal-manager)
对话引擎 (conversation-runner)
提供商运行时 (provider-runtime)
自动化与集成
定时作业调度 (node-cron)
文件监控 (chokidar)
搜索索引 (flexsearch)
Slack 集成
每日摘要生成
自动页面链接
桌面应用
Electron 封装
Electron Forge 打包
DMG/ZIP 分发

常见问题

Cabinet 如何确保数据所有权和隐私?

Cabinet 将所有数据以 Markdown 文件形式存储在用户本地磁盘,不依赖任何云端数据库,支持完全自托管。数据永不离开用户的机器,用户可通过 Git 进行版本控制、审计和回滚。项目哲学明确强调"Yours"和"Self-hosted",确保用户对信息拥有完全控制权。

Cabinet 支持哪些 AI 模型提供商?

Cabinet 采用 BYOAI(Bring Your Own AI)理念,通过统一的 provider-runtime 调用外部 LLM 提供商。从仓库信息可见,它设计为支持 Claude、Codex、OpenCode、本地模型及未来出现的任何新模型,无需将知识锁定在单一提供商生态系统中。具体集成配置方式在仓库中未详细列出,但架构上支持扩展。

如何安装和启动 Cabinet?

本地开发安装步骤明确:1) 运行 `npx create-cabinet@latest` 创建项目;2) 进入目录 `cd cabinet`;3) 执行 `npm run dev:all` 同时启动前端和后台守护进程;4) 访问 http://localhost:3000 完成初始配置。如需桌面应用,可运行 `npm run electron:start`。生产环境需先 `npm run build` 再使用 Electron Forge 打包。仓库中未提供 Docker 或一键云部署方案。

Cabinet 与传统知识管理工具(如 Notion)有何区别?

核心区别在于:1) 存储方式——Cabinet 使用纯文本 Markdown 文件存储在本地,Notion 使用封闭的云数据库;2) AI 集成——Cabinet 的 AI 代理具有长期记忆和自动化能力,能像团队一样工作,Notion AI 主要是辅助编辑;3) 可移植性——Cabinet 数据可随时用 Git 管理、迁移或导出,Notion 数据导出受限;4) 自动化——Cabinet 内置定时作业和事件驱动代理,Notion 依赖第三方集成。Cabinet 追求"如果感觉像企业工作流软件就是错的,如果感觉像看团队工作就是对的"的体验。

Cabinet 是否支持团队协作?

从仓库信息可见,Cabinet 设计上支持团队场景(如示例数据中的 team 目录包含多个成员),但具体协作功能(如实时协同编辑、权限管理、多用户访问控制)在当前信息中未明确给出。项目定位包含"团队知识管理"和"初创公司 OS",暗示支持团队使用,但协作机制细节需进一步查看代码或文档确认。数据以文件形式存储,理论上可通过 Git 实现版本协作。