记得住你写作目的的本地 Markdown 编辑器
Mindmark 是一个本地优先、AI 深度集成的 Markdown 编辑器。它的差异化在于始终保留一份"文档思想档案"——目的、读者、风格、大纲意图——作为所有 AI 操作的根,让 AI 续写、改写、体检都受这份契约约束,而不是点状辅助。
- 打开 / 编辑 / 保存 本地 .md 文件,frontmatter 完整 round-trip
- Tab AI 续写:流式生成段落(紫色 ai-pending → ✓ 接受 / ✗ 拒绝)
- 选中重写:浮起气泡菜单 → 更简洁 / 更详细 / 自定义指令 → diff 预览 → 应用
- Ghost 续写:暂停打字 ~1.5 秒,灰色补全自动出现,Tab 接受
- 元信息面板:动态字段 + AI 提议 + 防膨胀(cap 10 + 排除列表)
- 大纲面板:每节带意图 + 字数估算;标题 / 意图 / 要点 / 字数全部可点击编辑;AI 整体优化 + AI 单节优化;一键导入 H2 标题到编辑器
- Onboarding:5 类模板(博客 / PRD / 笔记 / 公众号 / 空白)+ 主题与读者 → AI 生成大纲
- 全文体检:风格漂移 / 论点冲突 / 偏离大纲 / 违反元信息 四类问题诊断
- 联网搜索:Anthropic Claude 用
web_search_20250305工具,由模型自主决定何时查;非 Anthropic 用 OpenRouter:online后缀 - 参考资料:拖入 .md / .txt 自动注入到 prompt 上下文
- Settings:API key 入 localStorage;3 档模型独立选;Ghost 触发延迟可调;联网搜索可关
git clone https://github.com/<your-username>/Mindmark.git
cd Mindmark
pnpm install
# 配置 OpenRouter key
cp .env.local.example .env.local
# 编辑 .env.local 填入 sk-or-... key
pnpm --filter @mindmark/editor-ui dev
# → 浏览器打开 http://localhost:5173/第一次进入应用:
- 点 新建 → 选模板 → 填主题与读者 → AI 生成大纲
- 输入文字,按 Tab 触发 AI 续写
- 选中文字 → 浮起气泡菜单选择重写预设
- Cmd+S 保存到磁盘(Chrome / Edge 走 File System Access API;其他浏览器降级为下载)
三层严格解耦的 monorepo:
packages/
├── protocol/ # 纯 TS 类型 + fixtures,零运行时依赖
├── agent-core/ # 6 个 subagent + OpenRouter SSE 客户端 + 序列化
└── editor-ui/ # React 18 + Tiptap 3 + Zustand 5 + Tailwind 4
apps/
└── desktop/src-tauri/ # Tauri 2 桌面壳(P6 待接入)
Subagents(agent-core/src/subagents/):
| 名称 | 任务 | tier |
|---|---|---|
| writer | continue(段落续写) | medium |
| rewriter | rewrite(更简洁/更详细/自定义) | medium |
| ghoster | ghostWrite(行内补全) | small |
| outliner | initOutline / refineOutline / refineSection | medium |
| meta | proposeMetaFields | medium |
| coherence | coherenceCheck | large |
每个 subagent 是一个 async generator 函数,通过共享的 streamChat 客户端与 OpenRouter 通讯。
- Vitest(单元 + 集成)
- MSW(mock OpenRouter SSE)
- Playwright(E2E,scripts in package.json)
- cargo test(Tauri Rust 命令)
- TypeScript strict + project references
pnpm test # vitest 47 通过
pnpm typecheck # tsc -b 5 包全绿
cargo test # Rust 单元测试- docs/PRD.md — 产品需求与用户场景
- docs/ARCHITECTURE.md — 三层架构、数据流、Patch 协议、流式语义
V1.0 MVP — 浏览器内可用,每个 PRD §4 模块已实现并端到端验证。
已知未做(按架构 v0.2 显式延后):
- Tauri 桌面打包(Rust 端骨架已就位)— 路径替换:localStorage → keyring,FSA → 原生对话框
- 行为感知 LLM 兜底(架构 v1.1)
- .skill.md 用户目录扫描 — 当前 5 类 builtin 模板硬编码在 OnboardingModal
- section ↔ block 双向锚定(点击大纲跳到对应段落)
- Tiptap 视觉装饰(slash menu / mermaid 节点)
- 文档存本地 .md 文件
- API Key 本地 localStorage(Tauri 集成后迁移到系统 keyring)
- 行为信号仅 session 级,关闭即清除
- LLM 调用是 OpenRouter 唯一对外网络,可通过 Settings 全局关闭联网搜索
MIT