← 全部项目

本地优先的 AI 简历工作台

Resume Studio

AI 改简历真正的风险不是改得慢,是在你没看见 diff、没点确认之前就覆盖了真实简历。

Independent Product / Electron · 2026.05 – 2026.06 · React · Electron · MCP · SSE · local bridge · Shipped

01

问题

用户已经在 Terminal 里用得很顺,问题出在文件被写入的那一刻。

用户继续在本机 Terminal / iTerm 里使用 Codex、Claude Code 或 Antigravity CLI——这部分体验不需要被替代。真正缺的是一层:agent 提出的修改在落到磁盘之前,用户看不见它改了什么。简历是个人材料,一次静默覆盖就可能丢掉一整版内容。

缺的不是能力,是刹车。

约束

材料位置全部在本机,不上传
agent 运行环境用户原有终端,不接管
写入权仅用户,agent 不可直接落盘
可回退history archive + revision 绑定
02

机制

核心判断

把「生成」和「写入」拆成两个不同主体的动作。

agent 通过 MCP 的 propose_edit / propose_batch_edit 只能写进 pending-patch.json。桌面 App 读取它,渲染成一张 before / after diff。用户接受,才写入 active-resume.json;拒绝,则简历零改动。

pending patch 绑定 documentIdrevisionactiveResumePath——切换文档后,旧提案会被清空或拒绝应用,避免把 A 简历的修改落到 B 简历上。

模型提出方案,用户保留最后一次点击。

写入链路 · 人工闸门位置

  1. 01Terminal agent用户原有 CLI,不被接管
  2. 02MCP propose_edit只能提议,不能落盘
  3. 03pending-patch.json候选态,绑定 documentId + revision
  4. 04桌面 diff 审核用户看到 before / after人工闸门
  5. 05active-resume.json接受后才写入真实简历
  6. 06history / PDF归档可回退,导出可交付

唯一的人工闸门在第四步。前三步都不触碰真实简历。

03

产物

最终形态更像一个有边界的本地工作台,不是一个更聪明的聊天框。

左栏是样式控制(字体、字号、配色、密度、分隔线、区块对齐),右侧是实时简历预览,顶部保留 MCP 连接状态和导出 PDF。模型不参与排版判断——排版是确定性的,交给控件更可靠。

产品界面 · 样式控制 + 实时预览

Resume Studio 桌面应用界面:左侧样式控制面板,右侧简历实时预览

顶部 MCP Ready 表示本机 agent 已连接。导出 PDF 与历史归档在同一行。

没走的那条路

最初想做成浏览器里的聊天式简历助手。放弃了——那要求用户离开已经熟悉的终端 agent,换到一个更弱的对话框里,并且没法保证本机文件不被直接改写。

越是个人化、风险高的任务,越不该追求一键自动化,而该追求可撤销。

结论 · 被验证过的判断,而非指标