大模型的观点谨:StoryTold 「Crafting Apps」四件套 · 深度总览

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 the hayro crate 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),而不是二选一。

相关推荐
运维行者_7 小时前
网络性能监控怎么做?从自动发现到根因分析的4个环节
运维·服务器·网络·人工智能·支持向量机
Su米苏7 小时前
Spring AI 中MCP 与普通 @Tool的区别
java·人工智能·spring
美狐美颜sdk7 小时前
直播APP源码可以直接接入视频美颜sdk吗?技术方案详解
android·人工智能·音视频·美颜sdk·直播美颜sdk
问商十三载7 小时前
AI引擎生成式优化实践:刑事辩护律师团队IP构建
大数据·人工智能
冬奇Lab8 小时前
LLM 驱动的自动化测试系列(08):移动端自动化(四)——AppAgent:解析树与视觉特征的结合
人工智能·测试
蜗牛互联网8 小时前
Java 17 HttpClient调用文件转写API的超时与失败回退
java·人工智能·后端
谢亮_vipxieliang8 小时前
Kubernetes 的“操作系统化”:从容器编排到 AI 基础设施控制平面
人工智能·平面·kubernetes
云上先途18 小时前
AI搜索排名优化,需要重点布局哪些关键词和内容形式?
人工智能·chatgpt