Skip to content

Repository files navigation

第二大脑 · Second Brain

一个本地运行的网页看板 + 知识库,所有数据以 Markdown 文件形式直接存放在你的 Obsidian 仓库里 —— Obsidian 是 source of truth, 网页只是更好的输入和呈现层。

Dashboard

✨ 它能做什么

模块干什么
人物记录认识的人、联系方式、社交账号、状态、标签
任务看板视图(待办 / 进行中 / 已完成 / 已取消),优先级、截止日期、所属项目
项目把人物 / 任务 / 链接聚合到一个项目里
链接粘贴 URL 抓取标题 / 封面 / 描述,或深度抓取全文转 Markdown 入库
搜索跨人物 / 任务 / 项目 / 链接的全文搜索
双向同步网页和 Obsidian 编辑同一份 Markdown 文件

🎬 演示视频

也可在 Releases 页面 下载原始 .webm

📸 截图

仪表盘 — 统计卡片、即将到期、最近编辑、标签云
Dashboard
人物列表 — 头像、状态、标签
People
人物详情 — 字段卡 + Markdown 正文
Person detail
任务看板 — 四列状态自动归类
Tasks kanban
项目 + Wikilink[[人物/张三]] 双向引用,点击跳转
Project wikilink
链接详情 — link card 预览 + 抓取的正文
Link detail
暗色模式 — 右上角一键切换
Dark mode
移动端 — 390px 视口自适应
Mobile

🚀 快速开始

需要 Node.js 20+。

git clone https://github.com/lora-sys/second-brain.git
cd second-brain
npm install
npm start

打开浏览器访问 **http://127.0.0.1:3939**。

首次启动会在仓库根目录生成 config.json,里面默认指向 /home/lora/文档/Obsidian Vault。你可以直接在网页的「设置」页面修改 Vault 路径、端口、目录命名。

数据结构

每个实体 = 一个 Markdown 文件,路径在 Vault 下:

Obsidian Vault/
├── 10-People/ ← 人物
├── 20-Tasks/ ← 任务
├── 30-Projects/ ← 项目
└── 40-Links/ ← 链接

你可以直接在 Obsidian 里编辑任何文件 → 刷新网页就同步。

人物示例:

---type: personname: 张三status: activecompany: Acmerole: CTOcontact:
email: zhang@example.comsocial:
github: zhangsantags:
- 朋友
- 技术created: 2026-07-11T02:56:23.303Zupdated: 2026-07-11T02:56:23.303Z---
张三是我大学同学,现在是 CTO。
相关:[[30-Projects/my-second-brain]]

更多 schema 示例见 docs/data-model.md

🧠 设计原则

  • 本地优先:所有数据在你硬盘上的 Obsidian Vault 里,没有任何云同步
  • Obsidian 是 source of truth:网页只是输入层,文件可读可改
  • Git 友好:Markdown + YAML,纯文本,可以放进任何版本控制
  • 零依赖构建:原生 HTML/CSS/JS + Node HTTP,没有 webpack / vite 那一套
  • 可移植:Vault 用 Syncthing / iCloud / Dropbox 同步,多台机器无缝衔接

🛠 技术栈

技术
后端Node.js (vanilla HTTP) · js-yaml · jsdom
前端原生 HTML / CSS / JavaScript · marked
数据Markdown + YAML frontmatter
端口127.0.0.1:3939(仅本地)

整个项目没有框架(React / Vue 都没用),单文件服务 + 单文件前端, 理解起来 5 分钟,改起来 5 分钟。

📂 项目结构

second-brain/
├── server.mjs # 入口
├── config.json # 配置(vault 路径 / 端口 / 目录命名)
├── package.json
├── lib/
│ ├── server.mjs # HTTP 路由 + 静态文件服务
│ ├── vault.mjs # Markdown 文件 I/O + frontmatter
│ ├── frontmatter.mjs # YAML 解析 / 序列化(带容错)
│ └── linkfetch.mjs # 轻量 / 深度抓取,HTML → Markdown
├── public/
│ ├── index.html
│ ├── style.css
│ ├── app.js # 单页应用(hash 路由)
│ └── lib/marked.min.js
├── docs/
│ ├── assets/demo.webm
│ ├── screenshots/
│ ├── architecture.md
│ └── data-model.md
├── recordings/ # 录制脚本(git-ignore 了产物)
│ └── e2e-demo.mjs
├── CHANGELOG.md
├── CONTRIBUTING.md
└── LICENSE

🧭 路线图

按优先级递减:

  • 任务卡片拖拽切换看板列
  • 浏览器扩展(一键剪藏网页到 Vault)
  • PDF / Office 文档预览
  • 提醒 / 循环任务 / 任务依赖
  • 全文搜索升级到 SQLite FTS5
  • 多用户 / 多 Vault 支持
  • 主题系统(用户自定义色板 / 字体)
  • 移动端手势(滑动切换看板列等)

🤝 贡献

欢迎 PR / Issue!详细流程见 CONTRIBUTING.md

📝 更新日志

CHANGELOG.md

📄 协议

MIT — 随便用。

About

Personal second-brain dashboard — Obsidian vault sync, knowledge graph, daily notes, and task tracking in one local-first UI.

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages