✨ 言出法随一句话,AI 就给你做出来 → doAIPM.com
#MD SoloMD

v4.8.11

让 Agent 住进来的编辑器。

v4.0 是 agent-native author 大版本。Agent 从 "外部 CLI 偶尔调用一下" 变成了编辑器内的一等公民 —— 持续在场、跨多个 vault 工作、完整的可见性、可重放、可回滚。 下面所有项都在内核里,不用装插件。安装包还是 ~15 MB。

v4.7

4.7 —— Windows 换上全新编辑器。

仅限 Windows。Windows 上的 SoloMD 现在改用一套彻底重写的 分块编辑器,不再用 CodeMirror。WebView2 的 contentEditable吞掉中文 / 输入法的第一个字、 并把标点变成双份(搜狗最严重)—— 这个 bug 在 CodeMirror 里无法修复,因为它出在 WebView2 本身。新编辑器让每个块走原生 <textarea> 的系统输入法路径,吞字和双标点的问题不再出现。

新的 Windows 编辑器功能完全对齐:实时 Markdown 预览、自动补全 与斜杠命令(/)、专注模式与打字机模式、智能列表续写、AI 改写 (Ctrl+J)、文内查找替换(Ctrl+F)、剪贴板图片粘贴、 任务清单勾选、撤销 / 重做、Tab 缩进、拼写检查与自动换行。

