MindBase 的完全本地桌面端(Tauri 2 + React 19 + Rust):数据只存在本机 SQLite, 不依赖任何后端服务,装好即可离线使用个人知识库与本地 Agent 工作台。
MindBase Desktop 把 B 站收藏与本地文档变成可检索、可问答、可复习的个人知识库,并把「聊天 Agent、笔记、题目、思维导图/白板、科研工作台、简历/幻灯片、长任务自动化」全部做进一个桌面应用。它沿用 MindBase Web 端的 Agent harness / RAG 设计思路,但按单机形态重写:没有账号体系、没有多用户服务端,不需要部署任何容器或数据库。
核心取舍是隐私与零运维:文档、向量、笔记、会话、API Key、思维导图都保存在本机一个可迁移的数据目录里;唯一的出网行为是调用你自己配置的模型供应商(DashScope / OpenRouter / DeepSeek 等)、B 站数据接口与 GitHub 更新检查。API Key 只存在本地 SQLite 的 api_keys 表,前端只能看到掩码预览,日志不记录原始 Key。
与 Web 端(atoncooper/MindBase)是同源演进的两个产品:Web 端面向服务器上的多用户/共享场景,本仓库是纯本地单机版本。两端数据互不相通——没有账号同步、没有云端同步;桌面端数据不会上传到 Web 端,Web 端数据也不会下载到桌面端。
- B 站收藏 → 知识库:扫码登录、同步收藏夹,按分 P 入库(AI 大纲 → 音频 → ASR → 规则切块 → 向量化),本地 SQLite 存储,换机/迁移只需搬数据目录。
- 混合检索:BM25 + 向量余弦的 RRF 融合检索,可选 DashScope
gte-rerank精排;失败自动回退融合顺序。 - 多来源导入:本地/云文档支持 PDF、Word、PPT、HTML、Markdown、TXT 等,图片文字走 OCR;内置 FFmpeg/ffprobe sidecar 处理音视频。
- ASR 双模式:云端 DashScope,或内置嵌入式 Python 的本地 faster-whisper(无需 API Key,模型权重首次使用时下载)。
- 多 Agent 编排:本地 ReAct harness +
delegate_to_agent子代理(memory / note / code / search / academic 等),支持 plan、ask_user结构化交互、会话级并发锁与熔断。 - 过程可见:思考过程流式展示、工具步骤、产物卡片(简历/幻灯片等文件可一键打开)、后台任务状态、token 用量统计。
- 联网能力:
web_search/web_crawl(DeepSeek Search/Fetch 优先,回退 SearxNG → Bing → Baidu)+ 网页正文抓取。 - 本机执行:文件读写限制在 Agent 目录;
run_command(默认关闭,三套 shell)与run_sandboxed(Windows AppContainer / Linux bubblewrap / macOS seatbelt,可断网)区分可信与不可信代码;另有结构化git/gh工具。
- Markdown 笔记:自动保存 + 乐观并发、修订快照与回滚、粘贴 B 站链接生成带时间戳的视频锚点。
- 题目练习:基于已入库内容生成单选/多选/简答/论述题,本地批改与历史题集。
- 思维导图与白板:simple-mind-map 导图 + Excalidraw 白板,本地持久化。
- 科研项目:六阶段推进、计划、事件流;文献库(检索/导入/BibTeX 导出/引用核验)、稿件、数据集与实验记录。
- AI 辅助:AI 选刊(匹配度 + 理由)、AI 研究计划(分阶段目标/交付物/风险,可逐项执行回填)、文献引用检查。
- 写作与导入:Google Docs 风格写作台(大纲/AI 续写/AI 润色/引用检查/导出),论文导入(PDF/DOCX/MD/TXT/TeX/HTML,自动拆章、Word 公式转 LaTeX、参考文献解析),原生 Word/PDF 版式预览优先。
- 简历 / 幻灯片:生成后作为产物卡片打开,可直接编辑或导出。
- 自动化长任务:AI 启动训练/构建/批处理并立即返回,日志按任务/日期落盘;后台调度器定期产出有界上下文,支持查看、重试、终止,应用重启自动标记中断任务。
- SSH 远程:主机管理、xterm 交互终端、SFTP、本地端口转发、会话日志,跨平台凭据走系统钥匙串。
- 内置更新器:通过 GitHub Releases 的
latest.json检查并签名校验更新。
| 平台 | 状态 | 产物 / 说明 |
|---|---|---|
| Windows x64 | ✅ 主要支持 | NSIS(currentUser,中/英)与 MSI;run_sandboxed 使用 AppContainer 隔离(文件仅沙箱目录 + 无网络/可选联网) |
| macOS Apple Silicon | 🧪 Beta | .dmg 安装包与自动更新包(.app.tar.gz);Keychain / seatbelt 已实现,仍建议备份数据后再升级 |
| Linux x64 | 🧪 源码构建(未发布安装包) | 需要 WebKitGTK 等 Tauri 依赖与 bubblewrap;可按 cross-platform.md 自行构建 deb/rpm/AppImage |
前置:Node.js ≥ 22、Rust stable(≥1.88)、Python 3,以及对应平台的 Tauri 2 依赖(Windows 需 MSVC toolchain;Linux 需 WebKitGTK 等)。三平台差异见 docs/cross-platform.md。
git clone https://github.com/atoncooper/mind-base-desktop.git
cd mind-base-desktop
npm ci
# FFmpeg / ffprobe sidecar:binaries/ 被 gitignore,首次运行/打包前必须准备
npm run fetch:ffmpeg:win # Windows(PowerShell 脚本下载/复制)
npm run fetch:ffmpeg # macOS / Linux(需系统已装 ffmpeg,或加 --source 指定目录)
npm run tauri dev # 开发运行(Vite devUrl http://localhost:1420)
npm run tauri build # 打包安装包(Windows NSIS/MSI、macOS dmg 等)数据与密钥都在本地:默认数据目录为操作系统 App Data 下的应用目录,可在应用内「数据存储」迁移到任意文件夹(自带迁移/自愈);笔记、向量、会话与模型 API Key 全部落在同一个 SQLite 数据库中。API Key 只在 Rust 层使用,UI 仅展示掩码预览,不写日志、不上传任何服务器。除模型供应商、B 站与 GitHub 更新检查外,应用不做外部网络请求。
应用通过 Tauri updater 检查本仓库 Release 中的 latest.json:
- endpoint:
https://github.com/atoncooper/mind-base-desktop/releases/latest/download/latest.json(已写入src-tauri/tauri.conf.json); - 更新包用内置公钥做签名校验(
plugins.updater.pubkey),Windows 以 passive 模式静默安装; - 发布 tag 约定为
v<version>,且版本必须与src-tauri/tauri.conf.json/package.json/Cargo.toml一致;不一致时 Release workflow 会直接失败; latest.json由 Release workflow 自动生成/合并(windows-x86_64、darwin-aarch64、darwin-x86_64条目)。
| Workflow | 触发 | 内容 |
|---|---|---|
ci.yml |
PR / push main |
Windows + macOS 矩阵:npm ci → npm run build → Rust stable → cargo check --all-targets --locked → cargo test --lib --locked(CI 会创建占位 ffmpeg sidecar,不下载真实二进制) |
release.yml |
push v* tag |
校验 tag 与 tauri.conf.json 版本一致 → 拉取 FFmpeg sidecar(Windows 用仓库脚本,macOS 用 ffmpeg-static release)→ npm run tauri build(带签名)→ Windows 创建 Release 并上传 NSIS/MSI + latest.json;macOS 等 Release 出现后上传 dmg 与 .app.tar.gz/.sig 并合并 darwin 更新条目;Release 正文优先使用仓库根 RELEASE_NOTES_<version>.md |
仓库需要配置的 Actions secrets:
TAURI_SIGNING_PRIVATE_KEY:updater 私钥(对应tauri.conf.json的pubkey;缺失会导致createUpdaterArtifacts构建失败);TAURI_SIGNING_PRIVATE_KEY_PASSWORD:私钥口令(没有口令时留空仍建议显式设置)。
GITHUB_TOKEN 由 Actions 内置,无需额外配置。
| 文档 | 内容 |
|---|---|
| docs/overview.md | 产品定位、功能清单、运行与打包、本仓库目录总览 |
| docs/cross-platform.md | Windows / macOS / Linux 构建前置、FFmpeg sidecar、系统凭据、Python 运行时与平台待办 |
| docs/rust-architecture.md | Rust 分包架构、依赖方向、沙箱实现、测试分层、SSH 与联网搜索设计 |
| docs/automation.md | 自动化长任务的目录/数据库、工具面、报告节奏、中断恢复与 token 统计 |
- Web 端:atoncooper/MindBase —— 服务端多用户版本(账号、共享、云盘、会员等),需要部署服务。
- 本仓库:MindBase 的本地单机版本,强调隐私、离线与零运维;功能与设计同源,但数据与账号互不相通,也不共享服务端数据库。
- 桌面端的数据目录、SQLite schema 与升级迁移完全在本地完成;覆盖安装会自动迁移本地数据。
MIT © 2026 via007