ArtCraft「Crafting Apps」四件套 · 深度指南总览
审查对象:VectorCraft(Illustrator)、WordCraft(Word)、PdfCraft(Acrobat)、CADCraft(AutoCAD)
审查时间:2026-10-08 · 全部基于仓库
main分支快照 + GitHub Release API 实测方法:README/ROADMAP/MCP 文档/控制协议文档通读 + CLI 源码逐行核实 + 打包脚本逐行核实 + Release 资产清单实测
0. 为什么这四个项目值得一起看
它们出自同一个组织(storytold / ArtCraft Team,MSI 里的厂商名是 Learning Machines LLC ),共用一套 craftrules 发布手册 和一套完全相同的架构范式。所以理解一个就等于理解四个:
┌─────────────────────────────────────────────┐
│ 命令注册表(Command Registry) │
│ 每个菜单项/工具/面板动作 = 一条带 id 的命令 │
└───────────────┬─────────────────────────────┘
│ 同一套命令,五个入口分发
┌───────────────┼───────────────┬─────────────┬──────────────┐
│ │ │ │ │
GUI 界面 CLI 命令行 JSON 控制通道 MCP server Rust API
(egui) (xxx-cli) (--control PORT) (stdio) (库调用)
这条架构决策是本次审查最核心的发现 :在这些项目里,「用命令行/AI 操作软件」不是外挂方案,而是一等公民 。GUI 能做的事,CLI 一定能做;反之亦然------因为它们调的是同一个 engine.execute(command, params)。
| VectorCraft | WordCraft | PdfCraft | CADCraft | |
|---|---|---|---|---|
| 对标商业软件 | Adobe Illustrator | Microsoft Word | Adobe Acrobat | Autodesk AutoCAD |
| 当前版本 | v0.6.0 | v0.3.0 | v0.4.0 | v0.3.0 |
| Star / Fork | 3,212 / 1,195 | 615 / 218 | 3,722 / 1,212 | 536 / 241 |
| Open issues | 31 | 21 | 88 | 20 |
| 建仓日期 | 2026-09-30 | 2026-10-07 | 2026-09-30 | 2026-10-07 |
| 仓库体积 | 30.0 MB | 7.1 MB | 22.9 MB | 2.7 MB |
| Release 数 | 8 | 2 | 5 | 2 |
| 许可 | MIT OR Apache-2.0 | 同 | 同 | 同 |
| 语言 | Rust(edition 2024) | Rust | Rust | Rust |
| 命令数 | ~400 引擎 + ~50 UI | 389 | 97 个 agent 工具 | 290(133 个带交互提示) |
| MCP 工具数 | 25 | ~18 | 97 | ~8 |
| 自评功能覆盖 | 69--75%(真实可用感 40--55%) | 87% 目录 / ~62% 实际 | 51% 功能数 / 30--35% 工作量 | ~29% |
| 成熟度排序 | ① 最成熟 | ② | ③ | ④ 最早期 |
一句话定位:VectorCraft 和 PdfCraft 是「已经能用」的,WordCraft 是「日常写作快能用了」,CADCraft 是「还在早期」。
1. 五条共同的架构事实(决定了一切优缺点)
1.1 命令注册表是唯一真源
以 WordCraft 为例,crates/engine 里注册了 389 条命令,每条都有 id、label、快捷键、参数文档、启用条件。然后:
- GUI:ribbon 按钮、菜单、快捷键 → 全部映射到命令 id
- CLI :
wordcraft-cli run --cmd 'format.bold' - 控制通道 :
{"method":"engine.execute","params":{"command":"format.bold"}} - MCP :
execute {command: "format.bold"}
这个设计的直接后果 :AI 不需要「学会用 GUI」 。它只要拿到命令目录(list_commands / commands),就能精确地做任何操作,而且可以自我验证 ------每个项目都提供 inspect_document / inspect_drawing / doc_inspect 之类的只读接口,AI 改完自己读回来确认,不用截图。
1.2 「永不崩溃」是硬性工程约束
四个项目在 Cargo.toml 里都设了:
toml
[workspace.lints.rust]
unsafe_code = "forbid" # CADCraft / WordCraft / PdfCraft
unsafe_code = "deny" # VectorCraft(有 wasmi 沙箱插件,需局部豁免)
[workspace.lints.clippy] # VectorCraft 最严
unwrap_used = "deny"
expect_used = "deny"
panic = "deny"
todo = "deny"
unimplemented = "deny"
unreachable = "deny"
VectorCraft 连 unwrap() 都禁止出现在产品代码里 ------这在一个有 400 条命令、2,840 个测试的图形程序里是相当克制的选择。PdfCraft 和 CADCraft 的 CLI 也 #![deny(clippy::unwrap_used, ...)]。
1.3 依赖面极干净
外部依赖(实测 Cargo.toml) |
|
|---|---|
| VectorCraft | kurbo, peniko, vello_cpu, usvg, krilla, skrifa, harfrust, linesweeper, wasmi, image, flate2, egui/eframe/rfd |
| WordCraft | kurbo, skrifa, harfrust, vello_cpu, image, krilla, quick-xml, zip, unicode-*, regex, egui |
| PdfCraft | hayro, hayro-syntax, lopdf, flate2, weezl, kurbo, egui |
| CADCraft | tiny-skia, skrifa, image, egui-wgpu |
注意 PdfCraft 那一行 :hayro(页面渲染)和 lopdf(PDF 对象层)是第三方 crate ,而且 PdfCraft 还自带 5 个 vendored 补丁版本 (vendor/hayro-interpret、vendor/hayro、vendor/hayro-syntax、vendor/hayro-jbig2、vendor/lopdf)。这直接关系到下面 §2 的「clean-room」争议。
1.4 每个项目都自带「诚实自评」
这是这四个项目最罕见、最值得称赞 的地方。每个 ROADMAP 都有一节 Honest assessment,主动写明:
- VectorCraft:「面积分数是建造该功能的 agent 自己打的 ,来自行为文档和测试,不是 与 Illustrator 并排实测。请把它们当作上界。」
- PdfCraft:「159 个已交付功能只有 1 个测试撑着;只有约 5 个引用了外部 oracle。『已交付』不等于『和 Acrobat 一样好』。」
- CADCraft:明确区分「菜单广度 47%」与「加权真实 parity 29%」。
这种自我暴露在开源项目里极少见 ,也意味着你可以相信它们的数字不会往上虚报 ------但也要理解它们的数字是估计值。
1.5 「clean-room + 纯 Rust」的主张需要打折看
四个 README 都写着 "clean-room reimplementation ... rebuilt in pure Rust"。核实结果:
- ✅ 没有调用任何 Adobe / Microsoft / Autodesk 的二进制或 SDK,也没有 Office/PDF 商业库。
- ✅ 图标、字体、图案、示例文件都是原创或开源授权(
ATTRIBUTION.md逐项列出)。 - ⚠️ 但 PdfCraft 的 PDF 渲染核心是借来的 (
hayro),对象层是lopdf,并且打了 5 个本地补丁 。README 自己也承认 "Still borrowed: pages are drawn by thehayrocrate while our own renderer is built"。所以「从零用 Rust 重写」对 PdfCraft 来说部分不成立 ------它的编辑器 是自己写的,渲染器不是。 - ⚠️ CADCraft 的 DWG 支持依赖第三方
acadrust库 (README 明说),而 DWG 本身没有公开规范------这是整个 CADCraft 最大的技术/法律软肋。 - ⚠️ VectorCraft 用
usvg/krilla/harfrust等成熟 crate 做 SVG/PDF/文本整形------这是合理的工程选择,但和「从位流开始全部自研」的 FilmCraft 不是一个量级的自研程度。
结论 :把「clean-room」理解为**「没有抄代码、没有用厂商 SDK、素材全部合法」是准确的;把它理解为「所有底层都是自己写的」则不准确**(PdfCraft、CADCraft 尤其)。
2. Windows 11 安装:四条共同的硬事实(这一节最重要)
我把四个项目的 packaging/windows/package.ps1 和 .wxs 逐行读了,结论对四个项目完全一致:
2.1 ⚠️ Windows 上没有独立的 CLI 安装包
实测 Release 资产清单(以 v0.6.0 为例):
vectorcraft-0.6.0-windows-x64.msi
vectorcraft-0.6.0-windows-x64-portable.zip
vectorcraft-0.6.0-windows-x86.msi
vectorcraft-0.6.0-windows-x86-portable.zip
vectorcraft-0.6.0-windows-arm64.msi
vectorcraft-0.6.0-windows-arm64-portable.zip
vectorcraft-cli-0.6.0-macos-universal.zip ← 只有 macOS 有独立 CLI 包
四个项目、所有版本,-cli- 资产都只有 macOS 版。
2.2 ✅ 但 CLI 已经打包在里面了
打包脚本原文:
wordcraft-<version>-windows-<arch>-portable.zip wordcraft.exe + wordcraft-cli.exe
- 便携版 zip :解压后同时 得到
xxx.exe和xxx-cli.exe。 - MSI :安装到
C:\Program Files\<AppName>\(INSTALLFOLDER在ProgramFiles6432Folder下),两个 exe 都装 (WiX 里WordcraftCli是一个独立 Component)。
2.3 ⚠️ MSI 不会把 CLI 加到 PATH
我读了 wordcraft.wxs:MSI 只为主程序写了 App Paths 注册表项:
xml
<RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\App Paths\wordcraft.exe" ... />
wordcraft-cli.exe 没有 PATH 项、没有 App Paths 项。 所以装完 MSI 后,你必须:
- 用全路径调用:
& "C:\Program Files\WordCraft\wordcraft-cli.exe" --version,或者 - 自己把
C:\Program Files\WordCraft加进 PATH。
这是本文档里最容易被忽略、也最影响体验的一条。
2.4 ✅ 不需要装 Visual C++ 运行库
打包脚本用 -C target-feature=+crt-static 静态链接 C 运行库:
"The binaries link the C runtime statically (+crt-static), so neither the MSI nor the portable zip needs the Visual C++ redistributable."
2.5 ⚠️ 签名「可能没有」------README 的承诺要打折
所有 README 的下载表都写着 "Installers and executables are code-signed."。但 sign.ps1 的实际逻辑是:
1. 尝试 WINDOWS_CERTIFICATE(base64 .pfx)+ WINDOWS_CERTIFICATE_PASSWORD
2. 尝试 Azure Trusted Signing(AZURE_TENANT_ID / AZURE_CLIENT_ID / ...)
两个都没有时 → 打印警告,留下未签名的文件,exit 0
"With neither, it prints a warning and leaves the files unsigned (exit code 0), so test builds still produce installers."
而且 PdfCraft 的 ROADMAP 明确写着:
"Product readiness | 0.2.1 | No code signing, performance budgets or keyboard-only operation yet"
所以:流水线支持签名,但某个具体 release 到底签没签,取决于发布者有没有配密钥。 PdfCraft 至少到 0.2.1 是没签的,README 与 ROADMAP 自相矛盾。
实操建议:下载后先验证签名,再决定是否安装:
powershell
Get-AuthenticodeSignature "C:\path\to\vectorcraft-0.6.0-windows-x64.msi" | Format-List Status, SignerCertificate
# Status 为 Valid 才是真签名;NotSigned 则 Windows SmartScreen 可能拦你
2.6 架构选择速查
| 你的机器 | 该下哪个 |
|---|---|
| 普通 Intel/AMD PC(绝大多数) | -windows-x64 |
| Surface Pro X / Snapdragon X 等 ARM PC | -windows-arm64 |
| 很老的 32 位 Windows | -windows-x86 |
打包脚本会校验 PE 头的 Machine 字段,所以不会出现「x64 的包被标成 arm64」这种事故。
3. AI Agent 集成的共同模式(三选一)
四个项目都提供三种给 AI 用的接口,选哪种取决于你要不要「看见」界面:
| 模式 | 启动方式 | 适用 |
|---|---|---|
| ① MCP headless(推荐) | xxx-cli mcp |
无窗口,进程内引擎。适合批量/流水线。最轻、最稳 |
| ② MCP bridge | 先 xxx --control 7979,再 xxx-cli mcp --connect 127.0.0.1:7979 |
驱动真实运行的 App,AI 的操作你能实时看见,还能截图/点击 |
| ③ 直接 CLI | xxx-cli run --cmd ... |
一次性任务、shell 脚本、Makefile/CI。不需要 MCP 客户端 |
配置到 Claude Code(四个项目语法一致):
sh
# 无头
claude mcp add vectorcraft -- "C:\Program Files\VectorCraft\vectorcraft-cli.exe" mcp --headless
claude mcp add wordcraft -- "C:\Program Files\WordCraft\wordcraft-cli.exe" mcp
claude mcp add pdfcraft -- "C:\Program Files\PdfCraft\pdfcraft-cli.exe" mcp --root "D:\pdfwork"
claude mcp add cadcraft -- "C:\Program Files\CADCraft\cadcraft-cli.exe" mcp
# 桥接到运行中的 App(可截图、可点击)
claude mcp add wordcraft-app -- "C:\Program Files\WordCraft\wordcraft-cli.exe" mcp --connect 127.0.0.1:7981
通用 JSON 配置(任何 MCP 客户端):
json
{ "mcpServers": {
"vectorcraft": { "command": "C:/Program Files/VectorCraft/vectorcraft-cli.exe", "args": ["mcp", "--headless"] }
} }
3.1 两个必须知道的安全差异
| PdfCraft | 其他三个 | |
|---|---|---|
| MCP 沙箱 | ✅ 有 --root DIR ,AI 读写的每个文件(包括脚本里 "out" 写的图)都必须在该目录内 |
❌ 无文件沙箱 |
| MCP 启动 | ✅ opt-in:绝不自己启动、不开网络端口,只在 agent 拉起时走 stdio,断开即退出 | 同样走 stdio,但默认行为更宽松 |
| 控制通道鉴权 | ✅ 要求 token :pdfcraft --control /tmp/pc.json 写一个随机 token 到该文件,每个连接必须出示 |
❌ 无鉴权(仅绑环回) |
| 编译期剔除 | ✅ cargo build -p pdfcraft-cli --no-default-features 可以完全不编 MCP server |
❌ 无 |
结论:如果 AI agent 要处理敏感文档,PdfCraft 的安全模型明显是四个里最好的。 其他三个的控制通道是「本机任意进程都能完全接管 App + 注入键鼠 + 截屏」,生产环境要谨慎。
4. 横向对比:AI 能做什么、做不到什么
4.1 AI 操作明显优于人工的场景(四个项目共有)
| 场景 | 为什么 AI + CLI 更好 |
|---|---|
| 批量重复劳动 | 1000 个文件套同一套操作。人工是线性时间,CLI 是常数时间 |
| 精确数值操作 | 「把所有描边改成 1.5pt、颜色 #E8573F、圆角 3mm」------AI 一次说清,GUI 要手动改 200 次 |
| 结构化检查与修复 | 「找出所有未嵌入字体的文本」「找出所有未闭合的路径」------用 inspect 读回来判断,GUI 只能肉眼找 |
| 模板化生产 | 数据驱动出图/出文档:CSV → 100 张海报 / 100 份合同 |
| 可重复、可审计 | 每个操作是一条 JSON 命令,可以进 git、可以 diff、可以重放 |
| 跨文件一致性 | 「把这 50 个 PDF 的元数据统一」------GUI 做不到 |
| 自我验证闭环 | AI 改完 inspect_document 读回来确认,不需要人看 |
4.2 AI 做不到或做不好的(四项目共有)
| 限制 | 说明 |
|---|---|
| 审美判断 | 「让这张海报更好看」------AI 能做规则化的东西(对齐、配色约束、间距),做不了真正的视觉品味 |
| 交互式探索 | 手工拖贝塞尔曲线调形、手指画画、用数位板------CLI 表达不了这种连续手感 |
| 复杂视觉关系 | 「把这段文字绕着那个图形排」需要精确描述;GUI 里拖一下就完了 |
| 无 spec 的功能 | 命令目录里没有的能力,AI 也变不出来(比如 CADCraft 的 3D) |
| 长链条的视觉反馈 | headless 模式下 AI 看不到结果,必须靠 render/screenshot 自己回读(四个项目都支持,但会增加 token 成本) |
4.3 各项目「AI 相对商业软件」的独有优势
| 商业软件的 AI 路径 | 开源项目的 AI 路径 | 谁赢 | |
|---|---|---|---|
| Illustrator | ExtendScript/UXP 脚本,必须开 GUI,无官方 CLI | vectorcraft-cli 无头批量 + MCP 25 工具 + 控制通道 |
VectorCraft 赢(架构层面) |
| Word | COM 自动化(Windows)/ VBA,重量级、易挂 | wordcraft-cli run 无头 + MCP + 389 命令 |
WordCraft 赢(跨平台、轻) |
| Acrobat | 几乎没有官方自动化 API(Acrobat 的 JS 只在文档内运行,不能外部驱动) | pdfcraft-cli 12 个子命令 + 97 工具 + --root 沙箱 |
PdfCraft 大幅赢 |
| AutoCAD | 有 accoreconsole.exe(真无头)+ AutoLISP/.NET API ------ 这是商业软件里自动化最好的 |
cadcraft-cli 更轻,但功能只有 29% |
AutoCAD 赢(功能),CADCraft 赢(开放/免费) |
这张表说明一个重要结论 :这四个开源项目的价值不在于功能比商业软件强 ,而在于它们把「AI 可驱动」做成了第一性设计 。Acrobat 尤其明显------Adobe 从来没有提供过像样的外部自动化接口,PdfCraft 的 CLI 反而成了这个领域最容易自动化的选择。
5. 分批次阅读建议
| 批次 | 文档 | 内容 |
|---|---|---|
| 批次 1(本文) | 00_总览与横向对比.md |
共同架构、Windows 安装硬事实、AI 集成模式、横向对比 |
| 批次 2 | 01_VectorCraft_Illustrator替代.md |
矢量插画。最成熟的一个 |
| 批次 3 | 02_WordCraft_Word替代.md |
文字处理。日常写作可用 |
| 批次 4 | 03_PdfCraft_Acrobat替代.md |
PDF 工作台。安全模型最好、自动化最缺 |
| 批次 5 | 04_CADCraft_AutoCAD替代.md |
CAD 制图。最早期,但自动化接口设计得最巧 |
6. 一句话结论
这四个项目最值得学的地方不是它们的功能覆盖度 (29%--75%),而是它们证明了**「软件把每一个操作都建模成一条带参数的命令」是让 AI 能真正操作复杂桌面软件的前提**。
相比之下,Adobe / Microsoft / Autodesk 的产品虽然功能强 10 倍,但自动化接口的设计水平落后一个代际------Illustrator 还在用 ExtendScript、Acrobat 干脆没有外部自动化 API、Word 的 COM 自动化跨平台不可用。
当下的正确用法 :把开源项目当作「AI 可驱动的批处理引擎」用在它们已经成熟的区域(VectorCraft 出图、WordCraft 出文档、PdfCraft 整理/批注/填表/加密),把商业软件留给你需要人工精修和高级功能的时候。两者用文件格式互通(SVG/PDF/DOCX/DXF),而不是二选一。