macOS、Linux、iOS 和 Android 不受影响 —— 继续使用现有的 CodeMirror 编辑器。4.7 还修复了:命令面板在悬停或滚轮滚动列表时不再乱跳(#93)。

4.8.11 —— 三个用户上报的 bug,修复。 Android 能正常打开文件了(#148):从文件管理器、 "打开方式"或应用内选择器送来的文件是 content:// URI, 任何文件系统调用都读不了 —— 现在会自动导入 SoloMD 文件夹 (保留原文件名,取不到时用文档首个标题命名)并正常打开, 和 iOS「文件」App 的流程一致。GitHub 同步不再"推 main 拉 master"(#147)—— 第二台设备可能永远拉不到第一台的推送; 现在拉取和推送用同一套分支归一逻辑,老仓库只有 master 也有回退。 关闭标签页回到相邻标签,不再跳到列表第一个 (#149 —— 根因分析来自报告者本人,感谢!)。

4.8.10 —— 体验修复合集。Windows 实时编辑模式下 Ctrl+A 终于可以全选整篇文档(以前只能选中当前段落), 全选后复制 / 删除 / 直接输入覆盖都和普通编辑器一致。 删除文件 / 文件夹现在移入系统废纸篓 / 回收站, 不再永久删除(#112),最近文件列表支持单条移除。新增 “单个换行 = 换行符”设置,让预览、Windows 实时编辑和所有导出 (PDF、DOCX、Pandoc)对回车的理解保持一致(#141)。 字体和字号现在处处生效 —— 实时编辑块、预览面板和阅读模式(#143)。 切换标签页保留光标和滚动位置(#144),关闭"恢复标签页"时 "启动进入阅读模式"重新生效,设置页各分类不再共享滚动位置, 工具栏 AI 改写按钮在 Windows 上可用了(#126)。

4.8.9 —— iOS 文件打开,这次真修好了。从"文件"App、 隔空投送或其他 App 打开 Markdown 不再报 "No such file or directory"(#139)—— 分享送进来的是一个从未解码的 file:// 百分号编码 URL。 最近文件在 App 更新后不再失效(iOS 每次更新都会更换容器路径, 现在会自动重新定位),打开文件夹会把工作区固定到 SoloMD 文稿文件夹,标签栏支持手势滑动滚动。桌面端:本地 SVG 预览跨窗口不再丢失(#142,感谢 @beihai23)。

4.8.1 —— 修复。查找替换重新变得好找 (加了命令面板入口;它一直在 Ctrl+F 后面,#137)。在 WSL 笔记里点击相对路径 .md 链接不再报 “os error 3”(#138)。把 阅读模式设为启动视图且关闭"恢复标签页"时,不再打开空白窗口 (#128)。macOS 应用图标改为标准圆角 squircle + 留白(#111)。 GitHub 同步 token 失效时会主动提示重新连接,而不是甩一句原始 401。

4.8.0 —— 图片上传到图床。粘贴、拖入或选择图片时, SoloMD 现在可以把它上传到外部图床并插入外链,而不再只复制到本地文件夹 —— 和 Typora / MarkText 一样。支持五种后端:PicGo(本地服务)、 自定义命令(PicGo-Core / uPic / 任意脚本)、SM.MSS3 兼容(阿里云 OSS / 腾讯云 COS / Cloudflare R2 / MinIO), 以及 GitHub 仓库 + CDN。另有"插入网络图片 URL"和 "上传本文所有本地图片"命令。粘贴时自动上传,图床不可达会自动回退本地副本。 在 设置 → 写作 中配置。

4.7.4 —— Windows 编辑器的 Backspace / Delete 恢复可靠。Windows 实时编辑模式下每个段落是独立的文本框,因此在段落块开头按 Backspace、或在块末尾按 Delete 时会撞到文本框边界、毫无反应,删除"时灵时不灵"。 现在这两种边界按键会作用于整篇文档,像普通编辑器一样合并段落 / 删除空行, 光标与焦点也会跟随。

4.7.3 —— PDF 导出不再因主题或内容使用现代 CSS 颜色函数(color()oklch()color-mix()) 而报错,导出失败也不再导致界面卡死或可缩放(#115)。另外:分屏同步滚动 在 Windows 上恢复正常 —— 4.7 重写 Windows 编辑器后,编辑区与预览不再互相跟随的问题已修复。

4.7.2 —— 文件树支持拖拽调节侧边栏宽度 (拖边缘,180–600 px)、按文件类型显示图标、长文件名 中间省略;macOS 标题栏不再与应用内工具栏重叠(#121)。另外修复 PDF 导出: 正文段落和列表项不再在分页处被横向切断

4.7.1 —— 实时预览现在不只渲染标题,无序列表(•)、任务复选框、 分隔线也都渲染了(macOS / Linux / iOS / Android);源码模式恢复真·纯文本 (关闭实时预览时标题不再放大)。另外:文件树复制路径 / 相对路径 (#120)、关闭文件夹按钮(#118)、限制编辑器宽度 可读列宽(#109)、阅读模式也能用 Fit-Width 切换(#117)。

v4.6

4.6 —— 知识图谱那一半,建好了。

一次彻底的设计系统 + Vue 组件库重构(暖中性表面、橙色 #ff9f40 强调色)和统一的 macOS 标题栏 (红绿灯按钮内联进工具栏)—— 外加过去像 Tolaria 这类知识图谱编辑器有、 而 SoloMD 没有的那 7 个结构化功能。全部以纯 .md / YAML 落盘, 没有新文件格式。

属性检查器(⌘⇧I

专用的 frontmatter 编辑器 —— 日期、关系、状态、标签选择器, 不用再手写 YAML。改动直接写回笔记的 front-matter。

类型驱动侧栏

type:<名称> 笔记成为侧栏一级可折叠分区 (types-as-lenses),每种类型可自定义图标、颜色、排序与置顶属性。

类型化关系

belongs_to / related_to / has frontmatter 字段,带自动反向 —— 声明一边,另一边自动成立。

关系图谱("Neighborhood")

每篇笔记的出链反向关系浏览器 —— 从当前笔记出发, 一跳一跳走图谱。

保存的过滤视图

持久化的侧栏视图,存为 .solomd/views/*.yml —— 按类型 / 状态 / 日期 / 正则过滤,重启后依旧保留。

Inbox 工作流

⌘E 把当前笔记标记为已整理并自动前进到下一篇 —— 真正的 Inbox Zero 闭环,用来分拣随手捕获的笔记。

tldraw 白板

通过 ```tldraw 围栏实现 Markdown 白板 —— 持久存在笔记的 .md 里,且与 Tolaria 的磁盘白板格式互通。

设计系统 UI + 统一标题栏

暖中性表面配色 + 橙色 #ff9f40 强调色,基于一套正式的 Vue 组件库重建;统一的 macOS 标题栏把红绿灯按钮内联进工具栏。

五大支柱(v4.0)

每个都在内核里,可在设置里开关。完全兼容你已有的笔记 —— 没有数据库迁移、没有新文件格式、不强制云账号。

1 · 内置 Agent 面板

右侧一等公民面板,跟大纲 / 反向链接 / 标签 / 历史平级。 通过进程内 MCP 接口和已有 14 家 AI provider 组成 streamed chat-with-vault。[[wikilink]] 引用解析为真正的笔记跳转;每次 agent 调工具的卡片 在对话流里展开,看得到读取了什么、写入了什么。 回复太长?插入复制 按钮把整段塞进当前编辑器 —— 有选区就替换,没选区就插到光标处。运行历史以纯 markdown 形式存在 .solomd/agent-runs/ 下,可 grep、可被 git 追踪。

2 · Agent Recipe / 定时运行

声明式 agent 任务,YAML 文件放在 <workspace>/.solomd/agents/*.yml。 触发器:schedule (cron)、on-saveon-commiton-tag-add、手动。 安全护栏不可妥协:每次运行都开自己的 AutoGit 分支 agent/<recipe>/<run-id>, 所有写入只落到分支上,通过 accept / reject UI 评审后再合入 main;单次 write-cap (默认 5,硬上限 50) 防止失控循环;Reject 之后分支被 hard-delete,git 历史里完全看不到这次运行。自带 11 个 Recipe 模板(周报、日志整理、 TODO 抽取、翻译、引用清理、CJK 校对、…) —— 安装、改 prompt、运行,三步走完。

3 · Agent Trace View

每次运行 (无论是 Panel 对话还是 Recipe) 都按步生成 trace.jsonl: prompt / model_call / tool_call / tool_result / git_commit / done。 步骤卡片可展开看 args、结果、token 数、成本估算、 AutoGit 分支引用。从第 N 步重放 按钮把运行回退到第 N 步,改输入后从那里重新跑 —— 这是 self-correcting recipe 的入口。新增 MCP 工具 read_agent_trace(run_id),把 trace 暴露给其他 agent 读取。

4 · 多 Vault MCP Federation

solomd-mcp --workspace path1 --workspace path2 --workspace path3 —— 一个 MCP 会话,多个 vault。工具签名加了可选 workspace 参数,默认 = 第一个传入的 (完全向后兼容单 vault 客户端)。AutoGit 分支按 workspace 隔离。设置 → 集成 里有 MCP profile UI:把多个 vault 命名打包,一键 复制 Claude Desktop 配置片段。

5 · Ollama 一等公民

我们 自己捆绑本地 LLM 运行时 —— Ollama 已经做得很好。v4.0 只是把集成磨得更顺: 自动检测 localhost:11434 (设置 → AI 里有绿色状态灯)、未安装时一键引导安装、内置三个 模型预设 (rewrite → qwen2.5:7b · quick → qwen2.5:1.5b · cjk → qwen2.5:14b)、空模型列表时 内联推荐 pull。Recipe 可以 provider: local (ollama 别名),用零云成本跑自动化循环。 你的笔记永不离开机器 —— 通过 BYOK Ollama 这一直是真的,v4.0 把它做成 discoverable 的入口。

🛡️ 安全护栏 (别人都没做的部分)

  • AutoGit 分支沙箱。每次 Recipe 运行都开自己的分支。在你点 Accept 之前, main 一动不动。Reject 的运行 什么也不留 —— 分支删除,文件树回退。
  • 单次写盘上限。模型在 cap 是 5 的情况下要写 50 个文件,从第 6 次工具调用开始就被拒。 不会出现"半成品"状态、不会出现意外的批量改动。
  • 工作区脏时拒绝启动。你有未提交的修改时 Recipe 触发会直接报错退出,不会把你的 WIP 扫进 agent 的 commit 里。
  • 路径穿越加固。进程内工具接口和所有 接受用户传入 run_id / path 的 Tauri 命令,现在都会前置拒绝 .. 段和绝对路径。Agent 从代码层就写不出 workspace。
  • 可重放的 trace。每一步都按行 JSON 落盘。Panel 行为可疑?走 trace,定位坏步,改输入, 从第 N–1 步重放。

质量条

  • 首次启动向导。新装用户 60 秒内见到 Agent 面板 —— 引导你填 BYOK key 或装 Ollama。 后续可从 帮助 重新打开。
  • Recipe 菜谱(11 个起步模板)。 设置 → Recipes → 浏览菜谱。周报、日报、TODO 抽取、 翻译过一遍、引用清理、CJK 校对 agent、链接腐烂检测、 front-matter 规范化、大纲转博客、重构过一遍、 周度 tag 整理。安装、改 prompt、运行。
  • 本地 REST API(只监听 localhost, token 鉴权)。和 MCP 同一套接口,给那些还没接 MCP 的客户端用 —— Alfred / Raycast / n8n / 你自己的脚本。
  • BYOK 成本计。按 provider 累计已花 token 数,opt-in。设置 → 集成。
  • 本地化。ja / ko 翻译骨架在 README + iPad 商店元信息里。en/zh 仍是 UI 全覆盖语言。

第一天就能感受到的 UX 打磨

  • 到处的 IME 守卫。拼音用户打中文、 日文 kana 模式、韩文谚文 —— 按回车确认候选词不会再 误触发对话发送 / 文件树重命名 / 命令面板执行 / 搜索打开。 一次性修了 7 个输入面板
  • Assistant 回复的 插入 / 复制 按钮。 每条完成的回复下方两个按钮。插入会感知当前编辑器选区 (有选区就替换),没选区就插到光标处。复制就是普通 剪贴板。
  • macOS 启动 UX。启动激活时机修对了 —— SoloMD 冷启动会真正到前台,不会再藏在 Finder 后面。窗口位置恢复时永远落在当前显示器工作区里; 副屏断开后从坏存档恢复时会自动重新居中,而不是开到 屏幕外。
  • "生成中..." 卡死无错误。修了。 provider 配错 (例如 Ollama 选了未拉取的模型) 之前会 让面板挂死。现在你会看到红色错误条带后端的实际响应, 发送按钮也会回来。

v4.0 明确不做的(以及为什么)

说"不"也是产品的一部分。下面这些被认真考虑过、明确不做:

  • 自带本地 LLM 运行时。Ollama 已经做得很好; 重新发明轮子违反"少写需要永久维护的代码"原则。 BYOK provider 仍是路径。
  • 线上 Recipe 市场。服务器运维 + 内容审核 = 偏离主线。 菜谱直接打进发行版,跟着工具一起更新。
  • 多人 / 团队 agent。违反"一个窗口,一个写者"。 这个产品给单作者用;协作属于另一个产品。
  • Copilot 风格的鬼字补全。不同的品牌定位。 鬼字补全会稀释作者自己的声音;我们的 agent 工作单位是 vault, 写入是批量 + 可审 + 走分支的。

升级须知

  • 没有文件格式变更。已有的 .md、 AutoGit 历史、同步配置、BYOK key 全部原样保留。
  • Agent 面板首次启动自动开。v3.6.x 用户因为 v4-beta 期间脚手架的默认值,会有一个隐藏的 showAgentPanel: false;一次性迁移会把它 翻成 true,你才会真正看到这个主打功能。不想要可以 ⌘⇧P → View: Toggle Agent Panel 关掉。
  • 设置面板新增 Recipes成本计 两个分页,在 集成 下。已有的设置位置不变。
  • MCP server (solomd-mcp) 加了 --workspace 参数(可重复)。 原来单 workspace 的 MCP 客户端继续工作不受影响; federation 行为是可选加入的。

🔮 接下来

5 大支柱 + 质量条是这次的主要内容。v4.x 及之后 的开放方向都在 roadmap 上:沙盒化的脚本 API、CLI v2 (终端里 rewrite / commit / 语义搜索 / 触发 recipe)、以及一直拖着的 "SoloMD 要不要做成商业产品?" 问题 (付费同步 —— v3.0 时代的老问题,还没答, 没决定之前不会动这块的工程)。

感谢所有在静默期内提交 issue / 发 PR / 用真实 vault 跑 v4-beta build 的人。v4.0 能 ship 是因为 dogfood 把集成测试漏掉的 bug 一个个揪出来了。 早期版本:看博客 →

评论 & 反馈

评论数据托管在 GitHub Discussions —— 用 GitHub 账号一次登录即可。

评论从 GitHub Discussions 加载。如果一直看到这条提示,说明维护者还没完成 giscus.app 一次性配置 —— 详见 web/COMMUNITY-SETUP.md。

前往 GitHub Discussions →