内容
# 🧠 Cerebro
一款快速、安全、以本地为优先的个人知识库,具备双重配置文件、MCP集成以支持AI编码工具、知识宫殿连接器和Confluence发布功能。
使用 **Rust 1.96.0** (2024版)、**Tauri 2.0**、**React 19**、**CodeMirror 6**和**TailwindCSS v4**构建。
## 功能特点
- **双重配置文件** — 分离个人和专业的知识领域
- **原生Markdown** — `.md`文件为真实来源,支持YAML frontmatter
- **维基链接** — `[[笔记名称]]` 支持 `#标题` 和 `|别名`
- **双向链接** — 自动的反向链接和正向链接跟踪
- **全文搜索** — SQLite FTS5 搭配 Porter词干提取
- **标签管理** — 统一的frontmatter `tags:` + 行内 `#tags`
- **每日笔记** — `/Daily/YYYY-MM-DD.md` 自动生成
- **知识图谱** — 交互式的D3.js 力导向图可视化
- **知识宫殿连接器** — 通过 `localhost:8080` 的 pgvector 进行语义/RAG搜索
- **Confluence发布器** — Markdown → Confluence存储格式 → REST API
- **Git同步** — 自动的配置文件版本控制
- **MCP服务器** — 通过stdio提供10种工具,支持JSON-RPC 2.0,适用于Copilot、Hermes等MCP客户端
- **Tauri 2.0 GUI** — 原生桌面应用(Linux + macOS),黑暗主题,分屏布局
- **命令行界面** — 完整的命令行接口,用于脚本编写和自动化
- **加密支持** — AES-256-GCM 配置文件加密支持
## 架构
```
cerebro/
├── src/ # 核心库(cerebro crate)
│ ├── config/ # TOML配置文件,配置文件管理
│ ├── storage/ # SQLite CRUD,FTS5,迁移
│ ├── parser/ # Markdown解析,frontmatter,维基链接
│ ├── links/ # petgraph 双向链接图
│ ├── search/ # 全文搜索包装器
│ ├── mcp/ # MCP服务器(JSON-RPC 2.0 over stdio)
│ ├── kp/ # 知识宫殿HTTP连接器
│ ├── publish/ # Confluence REST发布器
│ ├── sync/ # 基于Git的同步
│ └── cli/ # clap 命令行接口
├── crates/gui/ # Tauri 2.0 GUI应用
│ ├── src/main.rs # 19个Tauri命令连接到核心库
│ ├── frontend/ # React 19 + TypeScript 前端
│ │ ├── src/
│ │ │ ├── App.tsx # 主应用,包含图谱视图,预览,欢迎页面
│ │ │ └── components/ # 侧边栏,编辑器,搜索,状态栏
│ │ └── index.css # TailwindCSS v4 黑色主题
│ └── tauri.conf.json # Tauri 配置文件
├── migrations/ # SQLite模式迁移
└── tests/ # 集成测试(9个测试)
```
## 快速开始
### 命令行界面
```bash
# 构建发布版本
cargo build --release
# 初始化配置文件
cerebro init
# 创建笔记
cerebro notes create "我的第一篇笔记" -c "# 你好,世界\n\n这是我的第一篇笔记。"
# 搜索
cerebro search "你好 世界"
# 显示反向链接
cerebro backlinks "我的第一篇笔记"
# 启动MCP服务器(适用于Copilot/Hermes)
cerebro mcp
```
### 图形用户界面
```bash
# 依赖项(Linux)
sudo apt-get install -y pkg-config libwebkit2gtk-4.1-dev libgtk-3-dev \
libayatana-appindicator3-dev librsvg2-dev libsoup-3.0-dev \
libjavascriptcoregtk-4.1-dev
# 安装前端依赖项
cd crates/gui/frontend && npm install && cd ../../..
# 开发模式运行
cargo tauri dev
# 构建发布包
cargo tauri build
```
### MCP工具(适用于AI编码工具)
MCP服务器通过stdio暴露10种工具:
| 工具 | 描述 |
|------|-------------|
| `cerebro_search` | 全文搜索所有笔记 |
| `cerebro_read_note` | 按标题或路径读取笔记 |
| `cerebro_create_note` | 创建新笔记,附带可选标签 |
| `cerebro_update_note` | 更新现有笔记的内容 |
| `cerebro_delete_note` | 删除笔记 |
| `cerebro_list_notes` | 列出笔记,可选按标签筛选 |
| `cerebro_list_tags` | 列出所有标签及其计数 |
| `cerebro_backlinks` | 获取链接到指定笔记的笔记 |
| `cerebro_graph` | 获取完整知识图谱 |
| `cerebro_kp_search` | 通过知识宫殿进行语义搜索 |
## 配置
Cerebro在 `~/.cerebro/config.toml` 存储配置:
```toml
[app]
default_profile = "personal"
[profiles.personal]
display_name = "个人"
notes_dir = "notes"
encryption = false
[profiles.personal.knowledge_palace]
enabled = true
endpoint = "http://localhost:8080"
[profiles.professional]
display_name = "专业"
notes_dir = "notes"
encryption = false
```
## 开发
```bash
# 运行所有测试
cargo test
# 运行clippy
cargo clippy -- -D warnings
# 仅构建核心库
cargo build --release -p cerebro
# 仅构建GUI
cargo build --release -p cerebro-gui
# 前端开发
cd crates/gui/frontend
npm run dev
```
## 技术栈
| 组件 | 技术 |
|-----------|------------|
| 核心库 | Rust 1.96.0,2024版 |
| 存储 | SQLite + FTS5 |
| 解析器 | pulldown-cmark |
| 链接图 | petgraph |
| GUI框架 | Tauri 2.0 |
| 前端 | React 19 + TypeScript |
| 编辑器 | CodeMirror 6 |
| 样式 | TailwindCSS v4 |
| 图谱可视化 | D3.js 力导向图 |
| 命令行界面 | clap 4 |
| 搜索 | rusqlite FTS5 |
| HTTP客户端 | reqwest (知识宫殿连接器) |
| MCP | JSON-RPC 2.0 over stdio |
| 构建 | cargo + Vite |
## 许可证
MIT