面向网络化思考的开源大纲笔记应用,深度集成 AI 与 MCP 协议,支持双向链接与知识图谱。
项目定位#
Hulunote 是一款以"AI + Note Hippocampus"为理念的开源大纲笔记工具,灵感来自 Roam Research,定位为支持无限层级大纲嵌套、双向链接、交互式知识图谱的开源替代方案。
核心特性#
大纲与编辑#
- 无限层级子弹列表,支持拖放和节点缩放
- 每日笔记基于日期自动生成日志页面
- 多数据库隔离工作空间,每个数据库拥有独立的知识体系
知识网络#
[[wiki-style links]]双向链接语法,自动生成反向链接- 交互式力导向知识图谱,支持缩放、平移、点击导航
AI 能力#
- 内置 MCP 客户端,应用内直连 AI 模型与 MCP 服务器
- AI 笔记生成:描述主题后自动创建带层级大纲和双向链接的完整笔记
- 跨数据库 AI 搜索:跨所有数据库查找并关联相关想法
- AI 生成 Mermaid 图表(流程图、序列图、思维导图、甘特图等)
外部集成#
- MCP Server:暴露数据库浏览、笔记 CRUD、大纲节点管理等工具集,供 Claude Desktop 等 MCP 客户端调用
- OpenClaw 插件:AI Agent 可自主浏览、创建、组织知识库
架构概览#
前端#
- 语言:ClojureScript (74.1%)、JavaScript (13.1%)、CSS (11.4%)
- 状态管理:DataScript(ClojureScript 的内存 Datalog 数据库),实现实时查询与响应式更新
- UI 渲染:Rum(ClojureScript 的 React 替代方案)
- 构建:Shadow-cljs
后端#
- 框架:Axum 0.7 (Rust) + SQLx ORM
- 认证:JWT (jsonwebtoken),密码 bcrypt 哈希,Token 默认有效期 720 小时
- API 风格:RESTful,JSON 字段使用 kebab-case
- 性能声明:从原始 Clojure 实现迁移至 Rust,内存使用降低 5-10x,启动速度提升 10-20x,请求延迟降低 2-5x
- 兼容性:Rust 后端与原 Clojure 后端完全兼容
- 数据库:PostgreSQL (12+)
数据模型#
- 大纲节点 (Navigation Nodes):笔记内容由层级导航节点组成,支持无限嵌套
- 多数据库:顶层隔离单元,每个数据库包含独立的笔记集和知识图谱
MCP 集成架构#
- 独立 Python 进程作为 MCP Server,通过 Hulunote REST API 操作笔记
- 认证方式:通过环境变量
HULUNOTE_API_TOKEN传递 JWT Token
后端 API 端点#
| 类别 | 端点示例 | 认证 |
|---|---|---|
| 登录 | POST /login/web-login | 否 |
| 注册 | POST /login/web-signup | 否 |
| 数据库管理 | POST /hulunote/new-database, get-database-list, update-database | 是 |
| 笔记管理 | POST /hulunote/new-note, get-note-list, get-all-note-list, update-hulunote-note | 是 |
| 大纲导航 | POST /hulunote/create-or-update-nav, get-note-navs, get-all-nav-by-page, get-all-navs | 是 |
部署与配置#
前置要求#
PostgreSQL (12+)、Rust (1.70+)、Node.js / Yarn、Java(用于 ClojureScript / Shadow-cljs 编译)
部署步骤#
# 1. 初始化数据库
createdb hulunote_open
psql -d hulunote_open -f hulunote-rust/init.sql
# 2. 启动后端
cd hulunote-rust && cargo run
# 3. 启动前端开发服务器
cd hulunote && yarn && npx shadow-cljs watch hulunote
# 4. 浏览器打开 http://localhost:6689
后端环境变量 (.env)#
| 变量 | 说明 | 默认值 |
|---|---|---|
DATABASE_URL | PostgreSQL 连接字符串 | 必填 |
JWT_SECRET | JWT 签名密钥 | hulunote-secret-key |
JWT_EXPIRY_HOURS | Token 有效期(小时) | 720 |
PORT | 服务端口 | 6689 |
RUST_LOG | 日志级别 | hulunote_server=debug |
MCP Server 配置 (Claude Desktop)#
{
"mcpServers": {
"hulunote": {
"command": "python",
"args": ["/path/to/hulunote-mcp-server/hulunote_mcp.py"],
"env": {
"HULUNOTE_API_TOKEN": "your-jwt-token-here"
}
}
}
}
多平台支持#
Web、Electron 桌面端、Android、iOS、终端 TUI(移动端及 TUI 仓库链接未在 README 中给出,功能完整度待确认)。
适用场景#
- 研究知识管理:AI 自动阅读资料并创建带双向链接的结构化笔记
- 知识摘要:将长文档压缩为简洁的大纲节点
- 智能问答:针对笔记提问,AI 返回带引用的答案
- 跨库知识发现:AI 跨数据库发现隐藏的知识关联
- AI Agent 笔记管理:通过 OpenClaw 插件,AI Agent 可自主浏览、创建、组织知识库
- Claude Desktop 集成:通过 MCP Server,用自然语言读写笔记
待确认信息#
- Android / iOS 仓库链接未公开,可能仍在开发中
- OpenClaw 平台独立官网和文档暂未验证
- v1.1.0 具体变更内容未在 README 中详述
- 项目处于早期阶段(208 commits),实际生产使用案例待确认
- 原始 Clojure 后端仓库链接未找到
- 当前仅提供源码构建方式,未见 Docker 等一键部署方案