基于 Andrej Karpathy's LLM Wiki 理念 构建的个人知识库系统
传统 RAG(检索增强生成):
- ❌ 每次查询都重新检索和推理
- ❌ 不保留历史推导结果
- ❌ 重复计算,效率低
LLM Wiki(持久化知识库):
- ✅ 增量构建持久化知识结构
- ✅ 知识累积而非重复推导
- ✅ 随着使用越来越智能
┌───────────────┐
│ 用户信息 │
│ (对话/笔记) │
└───────┬───────┘
│
▼
┌───────────────┐
│ OpenClaw │
│ (AI Agent) │
└───────┬───────┘
│
├───▶ 读取 wiki 笔记
├───▶ 更新/创建笔记
└───▶ 自动抓取内容
│
▼
┌───────────────┐
│ Obsidian │
│ (Vault) │
└───────────────┘
| 软件 | 版本 | 用途 | 安装 |
|---|---|---|---|
| Git | 2.30+ | 版本控制、同步 | git-scm.com |
| Python | 3.8+ | 运行自动化脚本 | python.org |
| Obsidian | 1.0+ | Markdown 笔记管理 | obsidian.md |
| OpenClaw | latest | AI Agent(可选) | openclaw.ai |
| 软件 | 用途 | 说明 |
|---|---|---|
| GitHub CLI (gh) | 创建 Release | 可选,手动也能创建 |
| VS Code | 编辑 Markdown | 可以用任何编辑器替代 |
# 必需
beautifulsoup4>=4.11.0
markdown>=3.4.0
python-dateutil>=2.8.0
requests>=2.28.0
# 可选
feedparser>=6.0.0 # RSS 抓取# 克隆仓库
git clone https://github.com/cpufreestyle/my-wiki.git
cd my-wiki
# macOS: 运行自动设置脚本
./scripts/setup-mac.sh
# Windows: 手动安装依赖
pip install -r requirements.txt
# 在 Obsidian 中打开
# Open Folder as Vault → 选择当前文件夹
# (可选)启动桌面 GUI(macOS)
./run-mywiki.command1. 安装 Git
# 使用 Homebrew
brew install git
# 或下载安装包
# https://git-scm.com/download/mac2. 安装 Python 3
# 使用 Homebrew
brew install python@3.11
# 或下载官方安装包
# https://www.python.org/downloads/macos/3. 安装 Obsidian
# 使用 Homebrew
brew install --cask obsidian
# 或下载 .dmg
# https://obsidian.md/download4. 验证安装
git --version
python3 --version
obsidian --version # 如果命令行启动不行,直接从 Applications 打开# 克隆仓库
git clone https://github.com/cpufreestyle/my-wiki.git
cd my-wiki
# 运行 Mac 自动设置脚本
./scripts/setup-mac.sh设置脚本会自动:
- ✅ 检测 Python 3 和 pip3
- ✅ 安装 Python 依赖
- ✅ 设置脚本权限
- ✅ 检测 Obsidian 安装
- ✅ 为现有笔记添加 YAML frontmatter
- ✅ 创建必要文件夹
- 打开 Obsidian
- 点击 "Open folder as vault"
- 选择
/path/to/my-wiki文件夹 - 给 vault 起个名字(推荐:
my-wiki) - 完成!
1. 安装 Git
- 下载:https://git-scm.com/download/win
- 安装时选择 "Use Git from the command line and also from 3rd-party software"
2. 安装 Python 3
- 下载:https://www.python.org/downloads/windows/
- 重要:安装时勾选 "Add Python to PATH"
3. 安装 Obsidian
- 下载:https://obsidian.md/download
- 安装
.exe文件
# 克隆仓库
git clone https://github.com/cpufreestyle/my-wiki.git
cd my-wiki
# 安装 Python 依赖
pip install -r requirements.txt
# 为现有笔记添加 frontmatter(可选)
python scripts/add_frontmatter.py- 打开 Obsidian
- 点击 "Open folder as vault"
- 选择
C:\path\to\my-wiki文件夹 - 给 vault 起个名字
- 完成!
# 安装依赖 (Ubuntu/Debian)
sudo apt update
sudo apt install git python3 python3-pip obsidian
# 克隆仓库
git clone https://github.com/cpufreestyle/my-wiki.git
cd my-wiki
# 安装 Python 依赖
pip3 install -r requirements.txt
# 运行设置脚本(如果适用)
./scripts/setup-mac.sh # 可能需要修改以适应 Linuxgraph TD
A[开始] --> B{操作系统}
B -->|macOS| C[运行 setup-mac.sh]
B -->|Windows| D[手动安装依赖]
B -->|Linux| E[手动安装依赖]
C --> F[克隆仓库]
D --> F
E --> F
F --> G[在 Obsidian 中打开]
G --> H[开始使用]
H --> I{使用方式}
I -->|手动记录| J[在 Obsidian 中编辑]
I -->|AI 辅助| K[通过 OpenClaw 对话]
J --> L[保存笔记]
K --> L
L --> M[推送到 GitHub]
M --> N[同步到其他设备]
1. 打开 Obsidian
↓
2. 按 Cmd+P → "Daily notes: Open today's note"
↓
3. 编辑笔记(添加想法、链接、标签)
↓
4. 保存 (Cmd+S)
↓
5. 推送到 GitHub (可选)
git add .
git commit -m "Update notes"
git push
1. 与 OpenClaw 对话
"今天的会议讨论了..."
↓
2. OpenClaw 自动提取关键信息
↓
3. OpenClaw 更新相关 wiki 页面
- 每日笔记 (daily/YYYY-MM-DD.md)
- 项目页面 (projects/*.md)
- 人物页面 (people/*.md)
↓
4. 在 Obsidian 中查看更新
每 2 小时 (Heartbeat):
↓
1. 运行 auto_fetch.py
- 抓取 GitHub 提交
- 抓取 RSS 订阅
↓
2. 生成 Markdown 文件
- daily/rss/YYYY-MM-DD-*.md
- projects/*-updates.md
↓
3. 更新索引 (update_index.py)
↓
4. 推送到 GitHub
my-wiki/
├── README.md # 本文件 (v2.10.1)
├── INDEX.md # 知识索引(自动生成)
├── wiki_app.py # 桌面端主程序(PySide6 GUI:日记/心情/提醒/待办/搜索/标签/报告/Share)
├── wiki_tabs_todo.py # 待办清单标签页 🆕
├── wiki_tabs_search.py # 全文搜索标签页 🆕
├── wiki_tabs_tags.py # 标签浏览标签页 🆕
├── wiki_tabs_report.py # 周报 / 月报标签页 🆕
├── wiki_data.py # 数据层(日记/心情/提醒/待办,无 GUI 依赖)
├── wiki_report.py # 周报 / 月报生成器 🆕
├── wiki_tool.py # 统一工具入口
├── wiki_links.py # 双链解析 / 反向链接 / 孤儿与失效链接检测([[wikilink]],零依赖)🆕
├── rag.py # 语义 RAG 检索引擎 (BM25 / Ollama embedding)
├── voice_mood.py # 语音心情(ffmpeg 录音 + SpeechRecognition 在线识别)🆕
├── reminder_ui.py # 提醒桌面端 UI 🆕
├── reminder_rrule.py # 重复提醒规则引擎(RRULE 子集,零依赖,融合 dateutil/RFC 5545 语义)🆕
├── theme.py # 统一设计 token(Apple 风浅/深色)🆕
├── reminder_web.html # 提醒 Web UI(支持深色模式)🆕
├── daily_web.html # 日记 Web UI(模板 / 标签提取 / 深色模式)🆕
├── mood_web.html # 心情 Web UI(心情分析 / 语音 / 深色模式)🆕
├── todo_web.html # 待办 Web UI(优先级 / 截止日期,接 /api/todos)🆕
├── FIGMA_DESIGN_SPEC.md # Figma 设计规格文档 🆕
├── modules/ # 功能模块 🆕
│ ├── video-analysis/ # 视频分析
│ │ ├── README.md
│ │ └── analyze.py
│ ├── memo-sync/ # Memo 同步
│ │ ├── README.md
│ │ └── sync.py
│ ├── obsidian-sync/ # Obsidian 双 Vault 同步
│ │ ├── README.md
│ │ └── sync.py
│ ├── a2a-agent/ # A2A Agent 网络文档
│ │ └── README.md
│ ├── shared-wiki/ # 共享 Wiki 中枢(MCP Server + Agent 发现)🆕
│ │ ├── README.md
│ │ ├── wiki_core.py
│ │ ├── mcp_server.py
│ │ ├── agent_registry.py
│ │ └── obsidian_bridge.py
│ └── skills-loader/ # 技能加载器
│ ├── README.md
│ └── loader.py
├── .obsidian/ # Obsidian 配置
│ ├── app.json # 应用设置
│ ├── templates/ # 模板
│ │ ├── daily-note.md # 每日笔记模板
│ │ └── project.md # 项目笔记模板
│ └── ...
├── daily/ # 每日笔记
│ ├── 2026-07-01.md # 今日笔记
│ ├── 2026-05-22.md # 历史笔记
│ └── rss/ # RSS 抓取内容
│ └── 2026-05-27-github-*.md
├── projects/ # 项目页面
│ ├── my-wiki.md # 本项目
│ ├── stock-crewai.md # 股票交易系统
│ └── *-updates.md # 项目更新日志
├── concepts/ # 概念/技术
│ ├── LLM_Wiki.md # LLM Wiki 理念
│ └── RAG_vs_Wiki.md # RAG vs Wiki 对比
├── people/ # 人物页面
│ └── Michael_Qiu.md # 人物笔记
├── scripts/ # 自动化脚本
│ ├── setup-mac.sh # Mac 设置脚本
│ ├── auto_fetch.py # 自动抓取
│ ├── fetch_rss.py # RSS 抓取
│ ├── update_index.py # 更新索引
│ ├── add_frontmatter.py # 添加 frontmatter
│ └── generate_obsidian_uri.py # 生成 Obsidian URI
├── attachments/ # 附件(图片等)
├── requirements.txt # Python 依赖
├── run-mywiki.command # macOS 一键启动桌面 GUI 🆕
├── MyWiki.app/ # macOS 应用包(可选)🆕
├── MyWiki.spec # PyInstaller 打包配置 🆕
├── SPEC.md # 项目契约规格(入口/路由/打包资源/验收 harness)🆕
└── .gitignore # Git 忽略规则
项目契约规格 (SPEC.md) —— 改动代码前应对照的「硬契约」清单(可核对、有测试守门):
- 三个入口:
mywiki(CLI)/mywiki-app(PySide6 桌面)/mywiki-server(本地 Web) - HTTP 路由与静态白名单:GET / POST 全量端点 + 目录与扩展名白名单
- 目录边界:
brain/daily/wiki/只读,vendor/mediapipe/只增不改 - 打包契约:
MyWiki.spec必带资源清单 + 版本单一数据源pyproject.toml - 验收 harness:
python tests/run_all.py+node --test+ 冒烟脚本
MyWiki v2.10.1 集成以下功能模块,位于 modules/ 目录:
| 模块 | 目录 | 功能 |
|---|---|---|
| Video Analysis | modules/video-analysis/ |
FFmpeg 帧提取 + Vision 逐帧分析 → Markdown 报告 |
| Memo Sync | modules/memo-sync/ |
与本地 Memo (MemoAI) 应用双向同步 |
| Obsidian Sync | modules/obsidian-sync/ |
多 Vault 同步(Documents + Wiki) |
| A2A Agent | modules/a2a-agent/ |
Google A2A 协议 Agent 网络文档索引 |
| Shared Wiki | modules/shared-wiki/ |
MyWiki × Obsidian × 所有 Agent 共享中枢(MCP Server + Agent 发现) |
# 所有扩展模块已统一到 wiki_tool.py 入口:
# 视频分析:ffprobe → 抽帧 → 关键帧采样 → Markdown 报告骨架
python wiki_tool.py video <video_path> --interval 30 --title "标题"
# Memo 双向同步
python wiki_tool.py memo push <file.md> --title "标题"
python wiki_tool.py memo push-dir <dir> --pattern "*.md"
python wiki_tool.py memo list --limit 20
python wiki_tool.py memo search "关键词"
python wiki_tool.py memo pull --limit 10
# Obsidian 多 Vault 同步
python wiki_tool.py sync-obsidian # 同步到所有 Vault
python wiki_tool.py sync-obsidian --vault documents # 仅 Documents
python wiki_tool.py sync-obsidian --generate-index # 仅重建各 Vault 首页
# 共享层:MCP Server(stdio,由宿主 Agent 拉起,让所有 Agent 读写同一 Wiki)
python wiki_tool.py serve
# 发现本机 Agent / Obsidian Vault
python wiki_tool.py agents # 发现电脑里所有 Agent
python wiki_tool.py obsidian # 发现 Obsidian Vault
# 广播知识更新给所有在线 Agent
python wiki_tool.py broadcast wiki.updated daily/2026-07-12.md
# 各模块也可直接以独立脚本运行(python modules/<模块>/<脚本>.py),效果相同。modules/
├── video-analysis/
│ ├── README.md # 模块文档
│ └── analyze.py # 视频分析入口(ffprobe → ffmpeg → 采样 → 报告)
├── memo-sync/
│ ├── README.md # 模块文档
│ └── sync.py # Memo SQLite 同步脚本
├── obsidian-sync/
│ ├── README.md # 模块文档
│ └── sync.py # 多 Vault 同步脚本
└── a2a-agent/
└── README.md # A2A 网络文档索引
统一的命令行入口,集成所有模块:
# 基础命令
python wiki_tool.py update # 更新 INDEX.md
python wiki_tool.py daily # 创建今日笔记
python wiki_tool.py search <query> # 语义搜索 wiki
python wiki_tool.py capture <文本> # 快速捕捉到 inbox/
python wiki_tool.py links <笔记> # 出链(无参显示出链最多的笔记)
python wiki_tool.py backlinks <笔记> # 反向链接
python wiki_tool.py orphans # 孤儿笔记 + 失效链接
# 复刻的付费功能
python wiki_tool.py publish # 导出静态站点(Obsidian Publish)
python wiki_tool.py clip <url> # 剪藏网页为笔记(Web Clipper)
python wiki_tool.py review # 间隔重复复习(RemNote/Readwise)
python wiki_tool.py cards # 列出所有复习卡片
python wiki_tool.py digest # 每日摘要(Notion AI)
# 扩展模块(已统一到本入口)
python wiki_tool.py video <path> # 视频分析
python wiki_tool.py memo <sub> # Memo 同步(push/push-dir/pull/list/search)
python wiki_tool.py sync-obsidian # 同步到 Obsidian 多 Vault
python wiki_tool.py serve # 启动 MCP Server(Agent 可接入)
python wiki_tool.py agents # 发现本机所有 Agent
python wiki_tool.py obsidian # 发现 Obsidian Vault
python wiki_tool.py broadcast <event> [rel] # 广播 Wiki 更新- ✅ 完整配置:预设的 Obsidian 设置(
.obsidian/app.json) - ✅ 核心插件:templates, daily-notes, calendar, dataview, tag-pane, outline
- ✅ 笔记模板:每日笔记和项目笔记模板
- ✅ YAML Frontmatter:所有笔记包含元数据(title, date, tags, type)
- ✅ 自动抓取:从 GitHub、RSS 自动抓取内容
- ✅ 自动索引:自动生成和更新知识索引
- ✅ 自动标签:自动提取标签
- ✅ 每周回顾:自动生成每周摘要
- ✅ 读取笔记:OpenClaw 可以直接读取 wiki 笔记
- ✅ 更新笔记:OpenClaw 可以创建和更新笔记
- ✅ 智能搜索:基于内容的语义搜索
- ✅ 自动总结:自动生成项目摘要和技术回顾
- ✅ macOS:自动设置脚本(
setup-mac.sh) - ✅ Windows:详细安装指南
- ✅ Linux:兼容(可能需要手动配置)
- ✅ 版本控制:所有更改可追溯
- ✅ 多设备同步:通过 GitHub 同步
- ✅ 自动推送:定时推送到远程仓库
- ✅ 备份:Gitee 备份(可选)
- ✅ 隐私保护:数据不离开本地,完全离线运行
- ✅ 多解决方案:支持 Ollama、LM Studio、GPT4All、llama.cpp
- ✅ OpenAI 兼容 API:轻松集成到 OpenClaw 和 Obsidian
- ✅ 成本节约:无 API 费用,一次性硬件投入
- ✅ 详细指南:查看 LOCAL-MODELS.md
快速开始(Ollama):
# 安装 Ollama
brew install ollama
# 启动服务
ollama serve &
# 拉取模型
ollama pull llama3
# 配置 OpenClaw 使用本地模型
# 编辑 ~/.config/openclaw/config.yaml- ✅ 单一事实源:Obsidian 与所有 Agent 读写同一个 wiki 文件夹,无需重复同步
- ✅ MCP 协议:通过标准 MCP Server 暴露 Wiki,Claude Desktop / Cursor / OpenClaw 零代码接入
- ✅ Agent 发现:自动扫描电脑里运行的 Agent(OpenClaw、A2A 网络、Ollama、LM Studio、Claude、Cursor、Memo、Obsidian)
- ✅ 知识广播:Wiki 更新时可向所有在线 Agent 推送事件
- ✅ GUI 集成:主程序新增
Share标签页,一键启动 MCP Server、查看 Agent、在 Obsidian 打开、广播更新 - ✅ 详细指南:查看 modules/shared-wiki/README.md
让 Agent 接入共享 Wiki(MCP 配置):
{
"mcpServers": {
"mywiki": {
"command": "python",
"args": ["/path/to/my-wiki/modules/shared-wiki/mcp_server.py"]
}
}
}- ✅ 真正的语义检索:从子串匹配升级为语义相关性排序,更懂查询意图
- ✅ 零依赖开箱即用:默认 BM25 模式,纯标准库实现,中文字符 bigram 分词 + IDF 排序
- ✅ 可选本地向量检索:本机运行 Ollama +
nomic-embed-text时自动升级为 embedding 语义检索,完全离线、隐私友好 - ✅ 智能分块:按段落/标题切分笔记,精准召回相关片段并给出打分
- ✅ 全链路集成:
wiki_tool.py search、wiki_core.semantic_search()、MCP 工具wiki_semantic_search三处统一,所有接入的 Agent 都能用上 RAG
使用方式:
# 直接语义搜索
python rag.py "如何配置本地模型 ollama"
# 经 wiki_tool 入口(已升级为语义搜索)
python wiki_tool.py search "obsidian 如何同步多设备笔记"
# 启用本地向量检索(需 Ollama)
MYWIKI_RAG_MODE=ollama python rag.py "你的问题" --rebuild环境变量:
| 变量 | 说明 | 默认 |
|---|---|---|
MYWIKI_RAG_MODE |
检索模式 bm25 / ollama |
bm25 |
MYWIKI_OLLAMA_URL |
Ollama 服务地址 | http://localhost:11434 |
MYWIKI_EMBED_MODEL |
嵌入模型名 | nomic-embed-text |
- ✅ 统一设计 token:
theme.py集中管理颜色 / 字体 / 圆角 / 阴影,Web 端与桌面端共用同一套值,改一处即可整体换肤 - ✅ 浅色 / 深色主题:
reminder_web.html/daily_web.html/mood_web.html均支持一键切换深色模式,偏好持久化到localStorage - ✅ 桌面端功能网页化:提醒 / 日记 / 心情三大桌面端功能均已提供对应的自包含网页版(同一套 Apple 风设计),无需启动 GUI 即可在浏览器使用
- ✅ 网页端总入口:
index.html为统一门户页,卡片式导航进入各模块;经web_server.py启动后根路径/即门户页 - ✅ 语义检索网页版:
rag_web.html调用rag.py的RAGEngine(/api/rag接口),支持 BM25 / Ollama embedding 两种模式,含语音输入 - ✅ 知识图谱可视化:
graph_web.html读取knowledge_graph.json(/api/graph接口),纯 SVG 力导向布局(无外部依赖),按类型着色、点击高亮邻居、可拖拽 - ✅ 桌面端内置网页版:打开
wiki_app.py(或打包后的MyWiki.app)时会自动在后台拉起web_server.py(端口 8082),顶栏「🌐 网页版」按钮一键在浏览器打开知识图谱 / 语义检索页;关闭桌面 App 时网页版服务一并停止,无需手动启停。打包时web_server.py、rag.py、voice_mood.py、各*_web.html与knowledge_graph.json已随MyWiki.spec一并打入 - ✅ 卡片高度可调:三个网页版的卡片均保证高度高于字体(
--card-h变量兜底),并提供「卡片高度」滑块手动统一调节,偏好持久化到localStorage(daily 的编辑器高度随滑块联动) - ✅ 设计规格沉淀:
FIGMA_DESIGN_SPEC.md记录界面设计稿与规范,便于后续迭代与协作 - ✅ 一致体验:
reminder_ui.py/wiki_app.py同步适配统一 token
- ✅ 待办清单:优先级(高 / 中 / 低)、截止日期、完成勾选、删除;数据落盘
vault/todos.json,桌面端「待办」标签页与网页版todo_web.html(/api/todos)读写同一份数据 - ✅ 全文搜索:桌面端「搜索」标签页遍历 vault 内 Markdown 做关键词匹配并高亮命中片段
- ✅ 标签浏览:桌面端「标签」标签页解析各笔记 frontmatter 的 tags,展示标签云,点击列出相关笔记
- ✅ 周报 / 月报:桌面端「报告」标签页一键汇总周期内的日记 + 心情 + 待办,生成 Markdown 报告,支持复制与保存到 vault
- ✅ 周期规则:add_reminder(remind_at, message, rrule="FREQ=WEEKLY;BYDAY=MO,FR"),支持 DAILY / WEEKLY / MONTHLY / YEARLY,含 INTERVAL 步长、COUNT 次数上限、UNTIL 截止时间;非法规则在入库前即被拒绝
- ✅ 零依赖融合:reminder_rrule.py 将 python-dateutil rrule / iCalendar RFC 5545 的语义按纯标准库重实现(不引入第三方依赖,可直接随 .app 打包),语义对齐开源实现:dtstart 命中规则即首次发生、当期不存在目标日期则跳过、COUNT 与 UNTIL 互斥
- ✅ 自动推进:提醒触发后 send_reminder.py 经 advance_reminder 排下一次;触发满 COUNT 或超过 UNTIL 自动标记 done,一次性提醒仍标记 sent
- ✅ Windows 计划任务:重复规则自动映射 schtasks /sc daily / weekly / monthly(YEARLY 暂以一次性任务承接并由 advance_reminder 续排),规则耗尽时同步清理任务
- ✅ 中文描述:describe_reminder_rule() 输出如「周一、周五,每隔 2 周,共 5 次」,供桌面端 / Web 端直接展示
- ✅ 双链解析:wiki_links.py 以纯标准库解析 Obsidian 风格 [[目标]] / [[目标#锚点]] / [[目标|别名]],支持根相对路径、裸文件名(stem 全局匹配)、相对来源目录三种解析方式,只读扫描不改动任何笔记
- ✅ 反向链接:wiki_tool.py backlinks <笔记> 一键查看「哪些笔记引用了我」;links <笔记> 查看出链,不带参数则列出出链最多的枢纽页
- ✅ 链接健康:wiki_tool.py orphans 输出孤儿笔记(无入链,INDEX/README 自动豁免)与失效链接清单(疑似笔误或尚未创建的笔记),清理知识库死角
- ✅ 快速捕捉:wiki_tool.py capture <文本> 把灵感 / 待办一键收集到 inbox/quick-capture.md(时间戳 + 去重,参数为空自动读剪贴板),免去「开笔记-找位置-打字」三步操作;只写 inbox/,不动 daily/ 等用户笔记目录
- ✅ 零构建 .app 包裹器:bash scripts/make_desktop_shortcuts.sh 在桌面生成 MyWiki.app(桌面端 GUI)与 MyWiki网页版.app(网页版 :8082)两个快捷方式,图标取自 icon.png,双击始终运行仓库最新代码,无需 PyInstaller 重新打包
- ✅ 网页版自启:MyWiki网页版.app 调用 scripts/launch_web.sh:检测端口未起则后台拉起 web_server.py(nohup + disown,启动器退出后由 launchd 收养继续运行),就绪后自动打开浏览器并弹系统通知;重复双击只聚焦浏览器,不会重复起服务
换肤 / 切换主题:
# 改 theme.py 中的 LIGHT / DARK 字典即可整体调整配色
# Web 端:启动 web_server.py 后访问 / 进入总入口,或直接打开 reminder_web.html / daily_web.html / mood_web.html
# 桌面端(wiki_app.py / MyWiki.app):顶栏「🌐 网页版」按钮自动打开已拉起的网页版(知识图谱 / RAG 检索)
# 各页面右上角 🌙/☀️ 可切换深 / 浅色| 快捷键 | 功能 | 说明 |
|---|---|---|
Cmd+O |
Quick Switcher | 快速打开笔记 |
Cmd+P |
Command Palette | 执行命令 |
Cmd+E |
切换编辑/预览 | 切换源码和预览模式 |
Cmd+Shift+F |
搜索 | 全局搜索 |
Cmd+Option+←/→ |
前进/后退 | 导航历史 |
# 告诉 OpenClaw 新信息
"今天学习了 Obsidian 的 Dataview 插件,它可以..."
# 查询知识
"我的 wiki 里有哪些关于 LLM 的笔记?"
# 生成报告
"生成本周的知识回顾"# 查看状态
git status
# 提交更改
git add .
git commit -m "Update notes"
# 推送到 GitHub
git push origin main
# 从 GitHub 拉取
git pull origin main以开源组件 + 黑盒行为对照方式复刻的第三方付费功能,仅用 Python 标准库:
| 命令 | 复刻对象 | 说明 |
|---|---|---|
publish |
Obsidian Publish | 导出带搜索、标签页、反向链接的静态站点 |
clip <url> |
Notion Web Clipper | 剪藏网页正文到 inbox/clips/,带来源 frontmatter |
review |
RemNote Pro / Readwise | SM-2 lite 间隔重复复习 |
cards |
同上 | 列出所有卡片及到期状态 |
digest |
Notion AI | 每日摘要;有 Ollama 走 AI,否则抽取式兜底 |
python wiki_tool.py publish --out dist-publish --clean # 导出静态站点
python wiki_tool.py clip https://example.com/post # 剪藏网页
python wiki_tool.py review --limit 10 # 开始复习
python wiki_tool.py digest --no-ai # 强制抽取式摘要错误:Unable to find a vault for the URL obsidian://open?vault=xxx
解决:
- 检查 vault 名称是否正确
- 查看
HOW-TO-FIND-VAULT-NAME.md - 使用 Quick Switcher(
Cmd+O)而非 URI
错误:ModuleNotFoundError: No module named 'beautifulsoup4'
解决:
# 重新安装依赖
pip install -r requirements.txt
# 或使用 macOS 设置脚本
./scripts/setup-mac.sh错误:Authentication failed
解决:
- 使用 SSH 而非 HTTPS
- 配置 GitHub Personal Access Token
- 查看 GitHub 文档
错误:Obsidian 无法识别 tags
解决:
- 确保使用正确的 YAML 格式
- tags 应该是数组:
tags: ['daily', 'test'] - 查看
daily/2026-07-01.md作为示例
错误:ModuleNotFoundError: No module named 'PySide6'
原因:桌面 GUI 依赖 PySide6,且只在项目自带的虚拟环境 .venv 中安装。用系统 python3(如 /usr/bin/python3)直接运行会因缺少该包而报错。
解决(任选其一):
# 1) 用项目自带的 .venv 解释器启动(推荐)
source .venv/bin/activate
python wiki_app.py
# 或等价地直接调用:
./.venv/bin/python wiki_app.py# 2) 若尚未创建 .venv,手动安装依赖后启动
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python wiki_app.pymacOS 一键启动脚本
run-mywiki.command已内置「创建/激活.venv→ 安装依赖 → 启动 GUI」逻辑,双击即可;若菜单栏 / 终端默认python3指向系统解释器,请改用上述.venv方式。打包后的
MyWiki.app已把 PySide6 与web_server.py等一并打入,无需.venv,双击即开。
欢迎贡献!请查看 CONTRIBUTING.md(待创建)。
- Fork 本仓库
- 创建你的特性分支 (
git checkout -b feature/AmazingFeature) - 提交你的更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开一个 Pull Request
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
- Andrej Karpathy - LLM Wiki 理念
- Obsidian - 优秀的 Markdown 笔记工具
- OpenClaw - AI Agent 框架
仓库自带轻量测试(零第三方依赖),并配有 GitHub Actions 持续集成。
# 1) Python 全套(自动发现 tests/test_*.py;与 AGENTS.md / CI 同源)
python tests/run_all.py
# 2) Web UI 纯逻辑(Node 内置 test runner,从 HTML 抽取函数运行)
node --test "tests/**/*.test.mjs"
# 3) 桌面端启动冒烟(PySide6,offscreen 无头,等价 __main__ 启动链路)
QT_QPA_PLATFORM=offscreen python scripts/smoke_desktop_qt.pytests/test_reminder_web.py/tests/test_daily_web.py/tests/test_mood_web.py:分别校验 三个网页版脚本中每个#id/.class选择器都能命中真实元素、关键 a11y 属性 (aria-modal/role)在位、深色模式与全局错误过滤器齐备。tests/reminder_web.logic.test.mjs:校验getPresetTime/computeRemindAt的时间计算正确。tests/daily_web.logic.test.mjs:校验extract_tags的停用词过滤 / 领域词加权 /top_n生效。tests/mood_web.logic.test.mjs:校验analyze_mood的关键词命中 / 否定词处理 / 中性回退。tests/test_reminder_rrule.py:校验 RRULE 子集解析校验 / 发生时间展开语义(对齐 dateutil)/ COUNT / UNTIL 耗尽、advance_reminder 推进与 schtasks 参数映射。tests/test_wiki_links.py:校验 [[wikilink]] 抽取 / 三种解析方式 / 反向链接(忽略自链)/ 孤儿与失效链接,以及 capture / links / backlinks / orphans 四个 CLI 子命令冒烟。scripts/smoke_desktop_qt.py:桌面端(PySide6)启动冒烟——构建WikiApp、应用 QSS、弹出 欢迎框、校验语音VoiceSignals信号槽、切换主题 / 语言、触发 MCP 启动处理器,全程无异常。.github/workflows/ci.yml:push / PR 到main时自动跑上述测试 + 桌面端冒烟 + RAG/theme 检查。
- 仓库: https://github.com/cpufreestyle/my-wiki
- Release: https://github.com/cpufreestyle/my-wiki/releases
- Obsidian 文档: https://help.obsidian.md
- OpenClaw 文档: https://docs.openclaw.ai
最后更新: 2026-08-02(多源上下文采集:飞书/企微聊天 + 妙记 + 本地录音转写 → 共享 Obsidian vault / 桌面端内置网页版 / macOS 代码签名打包修复)
版本: v2.10.1