Repository navigation
Releases: cpufreestyle/my-wiki
Release list
MyWiki v3.0.0 - MediaPipe 面部情绪识别 + 桌面端检测增强
新增
- MediaPipe 面部情绪识别模块:新增
face_mood模块与/api/face接口 - 心情页三路融合:面部情绪 + 文本分析 + 手动记录 三路结果融合展示
修复
- 检测器稳健性增强:Obsidian 改为「协议注册 + 进程兜底」双重检测;OpenClaw 正确识别 npm 全局包安装方式
- QClaw 桌面端检测修复:从
qclaw://协议反查真实 exe 路径,解决误判/漏检
说明
本版本基于 main 分支最新提交 8aaa768 发布,包含自 v2.9.0 以来的全部变更。
MyWiki v2.7.0 — PySide6 迁移 + 语音声学分析增强
MyWiki v2.7.0 — PySide6 迁移 + 语音声学分析增强
本文件记录 v2.7.0 的变更。两大核心改动:桌面端 GUI 从 Tkinter 迁移到 PySide6,以及语音心情录制新增声学分析。
🔄 核心改动一:Tkinter → PySide6 全量迁移
背景
桌面端 wiki_app.py 原本基于 Tkinter,在 macOS 上存在多个长期痛点:
- 跨线程回调不可靠:Tkinter 从子线程调用
root.after()在 macOS 上经常不执行,导致录音识别后 UI 卡在"识别中…" - 深色模式按钮失效:
tk.Button的bg/fg在 macOS 系统深色外观下被 Aqua 主题接管,自定义按钮几乎不可见 - 模态对话框锁死输入:
tk.Toplevel+grab_set()在 macOS 下会拦截主窗口全部输入 - ScrolledText 在 Notebook 内失焦:macOS 自带 Tk 8.5 (Carbon) 下键盘输入异常
迁移成果
| 方面 | Tkinter 旧版 | PySide6 新版 |
|---|---|---|
| 线程安全 | 手动队列轮询 (_ui_queue + _poll_ui_queue + after(100)) |
信号槽机制天然线程安全 (VoiceSignals + Signal + 自动队列连接) |
| 样式 | 逐控件设 bg/fg,用 Label 模拟按钮 |
全局 QSS 样式表(类 CSS),属性选择器 QPushButton[primary="true"] |
| 对话框 | Toplevel + 手动 grab_set(锁死主窗口) |
QDialog + exec(),原生模态不锁主窗口 |
| 快捷键 | root.bind("<Control-s>") |
QShortcut(QKeySequence("Ctrl+S")) |
| 可拖拽分隔 | tk.PanedWindow |
QSplitter |
| 代码量 | 1802 行 | ~1050 行(更简洁) |
文件变更
wiki_app.py:完全重写,使用 PySide6(QMainWindow / QTabWidget / QPlainTextEdit / QSplitter / Signal-Slot)MyWiki.app/Contents/MacOS/mywiki:启动器简化,移除 Tk 版本检测逻辑,改为检测 PySide6- 依赖:新增
PySide6(已安装到.venv)
测试
自动化功能测试 46 项全部通过,覆盖:
- 核心逻辑:心情分析(开心/低落/平静)、标签提取、日记/心情/提醒存储、中英文 i18n、主题色
- GUI 界面:4 个标签页、所有控件、保存日记、心情分析、语言切换、主题切换
🎤 核心改动二:语音声学分析增强
声学特征提取
- 桌面端 (
voice_mood.py):新增analyze_voice_acoustics与acoustics_to_mood,使用wave/struct/math本地提取音频特征(能量、过零率、基频、频谱质心、静音比),映射到心情 - 网页端 (
voice-controller.js):集成 Web Audio API (AnalyserNode) 进行浏览器端实时声学分析 - 后端 (
web_server.py:新增):为非浏览器环境提供录音/识别 API,集成voice_mood.analyze_voice_acoustics
融合策略
文本分析(权重 0.6)+ 声学分析(权重 0.4)加权融合:
- 两者都有 → 加权融合取最高分心情
- 仅声学(文字识别失败)→ 使用声学结果
- 仅文本 → 使用文本结果
其他语音改进
- 修复录音停止后 UI 卡死(竞态条件 + 跨线程回调)
- 麦克风权限一键重置对话框
- 识别后自动保存开关(偏好持久化)
- 网页端复用单一
SpeechRecognition对象,避免重复弹授权提示 mood_web.html融合文本+声学结果,扩展心情关键词
📦 完整变更清单
新增文件
web_server.py:语音录音/识别后端 APIRELEASE_v2.7.0.md:本发布文档
修改文件
wiki_app.py:Tkinter → PySide6 全量重写voice_mood.py:新增声学分析、调试日志、竞态修复voice-controller.js:Web Audio API 声学分析、麦克风流复用mood_web.html:融合文本+声学结果、关键词扩展MyWiki.app/Contents/MacOS/mywiki:启动器适配 PySide6MyWiki.app/Contents/Resources/AppIcon.icns:更新应用图标assets/AppIcon.icns、icon.ico、icon.png:更新图标资源README.md:版本号更新至 v2.7.0
依赖
- 新增:
PySide6(6.11.1) - 已有:
SpeechRecognition、static-ffmpeg
⚡ 升级指南
# 安装 PySide6 依赖
cd my-wiki
.venv/bin/python -m pip install PySide6
# 启动应用
.venv/bin/python wiki_app.py
# 或通过 macOS App
open MyWiki.app历史版本参考
- v2.6.0:网页版功能扩展(日记/心情网页版)
- v2.5.0:三端配色对齐 + 录音权限修复
- v2.4.0:UI 主题统一(Apple 风浅/深色设计 token)
MyWiki v2.2.0 - 共享 Wiki (Obsidian × 所有 Agent)
新增:共享 Wiki 中枢 (Shared Wiki)
让 MyWiki 成为 Obsidian 与电脑里所有 AI Agent 共享的知识中枢。
核心功能
- 单一事实源:Obsidian 与所有 Agent 读写同一个 wiki 文件夹,无需重复同步
- MCP 协议支持:新增标准 MCP Server(stdio),Claude Desktop / Cursor / OpenClaw 零代码接入共享 Wiki
- Agent 自动发现:自动扫描本机运行的 Agent(OpenClaw、A2A 网络节点、Ollama、LM Studio、Claude、Cursor、Memo、Obsidian)
- 知识广播:Wiki 更新时可向所有在线 Agent 推送事件
- GUI 集成:主程序新增 Share 标签页,一键启动 MCP Server、查看 Agent、在 Obsidian 打开笔记、广播更新
新增文件
modules/shared-wiki/wiki_core.py— 统一读写/搜索/索引内核modules/shared-wiki/agent_registry.py— Agent 发现与广播modules/shared-wiki/obsidian_bridge.py— Obsidian Vault 发现 + URI 打开 + 文件监听modules/shared-wiki/mcp_server.py— 标准 MCP Server(未装 mcp 库时自动降级为 JSON-RPC)modules/shared-wiki/README.md— 模块文档
命令
python wiki_tool.py serve— 启动 MCP Serverpython wiki_tool.py agents— 发现所有 Agentpython wiki_tool.py obsidian— 发现 Obsidian Vaultpython wiki_tool.py broadcast <event> [rel]— 广播 Wiki 更新
其他
- 更新
MyWiki.spec打包配置包含 shared-wiki 模块 - 更新
README.md/deploy_guide.md文档 - 新增
.gitignore(忽略 registry.json 运行产物)
MyWiki v2.1.0 - 功能模块集成
🎉 MyWiki v2.1.0 — 功能模块集成
本次更新将视频分析、Memo 联动、Obsidian 双 Vault 同步、A2A Agent 网络集成为 MyWiki 标准功能模块,统一通过 wiki_tool.py v2.0 入口调用。
✨ 新增功能
1. 功能模块系统 (modules/)
新增 modules/ 目录,包含 4 个功能模块:
| 模块 | 目录 | 功能 |
|---|---|---|
| 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 网络文档索引 |
2. wiki_tool.py v2.0
统一命令行入口,集成所有模块:
# 基础命令
python wiki_tool.py update # 更新 INDEX.md
python wiki_tool.py daily # 创建今日笔记
python wiki_tool.py search <query> # 搜索 wiki
# 视频分析
python wiki_tool.py video <path> --interval 30 --title "标题"
# Memo 同步
python wiki_tool.py memo-push <file.md> --title "标题"
python wiki_tool.py memo-list
python wiki_tool.py memo-search "关键词"
python wiki_tool.py memo-pull
# Obsidian 双 Vault 同步
python wiki_tool.py sync-obsidian # 同步到所有 Vault
python wiki_tool.py sync-obsidian --vault documents # 仅 Documents3. Video Analysis 模块
analyze.py: ffprobe 元数据探测 → ffmpeg 按间隔提取帧 → 均匀采样 12-15 关键帧 → 生成报告框架- 与 OpenClaw video-analysis skill 联动,Vision 模型逐帧分析
- 实战验证:分析 2 小时 AI PM 课程视频(aipmday.mp4 / aipmday2.mp4)
4. Memo Sync 模块
sync.py: 通过 SQLite 直接读写 Memo (MemoAI) 应用数据库- 支持 push / push-dir / pull / list / search
- 定时同步:OpenClaw cron 每天 22:00 自动推送
- 实战验证:已推送 8 篇文档(视频分析报告 + 5 天日记)
5. Obsidian Sync 模块
sync.py: 多 Vault 双向同步- 支持
~/Documents/Obsidian Vault/和~/.qclaw/workspace/wiki/wiki/ - 自动生成首页
首页.md,带[[]]双链导航 - 同步 daily/、projects/、concepts/、people/、brain/ 目录及分析报告
6. A2A Agent 模块
- Google A2A 协议本地 Agent 网络文档索引
- 架构:Orchestrator (10000) + LM Studio (10001) + Ollama (10002) + Blender 3D (10003) + StepFun (10004) + OpenClaw (10005)
- OpenClaw 作为 A2A Agent 节点,发布 Agent Card(5 项技能)
📦 文件变更
新增文件(11 个):
modules/video-analysis/README.md- 视频分析模块文档modules/video-analysis/analyze.py- 视频分析入口脚本modules/memo-sync/README.md- Memo 同步模块文档modules/memo-sync/sync.py- Memo SQLite 同步脚本modules/obsidian-sync/README.md- Obsidian 同步模块文档modules/obsidian-sync/sync.py- 多 Vault 同步脚本modules/a2a-agent/README.md- A2A Agent 网络文档
修改文件:
wiki_tool.py- v1 → v2.0,集成所有模块命令README.md- v1.2.0 → v2.0.0,新增功能模块和集成工具章节INDEX.md- 自动更新,包含模块索引
统计: 70 files changed, 5307 insertions(+), 72 deletions(-)
🐛 修复
- 修复
wiki_tool.py中.obsidian目录被搜索索引的问题 - 修复
sync_dir_to_vault跳过隐藏文件
📋 系统要求
- macOS: 12.0+ (Python 3.8+, FFmpeg)
- Windows: 10+ (Python 3.8+)
- Obsidian: 1.0+
- FFmpeg: 4.0+(视频分析模块,
brew install ffmpeg) - Memo (MemoAI): 可选,Memo 同步模块
🚀 升级指南
cd /path/to/my-wiki
git pull origin main-remote
# 验证
python wiki_tool.py help
# 测试 Obsidian 同步
python wiki_tool.py sync-obsidian🔗 相关链接
- 仓库:https://github.com/cpufreestyle/my-wiki
- 问题反馈:https://github.com/cpufreestyle/my-wiki/issues
- OpenClaw:https://openclaw.ai
- Obsidian:https://obsidian.md
Full Changelog: v1.2.0...v2.1.0
v1.2.0 - Mac + Obsidian Support
My Wiki v1.2.0 - Mac + Obsidian 支持
🎉 重大更新
本版本添加了完整的 macOS 支持、Obsidian 集成和本地模型支持,让你可以在 Obsidian 中无缝使用 OpenClaw 管理的知识库,并支持使用本地运行的大语言模型。
✨ 新增功能
1. macOS 支持
- ✅ 新增
scripts/setup-mac.sh- Mac 环境自动设置脚本 - ✅ 自动安装 Python 依赖(beautifulsoup4, markdown, python-dateutil 等)
- ✅ 自动设置脚本权限
- ✅ 自动检测 Obsidian 安装
- ✅ 自动为现有笔记添加 YAML frontmatter
2. Obsidian 集成
- ✅ 完整的 Obsidian 配置(
.obsidian/app.json) - ✅ 启用 6 个核心插件:
- templates(模板)
- daily-notes(每日笔记)
- calendar(日历)
- dataview(数据视图)
- tag-pane(标签面板)
- outline(大纲)
- ✅ 创建笔记模板:
.obsidian/templates/daily-note.md- 每日笔记模板.obsidian/templates/project.md- 项目笔记模板
- ✅ 所有笔记添加 YAML frontmatter(title, date, tags, type)
3. 本地模型支持 🆕
- ✅ 支持 Ollama(推荐)- 简单易用,OpenAI 兼容 API
- ✅ 支持 LM Studio - 图形界面,Local Server 支持
- ✅ 支持 GPT4All - 开源,Python API
- ✅ 支持 llama.cpp - 高级用户,最大灵活性
- ✅ 完整配置指南(
LOCAL-MODELS.md) - ✅ 隐私保护:数据不离开本地
- ✅ 成本节约:无 API 费用
4. 跨平台支持
- ✅ 更新
obsidian_integration.md- 添加 Mac + Windows 详细配置说明 - ✅ 创建
HOW-TO-FIND-VAULT-NAME.md- Obsidian vault 名称故障排除指南 - ✅ 创建
scripts/generate_obsidian_uri.py- 生成正确的 Obsidian URI - ✅ 使用
pathlib.Path处理跨平台路径
5. 文档更新
- ✅ 完整的 Obsidian 使用指南
- ✅ Mac 设置说明
- ✅ 本地模型配置指南
- ✅ 常见问题解答
- ✅ URI 命令示例
📦 安装
macOS 用户
# 克隆仓库
git clone https://github.com/cpufreestyle/my-wiki.git
cd my-wiki
# 运行 Mac 设置脚本
./scripts/setup-mac.sh
# (可选)安装 Ollama 使用本地模型
brew install ollama
ollama serve &
ollama pull llama3
# 在 Obsidian 中打开
# Open Folder as Vault → 选择当前文件夹Windows 用户
# 克隆仓库
git clone https://github.com/cpufreestyle/my-wiki.git
cd my-wiki
# 安装 Python 依赖
pip install -r requirements.txt
# 在 Obsidian 中打开
# Open Folder as Vault → 选择当前文件夹使用本地模型(可选)
查看 LOCAL-MODELS.md 获取完整指南:
# 快速开始(Ollama)
brew install ollama
ollama serve &
ollama pull llama3
# 配置 OpenClaw
# 编辑 ~/.config/openclaw/config.yaml📝 完整更新日志
提交历史
09a4c74- Add local model support (Ollama, LM Studio, GPT4All, llama.cpp)9f86c5a- Update README.md with detailed software list and operation flowabc0c7b- Add daily note for 2026-07-01053714b- Add YAML frontmatter to all notes for Obsidian compatibility (41 files)52938d6- Fix Obsidian vault name issue and add URI generator7187a3d- Add Mac and Obsidian support
文件变更
新增文件(8 个):
LOCAL-MODELS.md- 本地模型支持完整指南scripts/setup-mac.sh- Mac 设置脚本.obsidian/app.json- Obsidian 配置.obsidian/templates/daily-note.md- 每日笔记模板.obsidian/templates/project.md- 项目笔记模板HOW-TO-FIND-VAULT-NAME.md- Vault 名称指南scripts/generate_obsidian_uri.py- URI 生成器scripts/add_frontmatter.py- Frontmatter 添加脚本
修改文件(46 个):
README.md- 添加本地模型支持章节obsidian_integration.md- 更新 Mac + Windows 说明- 所有每日笔记(添加 frontmatter)
- 所有项目笔记(添加 frontmatter)
- 所有概念笔记(添加 frontmatter)
🐛 修复问题
- ✅ 修复 Obsidian URI "Unable to find a vault" 错误
- ✅ 修复跨平台路径问题
- ✅ 修复 Python 依赖安装问题
📋 系统要求
- macOS: 10.15+ (Python 3.8+)
- Windows: 10+ (Python 3.8+)
- Obsidian: 1.0+
- Git: 2.30+
- 本地模型(可选): 8GB+ RAM(3B-7B 模型),32GB+ RAM(13B-30B 模型)
🚀 升级指南
从 v1.1.0 升级
cd /path/to/my-wiki
git pull origin main
# macOS 用户:重新运行设置脚本
./scripts/setup-mac.sh
# (可选)安装 Ollama
brew install ollama🔗 相关链接
- 仓库:https://github.com/cpufreestyle/my-wiki
- 问题反馈:https://github.com/cpufreestyle/my-wiki/issues
- Obsidian 官网:https://obsidian.md
- Ollama 官网:https://ollama.com
- LM Studio 官网:https://lmstudio.ai
🙏 致谢
感谢所有贡献者和用户!
Full Changelog: v1.1.0...v1.2.0
My Wiki v2.0 - 本地 LLM 知识管理
📦 下载
下载后双击运行,无需安装。
✨ 新特性
- 模块化架构:6 个独立模块文件
- 动态路径管理:告别硬编码,支持多用户
- 情绪分析:内置心情记录与趋势分析
- 智能标签:自动提取日记关键词
- 提醒系统:支持定时提醒与通知
- Obsidian 集成:自动检测并支持 Obsidian 打开
🛠️ 改进
- 清理遗留文件(daily_ui.py, reminder_ui.py 等)
- 更新部署文档与 Obsidian 集成指南
🔧 源码运行
pip install tkinter-tooltip Pillow
python wiki_app.py📋 环境变量
MYWIKI_LLM_PROVIDER=ollama|lmstudio
MYWIKI_OLLAMA_MODEL=qwen2.5
MYWIKI_LMSTUDIO_MODEL=
v1.1.0
v1.1.0 Updates:
- Voice diary auto-tag extraction
- Mood tracking (keyword-based sentiment analysis)
- Reminder system (Windows Task Scheduler + heartbeat)
- Removed Obsidian dependency
v1.0.0
MyWiki v1.0.0
Personal Wiki & Diary Manager / 个人知识库与日记管理工具
Download / 下载
Download and run directly — no installation needed.
下载后双击运行,无需安装。
Quick Start / 快速上手
Step 1: Run the App / 启动程序
- Double-click
MyWiki.exeto launch - 双击
MyWiki.exe即可启动 - A dark-themed window will pop up (always on top by default)
- 窗口默认置顶显示,暗色主题
Step 2: Write Your Diary / 写日记
- Click Diary tab (default) / 点击 Diary 标签页(默认)
- Date is auto-filled with today / 日期自动填入今天
- Type your diary content in the text area / 在文本框中输入日记内容
- Click Save to save / 点击 Save 保存
- Click Tags button to auto-extract tags from content / 点击 Tags 自动提取标签
Step 3: Track Mood / 记录心情
- Click Mood tab / 点击 Mood 标签页
- Select today's mood emoji / 选择今天的心情表情
- Add a short note (optional) / 可添加简短备注
- Click Save / 点击 Save
Step 4: Set Reminders / 设置提醒
- Click Reminder tab / 点击 Reminder 标签页
- Pick date and time / 选择日期和时间
- Type your reminder message / 输入提醒内容
- Click Add Reminder / 点击 Add Reminder
- The system creates a Windows scheduled task automatically
- 系统自动创建 Windows 计划任务
- When time comes, you'll receive a WeChat notification (if configured)
- 到时间后会收到微信通知(需配置微信通道)
Step 5: Use Templates / 使用模板
- Click Template button in Diary tab / 在 Diary 页点击 Template
- Choose a template from the dropdown / 从下拉框选择模板
- Content is inserted into editor / 模板内容插入编辑器
Features / 功能特性
| Feature | Description |
|---|---|
| Diary / 日记 | Daily journal with date, tags, markdown support |
| Mood / 心情 | Mood tracking with emoji and analysis |
| Reminder / 提醒 | Windows Task Scheduler integration, WeChat notify |
| Dark Theme / 暗色主题 | VS Code style (#1e1e1e), easy on eyes |
| Custom Icon / 自定义图标 | Blue circle with W logo |
| Tag Extraction / 标签提取 | Auto-generate tags from diary content |
| Obsidian / Obsidian联动 | Open files in Obsidian vault |
| Always on Top / 置顶 | Window stays visible while working |
File Structure / 文件结构
MyWiki/
├── wiki_app.py # Main GUI app / 主程序
├── reminder_manager.py # Reminder engine / 提醒引擎
├── mood_analyzer.py # Mood analysis / 心情分析
├── tag_extractor.py # Tag extraction / 标签提取
├── icon.ico # App icon / 图标
├── daily/ # Diary files / 日记文件
│ └── YYYY-MM-DD.md
├── mood/ # Mood data / 心情数据
│ └── YYYY-MM-DD.json
└── reminders/ # Reminder data / 提醒数据
└── reminders.json
Requirements (Source Mode / 源码运行)
- Python 3.11+
- tkinter (included with Python)
- Pillow (
pip install Pillow) - pywin32 (
pip install pywin32)
Run: python wiki_app.py
Tips / 小贴士
- Diary files are saved as Markdown in
daily/folder - 日记以 Markdown 格式保存在
daily/目录 - All data stored locally — fully private
- 所有数据本地存储,完全私密
- Reminders use Windows built-in Task Scheduler — no extra service needed
- 提醒使用 Windows 内置计划任务,无需额外服务