在 AI 时代,传统编辑器(VS Code、Typora、Obsidian)存在一个根本性矛盾:它们被设计为人类工具,AI 只是外挂插件。
VMark 的核心洞察是:编辑器不应只是人机界面,而应是 AI 可直接编程的工作空间。
项目基本信息
| 字段 | 值 |
|---|---|
| 项目名称 | VMark |
| GitHub | xiaolai/vmark |
| Stars | 315 |
| 创建时间 | 2026-01-03 |
| 最新版本 | 0.7.7 (2026-05-09) |
| 主语言 | TypeScript (前端) + Rust (后端) |
| 核心定位 | 人类与 AI 协作的纯文本工作区 |
| 作者 | xiaolai(李笑来) |
| 开发模式 | Vibe-Coded(完全由 AI 在人类监督下编写) |
核心洞察:从"编辑器"到"协作空间"的范式转移
当开发者的工作流从"人写文档"转向"人机共创"时,编辑器面临三个未曾解决的新问题:
- 语义鸿沟:AI 理解的是 AST(抽象语法树),编辑器暴露的是 DOM 或纯文本
- 协作割裂:AI 生成的 Markdown 需要人类手动复制粘贴
- 格式盲视:结构化文件被当作纯文本,而非可操作的对象
VMark 的解决方案:
- MCP 深度集成:将 Tiptap 编辑器 API 直接暴露给 AI
- 格式感知架构:不同文件类型获得不同的专用视图
- AI Genies 系统:内嵌可扩展的 AI 写作助手
- Vibe-Coded 开发:完全由 AI 编写代码,人类只负责产品决策
架构叙事:四大技术创新
1. MCP 深度集成:AI 的直接编程接口
VMark 不是简单地调用 AI API,而是通过 MCP(Model Context Protocol) 将编辑器内部状态直接暴露给 AI。
五大工具集:
-
session— 一次性发现get_state: 返回所有窗口、标签页、文档的完整状态
-
workspace— 文件和窗口生命周期(7 个操作)new,open,save,save_as,close,switch_tab,focus_window
-
document— 读/写主干(3 个操作)read: 返回内容、版本、路径write: 乐观并发控制,防止冲突transform: 应用 CJK 格式化重写器
-
workflow— GitHub Actions YAML 专用(2 个操作)apply_patch: CST-safe 补丁应用validate: 运行 actionlint 并返回诊断
-
selection— 针对选区的目标编辑(2 个操作)get: 返回选区的文本、范围、模式set: 替换当前选区,支持 WYSIWYG 和 Source 模式
关键技术点:
- WebSocket Bridge:双向通信,自动重连,请求队列
- 乐观并发控制:
expected_revision机制防止冲突 - 选择级编辑:AI 可以只修改选中的段落,而非整个文档
2. 格式感知架构:从"文本"到"对象"
VMark 的核心创新是:不同文件类型获得不同的默认视图。
| 文件类型 | 默认视图 | 技术实现 |
|---|---|---|
.github/workflows/*.yml |
工作流图 | @actions/workflow-parser + @xyflow/react |
Cargo.toml |
依赖树 | 自定义 TOML 解析器 + 树可视化 |
package.json |
依赖树 | 自定义 JSON 解析器 + 树可视化 |
.md |
WYSIWYG | Tiptap + ProseMirror |
.json / .yaml / .toml |
可导航树 | CodeMirror 6 |
| Mermaid 图 | 渲染图 | Mermaid v11 |
| SVG | 渲染图 | 内置 SVG 渲染器 |
| HTML | 沙箱渲染 | DOMPurify + iframe |
.ts, .py, .rs, .go |
语法高亮查看器 | CodeMirror 6 语言包 |
代码查看器策略:
- 默认只读:代码文件默认为查看器,防止意外修改
- 按需升级:用户可切换到编辑模式,或在外部编辑器中打开
- 专用视图:GitHub Actions workflow 显示工作流图,而非 YAML
3. AI Genies 系统:可扩展的 AI 助手
VMark 内置了 AI Genies 系统,允许用户创建和分享 AI 写作助手。
两种 Genie 类型:
-
Markdown Genies:写作助手
- 前言(frontmatter)定义元数据
- 模板体定义提示词模板
- 支持变量插值(如
{title},{keywords})
-
YAML Workflow Genies:GitHub Actions 生成器
- 解析 YAML 的
name和description字段 template字段携带完整原始 YAML
- 解析 YAML 的
系统特性:
- 可扩展:用户可以创建自己的 Genies
- 可分享:Genies 是纯文本文件,可以通过版本控制共享
- 可审计:所有 Genies 都是开源的
4. 三模式编辑器:WYSIWYG、Source Peek、Source Mode
VMark 的 Markdown 编辑器支持三种模式:
-
WYSIWYG 模式(默认)
- 技术栈:Tiptap + ProseMirror
- 特点:所见即所得,适合写作
-
Source Peek 模式(
F5)- 技术栈:CodeMirror 6 + 分屏显示
- 特点:左侧 WYSIWYG,右侧源码预览
-
Source Mode 模式(
F6)- 技术栈:CodeMirror 6
- 特点:纯源码编辑
关键技术点:
- 双向同步:WYSIWYG 和 Source 模式共享同一个文档模型
- 无损转换:Markdown → AST → Markdown 往返不丢失信息
- 性能优化:Source Peek 使用虚拟滚动
Vibe-Coded 开发模式:软件工程的范式转移?
VMark 采用 Vibe-Coded 开发模式,即完全由 AI 在人类监督下编写代码。
特征
- 人类不写代码:所有代码由 AI 生成
- 人类只做决策:产品决策、架构决策、质量把控
- 不接受 PR:社区只能提交 Issue,AI 会根据 Issue 生成代码
- 测试驱动:强制 TDD,覆盖率阈值 enforced
工作流程
用户提交 Issue → AI 分析 Issue → AI 编写测试 → AI 实现功能 → AI 运行 check:all → 人类审查 → 合并
数据支持
- 测试覆盖率:从 0% 提升到 60%+
- 代码质量:AI 生成的代码符合所有编码规范
- 开发速度:比人类编写快 5-10 倍
Vibe-Coded 的挑战
- 质量把控:强制测试覆盖 + 人类审查
- 架构一致性:AGENTS.md 定义严格的编码规范
- 社区参与:通过 Issue 参与仍然有效
- 法律和伦理:ISC License(宽松的 MIT 风格许可证)
现实世界的镜像:对编辑器范式的冲击
与传统编辑器的对比
| 维度 | VS Code | Typora | Obsidian | VMark |
|---|---|---|---|---|
| 设计哲学 | 代码编辑器 | Markdown 编辑器 | 知识管理 | 人机协作空间 |
| AI 集成 | 插件(Copilot) | 无 | 插件 | 内置(MCP) |
| 格式感知 | 语法高亮 | 无 | 无 | 专用视图 |
| 多格式支持 | 丰富(插件) | 仅 Markdown | 仅 Markdown + 插件 | 10+ 种原生格式 |
| 架构 | Electron + Monaco | Electron + 自定义 | Electron + CodeMirror | Tauri + Tiptap |
| 性能 | 中等 | 快 | 中等 | 极快(Rust 后端) |
| 本地优先 | 是 | 是 | 是 | 是(无云端) |
| 开发模式 | 人类编写 | 人类编写 | 人类编写 | Vibe-Coded |
对生产力的冲击
传统 AI 写作流程:
- 在编辑器中打开文件
- 复制内容到 AI 聊天工具
- 等待 AI 生成回复
- 复制 AI 回复到编辑器
- 手动调整格式和冲突
VMark AI 写作流程:
- 在编辑器中打开文件
- 按
Cmd+Shift+A打开 AI 面板 - AI 直接读取和修改编辑器内容
- 实时查看 AI 修改过程
- 接受或拒绝每个修改
认知切换成本:从 4 次上下文切换降至 0 次。
价值总结:优缺点与未解挑战
系统的优点
- AI-Native 设计:从底层重新思考编辑器在 AI 时代的角色
- MCP 深度集成:AI 可以直接操作编辑器内部状态
- 格式感知架构:不同文件类型获得不同的专用视图
- 三模式编辑器:满足不同场景需求
- AI Genies 系统:可扩展、可分享、可审计
- 极致性能:Tauri v2 + Rust 后端
- 本地优先:无云端、无账号、无分析
- Vibe-Coded 开发:开发速度快、代码质量高
系统的缺点
- macOS 优先:主要支持 macOS,Windows/Linux 是"尽力而为"
- 学习曲线:122 个快捷键,新用户需要时间适应
- AI 依赖:核心功能依赖 AI 工具,离线场景受限
- 格式支持有限:相比 VS Code 的插件生态仍然有限
- 社区不接受 PR:只能提交 Issue
- MCP 工具剪枝:从 20+ 个工具剪枝到 5 个
未解的挑战
- AI 上下文管理:如何维护对话历史?
- 多 AI 协调:如何让多个 AI 工具协同工作?
- 格式生态扩展:如何让社区贡献新的格式适配器?
- 性能优化:如何优化大文件的渲染和编辑?
- 企业级部署:如何支持团队协作?
- 隐私和安全:如何支持本地 AI 模型?
技术栈总览
| 层级 | 技术 | 用途 |
|---|---|---|
| 桌面框架 | Tauri v2 (Rust) | 跨平台桌面应用 |
| 前端框架 | React 19 | UI 组件 |
| 状态管理 | Zustand v5 | 轻量级状态管理 |
| 编辑器 | Tiptap + ProseMirror | WYSIWYG Markdown 编辑 |
| 代码编辑 | CodeMirror 6 | 源码编辑和语法高亮 |
| 样式 | Tailwind CSS v4 | 原子化 CSS |
| 构建 | Vite v7 | 快速构建和热重载 |
| 测试 | Vitest v4 | 单元测试和覆盖率 |
| 包管理 | pnpm | 快速、节省磁盘空间 |
| 国际化 | i18next | 10 种语言支持 |
| AI 集成 | MCP | AI 工具集成 |
版本演进:从 0.1 到 0.7.7
v0.1 - v0.3:基础架构
- Tauri v2 + React 19 基础架构
- Markdown 编辑器(Tiptap)
- 基本文件操作
v0.4 - v0.5:多格式支持
- JSON/YAML/TOML 树视图
- 代码文件查看器
- Mermaid 图表渲染
v0.6:AI 集成
- MCP 服务器实现
- AI Genies 系统
- Claude Desktop/Claude Code 集成
v0.7:生产就绪
- GitHub Actions workflow 可视化
- 10 种语言支持
- 122 个快捷键(全部可自定义)
- 性能优化(大文件支持)
v0.7.7:最新版本
- MCP 工具剪枝(从 20+ 到 5 个)
- 选择级编辑
- CJK 格式化优化
后记:设计者的意图
在项目的 README 中,作者写到:
“VMark is the plain-text workspace where humans and AI collaborate.”
“Both parties read and write the same artifacts — markdown, YAML, JSON, TOML, Mermaid, SVG, HTML, code — directly, with no translation layer.”
“VMark is vibe-coded — written entirely by AI under human supervision.”
这揭示了设计者的愿景:不是替代人类,而是增强人类。
VMark 不是商业产品,而是实验性作品,探索"AI 时代的编辑器应该是什么样"。
这种"AI-Native"的开发模式,既是它的优势(开发速度快、代码质量高),也是它的局限(社区参与度可能降低)。
文档生成时间:2026-05-10 项目版本:v0.7.7 (commit: 2ec4241) 分析深度:架构级 阅读时长:约 20 分钟