Craft Anything 保姆级部署教程:让 AI 看懂任何软件、网站或游戏,再帮你重建一个自己的版本
适用读者:想搞清楚某个网页/App/游戏到底是怎么做出来的开发者、想做前端复刻练习的设计师、需要「先看懂再动手」的重建类项目作者,以及想把「检查一个目标」这件事交给 Agent 自动跑的工程师。本文按官方 README 逐项展开:它是什么、怎么装、两种模式怎么选、CLI 与 MCP 怎么用、踩坑怎么排。所有命令、版本号、端口与目录结构均来自官方仓库,可对照核验。

一、Craft Anything 是什么
Craft Anything 是 ArtCraft 团队开源的一套纯 Rust 逆向与重建引擎,官方一句话定位是:See how any website, app or game works, then have AI build your own version(看明白任何网站、应用或游戏是怎么运作的,再让 AI 给你造一个自己的版本)。
它的工作方式不是「丢一个链接给大模型让它猜」,而是把过程拆成有证据的闭环:你指定一个目标、说清你想要什么,它先用真实的检查工具去研究原件的页面、代码、文件与运行方式,再让一个编码 Agent 在你指定的语言/框架/引擎里新建一个项目,然后把新项目与原件逐项比对、列出还不一致的地方,反复打磨到接近为止。
这一点决定了它和「一句话生成 UI」类工具的差别:它先取证,再动手;结果是比对出来的,不是猜出来的。
1.1 核心信息一览
| 项目 | 信息 |
|---|---|
| 名称 | Craft Anything |
| 出品方 | ArtCraft Team(社区型创作工具团队) |
| 开源仓库 | https://github.com/storytold/craft-anything |
| 官网 | https://getartcraft.com/ |
| 项目页 | https://getartcraft.com/apps/craft-anything |
| 许可证 | MIT 或 Apache-2.0(双许可,任选其一) |
| 实现语言 | 100% Rust(桌面端基于 egui) |
| 工具规模 | 320 个工具(其中 300 个在引擎内,其余来自 AI 与 setup 层) |
| 支持平台 | macOS、Windows、Linux、FreeBSD,另有 WebAssembly 浏览器端 |
| 项目状态 | early alpha(早期测试版,官方明确标注) |
| 运行前提 | 本机需装有并已登录的编码 Agent(首选 Claude Code) |
| 构建前提 | Rust 1.97 或更新版本 |
| 社区 | Discord: https://discord.gg/artcraft |
1.2 适用场景
- 网站复刻与前端练手:把它对准一个站点,让它按访问者能看到的信息(截图、可见文本、量出来的布局、配色、字体、间距、展开的菜单)重建一套页面,并在三种屏宽下比对差异。
- 桌面/手机应用的结构理解:Deep 模式下用内置引擎(装了 Ghidra 就用 Ghidra)读程序的代码与文件,输出带置信度、覆盖度与局限说明的证据记录。
- 游戏玩法重建:官方给出的是 Unity、Unreal、Godot 三条路径,可以用「把这个游戏的玩法用 Rust 重写」这类请求启动。
- 固件、抓包、数据库、游戏资源文件的分析:引擎自带解码器、反汇编器与反编译器,不依赖外部程序。
- 把「检查」接进自动化:每个工具同时是一条 CLI 子命令和一个 MCP 工具,任何 Agent 都能驱动同一套引擎。
1.3 能力边界(官方口径)
- Clean room 是一条「它提供什么、拒绝什么」的规则,不是操作系统沙箱。官方特别说明:它不隔离你的电脑;你运行的编码 Agent 仍以你的身份行事,能读什么、写什么、跑什么取决于那个 Agent 自己的权限。
- 不是所有 Agent 的私有工具都能被拦下:Craft Anything
能拒绝哪些工具随 Agent 而异;Claude Code
在对话与提问中的工具清单,官方另给了
docs/claude-code.md。 - 明确不做:不绕过 DRM、不绕过登录、不绕过反作弊。重建只依据证据复原布局、风格与行为;官方要求 Agent 不得复制 logo、照片与文案,除非你确认自己拥有或已获授权。
- 当前为 early alpha:官方把「今天能用 / 部分可用 /
已发布 / 下一步」四档写进了
docs/STATUS.md,组件级的核对清单在docs/tool-status.md,路线图在docs/ROADMAP.md。请不要按「稳定生产工具」的预期去用。
二、功能特性
- Study(研究):用真实检查工具摸清原件的构建方式与实际行为,每个结论都带证据;网站按三种屏宽取样,游戏用自带的 self-test,应用按运行记录比对。
- Build(构建):用自然语言说需求(如「Recreate this website」「把这个游戏的玩法用 Rust 重写」),编码 Agent 在你指定的语言、框架或引擎里新建项目;不指定就给合理默认。
- Check(检查):新构建与原件逐项比对,直接列出「哪里还不一致」,而不是只给一句「已完成」。
- Ready(就绪):可以直接打开、试玩或预览成品;不满意就在底部输入框继续提修改,它接着改。
- Simple 模式(默认):三步走——选网站/应用/游戏、填地址、说要求、点 Start。项目页用白话展示四个步骤、Agent 正在做什么、需要你拍板的问题卡与批准卡、当前相似度,以及「打开成品/打开文件夹」按钮。Deep 模式下还可以只选「Just look inside」,只看不建。
- Advanced 模式:完整工作台——全部工具(快捷键 Ctrl/Cmd+K)、函数列表、字符串、伪 C 代码、反汇编、十六进制、调用图、证据账本、未知项、任务、日志与 Agent 控制台。两种模式驱动的是同一个引擎。
- Clean room(默认):完全不读原件内部——不读代码、不读文件、不读页面源码,只依据「你能看到的东西」工作;会去看内部的工具会被拒绝,并提示你如何切到 Deep 模式。
- Deep 模式:全部工具放开,供你私人使用;程序代码与文件用内置引擎读取(装了 Ghidra 则一并使用),网站会读 JavaScript 并观察其起始页。
- Agent-ready:
craft-anything-cli commands可按工具集列出全部工具,craft-anything-cli mcp可把它们作为 MCP 服务暴露给任何 MCP 客户端;结果是有置信度、覆盖度与局限说明的证据记录,体量大的先回摘要,再用core_evidence_browse分页翻。 - 可选扩展:生成图片与 3D 模型(需自备 fal.ai
key,需主动开启);插件体系支持 MCP 服务器,以及在开启
wasm-plugins选项时加载 WASM 组件。
三、官方界面预览

图注:Make 界面是重建的起点——先选要复刻的是网站、桌面应用还是游戏,填地址,选择 Clean room 或 Deep,说明你想要什么,点 Start 开始。

图注:Advanced 工作台把「证据」摊开给你看——函数列表、选中函数的伪 C 代码、Agent 带工具调用地在回答提问,以及每一条答案背后的证据账本。截图中的项目是官方为演示专门做的小样例(example.com、一个贪吃蛇游戏和一个小计算器程序)。
四、官方跳转链接汇总
| 用途 | 链接 |
|---|---|
| 源码仓库 | https://github.com/storytold/craft-anything |
| 最新发布(全平台安装包) | https://github.com/storytold/craft-anything/releases/latest |
| 全部历史版本与更新说明 | https://github.com/storytold/craft-anything/releases |
| 官网 | https://getartcraft.com/ |
| 项目主页 | https://getartcraft.com/apps/craft-anything |
| 工具全清单 | docs/tools.md(仓库内) |
| 状态与核对方式 | docs/STATUS.md、docs/tool-status.md |
| 路线图 | docs/ROADMAP.md |
| Claude Code 集成说明 | docs/claude-code.md |
| 社区(Discord) | https://discord.gg/artcraft |
五、前置要求
5.1 软件前提
| 项目 | 要求 | 说明 |
|---|---|---|
| Rust | 1.97 或更新 | 官方注明是某个依赖的要求,升级方式 rustup update |
| 编码 Agent | 本机需装好并已登录 | 构建环节必须有 Agent;doctor 会告诉你缺什么 |
| Claude Code(首选) | 已登录的 claude |
Craft Anything 直接运行你自己那套未修改的
claude,使用你自己的登录态,它本身从不接触你的账号 |
| GitHub Copilot(可选) | 已安装的 Copilot CLI | 通过 ACP 接入,需单独执行 copilot login 登录 |
| 其他 ACP Agent(可选) | 支持 ACP 的 Agent | Gemini CLI、Qwen Code、opencode、goose、Hermes、Maki 可按后端切换;官方明确目前只有 Maki 做过真机验证 |
| Ghidra(可选) | 已安装 | 仅 Deep 模式会用,不装也能用内置引擎 |
| fal.ai key(可选) | 自备 | 只有要生成图片/3D 模型时才需要 |
5.2 Debian / Ubuntu 额外系统库(桌面端)
官方给出的原文命令,桌面应用在 Debian 系发行版上需要先装这些开发库:
sudo apt-get install libxkbcommon-dev libwayland-dev libx11-dev libxrandr-dev libxi-dev libgl1-mesa-dev libgtk-3-dev5.3 磁盘与目录
- 新建项目默认落在
Documents/Craft Anything,可在 Settings → General 改。 - 也可以让项目直接建在你指定的文件夹里(Start 下的「Choose a
folder…」,或命令行
--project-folder)。 - 若目标文件夹里已有文件,它会问你这些文件是什么:应用本体(构建器就地修改)还是起始素材(应用另建在
app/旁边)。这个答案可以在 Settings → General 里记住。
六、安装部署
6.1 方式一:源码构建(推荐给要先改代码的人)
git clone https://github.com/storytold/craft-anything && cd craft-anything
cargo run --release -p craft-anything # 启动桌面应用
cargo install --path apps/craft-anything-cli # 安装 CLI,命令名为 craft-anything-cli
craft-anything-cli doctor # 自检:安装、编码 Agent、各引擎doctor
是第一次装完必跑的一步:它会分别检查安装完整性、你本机的编码 Agent
是否可用、以及各分析引擎的状态,缺什么直接说。
6.2 方式二:预编译安装包(推荐给只想用的人)
官方在 Releases 页给出了全平台安装包,文件名里的
<ver> 是版本号,SHA256SUMS.txt
列出每个文件的校验和:
| 平台 | 可下载形态 |
|---|---|
| Windows | craft-anything-<ver>-windows-x64.msi /
-arm64.msi / -x86.msi,以及对应的
-portable.zip |
| macOS | craft-anything-<ver>-macos-universal.dmg(arm 与
Intel 通用,已签名并公证);CLI 另有
craft-anything-cli-<ver>-macos-universal.zip |
| Linux | AppImage / Flatpak / .deb / .rpm /
.tar.gz,均分 x86_64 与 aarch64;RISC-V 只有 tar.gz |
| FreeBSD | craft-anything-<ver>-freebsd-x86_64.tar.gz |
| Web(WASM) | craft-anything-web-<ver>.zip,浏览器端只做文件识别,文件不出本机 |
几个官方明确写下的注意点:
- 0.2.0 之后的版本,CLI 已经打包进 App,只有「不装 App、单用命令行」时才需要额外下那个 CLI 压缩包。
- Linux 的 AppImage 自带 CLI:用
<AppImage> --cli <命令>调用(例如<AppImage> --cli mcp给 MCP 客户端用),也可以建一个名为craft-anything-cli的软链指向 AppImage。 - Flatpak 是沙箱形态,安装用
flatpak install --user <file>。 - macOS 用浏览器下载 CLI 压缩包可能被拦,提示「Apple could not verify craft-anything-cli」——因为单个裸程序没法自带公证票据,macOS 需要联网查。官方建议改用终端下载安装:
ver=0.2.0 # 换成你要的版本
curl -fLO "https://github.com/storytold/craft-anything/releases/download/v$ver/craft-anything-cli-$ver-macos-universal.zip"
ditto -x -k "craft-anything-cli-$ver-macos-universal.zip" .
mkdir -p ~/.local/bin
mv "craft-anything-cli-$ver-macos-universal/craft-anything-cli" ~/.local/bin/
~/.local/bin/craft-anything-cli --version要把命令简化成 craft-anything-cli,把
~/.local/bin 加进
PATH。如果已经被拦过一次,官方给的处理是:点 Done(不要点 Move
to Bin),然后执行
xattr -d com.apple.quarantine <craft-anything-cli 的路径>,或到「系统设置
→ 隐私与安全性 → 仍要打开」。
- 想自己验证 macOS
包是否已签名公证,官方给了完整命令:磁盘镜像用
spctl --assess --type open --context context:primary-signature -v与xcrun stapler validate;App 用codesign --verify --deep --strict --verbose=2与spctl --assess --type execute --verbose;CLI 用codesign --verify --strict并codesign -dv --verbose=4 | grep Authority。Authority一行应出现「Developer ID Application」证书,任一项不通过就不要运行该文件。
七、配置项说明
7.1 模式:Clean room 与 Deep
| 项 | 默认 | 切换方式 |
|---|---|---|
| 工作模式 | Clean room | 标题栏或设置里切换;或 settings_set deep_mode true;单次
CLI 运行可用 --deep / --clean-room |
- Clean room 下,会被拒绝的工具同时会告诉你「怎么开 Deep」,不会静默失败。
- Deep 仅供你私人使用,是全部工具放开的状态,因此也意味着更高的合规责任(见第十一节)。
7.2 AI 与 Agent 接入
| 配置位置 | 用途 |
|---|---|
| Settings → AI | 接入 Anthropic、OpenAI、OpenRouter,以及本地 OpenAI 兼容服务用于提问与分析 |
| Settings → General | 项目默认目录、记住「已有文件夹算什么」的答案、从更多文件夹里列出项目 |
| Settings → General(项目列表) | 把一个项目从列表里移除,只是移出列表,不会删文件 |
官方对 Agent 的现状说明要照原样理解:Claude Code
是首个支持对象,跑的是你本机那套原版
claude,用你自己的登录,适用你自己的 Anthropic
协议;Codex
适配器已有代码但尚未在真实安装上验证;别的 ACP Agent
可按后端切换,其中只有 Maki 做过真机验证。
7.3 项目目录结构(很重要,排查问题全看这里)
每个项目文件夹里固定是这几样:
| 文件/目录 | 内容 |
|---|---|
craft.json |
这次请求、目标、状态与历史记录 |
capture/ |
从目标身上采集下来的东西 |
app/ |
生成出来的项目本体 |
checks/ |
每一次与原件的比对结果 |
investigation.cany/ |
证据记录(答案背后的依据) |
inbox/ |
待你回答的问题 |
八、使用流程
8.1 图形界面:四步闭环
- Make:选「网站 / 应用 / 游戏」,填地址(网站填 URL,应用与游戏按界面提示),选 Clean room 或 Deep,写清你想要什么,点 Start。
- Study:Agent 用检查工具研究原件;需要你拍板的决定会以白话问题卡弹出,越权操作会以批准卡先问你。
- Build:Agent 在你指定的技术栈里新建项目,进度与它正在做的事都会用白话写出来。
- Check → Ready:查看相似度与「还不一致」清单;点按钮打开成品或所在文件夹;不满意就在底部输入框继续提修改。
只想看看里面是什么、不打算建东西时,Deep 模式下用 Just look inside。
8.2 命令行:不装 App 也能跑完整重建
craft-anything-cli commands # 按工具集列出全部工具
craft-anything-cli mcp # 作为 MCP 服务提供给任意 MCP 客户端
craft-anything-cli rebuild https://example.com "Recreate this website"
craft-anything-cli rebuild - "A snake game in Rust" --rounds 1
craft-anything-cli rebuild https://example.com "Make the header blue" --continue-in "<项目文件夹>"
craft-anything-cli rebuild - "Add a contact form" --project-folder "<你的文件夹>" --existing editrebuild过程中需要你决定的事,会直接在终端里问。--rounds控制打磨轮数(上面的--rounds 1即只跑一轮)。--continue-in沿用已有项目继续改;--project-folder+--existing edit表示「就地编辑这个已有应用」。craft-anything-cli setup用来把 Craft Anything 接到各类编码 Agent 应用上。
九、常用运维命令
| 目的 | 命令 |
|---|---|
| 自检安装与 Agent | craft-anything-cli doctor |
| 查全部工具(按工具集分组) | craft-anything-cli commands |
| 起 MCP 服务 | craft-anything-cli mcp |
| 接编码 Agent 应用 | craft-anything-cli setup |
| 看版本 | craft-anything-cli --version |
| 升级源码构建的版本 | git pull && cargo build --release |
| 升级 Rust 工具链 | rustup update |
| AppImage 自更新 | 随包提供 .zsync 文件,配合 AppImageUpdate |
| 卸载 CLI(cargo 安装的) | cargo uninstall craft-anything-cli |
查项目现场时优先看项目文件夹里的 craft.json 与
checks/:前者记着这次任务的状态与历史,后者是每一轮比对的实际结果,比看日志直观。
十、常见故障排查
1. cargo run 报依赖要求更高的 Rust 版本
官方写明需要 1.97 以上。执行 rustup update
后 rustc --version 复核,再重跑构建。
2. 桌面端在 Debian/Ubuntu 上编译失败,提示缺少 xkbcommon /
wayland / gtk 相关头文件 按 5.2 的 apt-get install
原文命令补齐开发库再编译。注意这些是 -dev
包,只装运行时不解决编译问题。
3. 点 Start 之后一直不进入 Build 先跑
craft-anything-cli doctor:八成是本机编码 Agent
没装或没登录。Craft Anything 不代管你的账号,它只调用你已登录的
claude;若用 Copilot CLI,需先
copilot login。
4. 用 API key 或非 Claude Code 的 Agent 构建,卡住或失败 官方在状态说明里把「用 API key 和其他编码 Agent 构建」列为已实现但尚未真机跑通。这不是你的配置问题,是项目当前进度;请先用 Claude Code 路径。
5. 想查代码/文件,却一直被拒绝,提示要开 Deep 这是
Clean room 的预期行为,不是 bug。按提示切
Deep(标题栏/设置、settings_set deep_mode true,或单次
--deep)。同时记住:Clean room
不是系统沙箱,切模式只是放开工具,不改变你本机的隔离水平。
6. Deep 模式下 Ghidra 相关能力没生效 先确认本机装了 Ghidra 且能被找到;没装时引擎会退回内置解码器、反汇编器与反编译器,功能范围会窄一些。
7. macOS 上 CLI 打不开,提示无法验证
这是裸程序无法携带公证票据导致的。用 6.2
的终端下载方式重装,或对已有文件执行
xattr -d com.apple.quarantine,再或到「隐私与安全性」里放行。
8. AppImage 提示缺 FUSE AppImage 需要 FUSE
才能直接运行;发行版没装 FUSE 时,要么装 FUSE,要么改用 .deb /
.rpm / .tar.gz 形态。
9. 结果「看着像但细节不对」
这是这类重建的正常起点:去看 checks/
里具体不一致的条目,针对性地在底部输入框提要求(如「把页头改成蓝色」),或用
--continue-in / --rounds
指定继续打磨,而不是整轮重来。
10. 浏览器端(WASM)能做什么
官方口径很克制:它只做文件识别,而且文件不会离开浏览器;把它当成本地分析器,不要期待网页端跑完整重建。网页端需要你自己把
packaging/web/ 目录托管到任意静态 Web 服务器上。
十一、风险与责任使用声明
这一节不是免责套话,是这个项目本身要求你先读的部分。
1. 只在你拥有或获授权检查的软件上使用。 官方原文:Use Craft Anything on software you own or are allowed to examine。它从不绕过 DRM、登录或反作弊;用它去分析别人的付费软件、绕过授权校验或对抗反作弊,既违反项目本意,也可能直接违法。
2. 重建不等于可以照抄。 官方写明:重建只依据证据复原布局、风格与行为,并且要求 Agent 不得复制 logo、照片或文案,除非你确认自己拥有或已获授权。第三方站点的图片、字体、商标、文案都可能另有权利人;把复刻结果公开上线前,请自行完成版权与商标核查。
3. Clean room 不是安全沙箱。 它约束的是「Craft Anything 自己提供哪些工具、拒绝哪些工具」,并不隔离你的电脑。你运行的编码 Agent 以你的身份行事,能读能写能跑的范围由那个 Agent 的权限决定;不同 Agent 的私有工具能否被拦下也不一样。
4. 装依赖就是在跑别人的代码。
官方专门提示:构建器安装项目依赖时,那些命令在你的电脑上执行,而包在安装期间就能运行代码——npm
默认执行每个包的 install 脚本,Rust 的 build script 与 Python
源码包也会跑自己的 setup 代码。Craft Anything
会对本项目里没见过的命令类型(npm、cargo 等)先征求同意;一旦你对
npm 选了「always allow」,之后所有 npm
命令都不再询问,所以只对你信任其依赖的项目这么选。要跳过 npm
包的安装脚本,用 npm install --ignore-scripts。
5. 早期版本的预期管理。 项目自标 early
alpha,官方把「部分可用」的组件也写在明面上。涉及生产用途时,请以
docs/STATUS.md 与 docs/tool-status.md
的实际核对状态为准,并保留你抓到的问题到 Issues 或 Discord 反馈。
6. 许可证边界。 代码为 MIT 或 Apache-2.0
双许可,可任选其一;但 ArtCraft 名称、字标与
docs/brand/ 下的 logo
是商标,不在代码许可范围内,只能原样、且仅作为本仓库与 Craft
Anything 的一部分使用;fork
与修改版必须移除这些品牌素材。打包的字体、图标、图片等第三方素材各有自己的开源许可,清单见
ATTRIBUTION.md。
7. 账号与隐私。 Craft Anything 不接触也不处理你的
Anthropic 账号,它只是调用你本机已登录的
claude,你对它的使用受你自己的 Anthropic 协议约束;若接第三方
API
key(Anthropic/OpenAI/OpenRouter/fal.ai),请求会发往对应服务方,请自行评估数据外发的范围。
一句话总结:Craft Anything 把「看懂一个软件」和「重建一个软件」拆成了带证据的四个步骤,并且把每个能力都同时做成 CLI 与 MCP 工具——它更适合当一个可被 Agent 驱动、可被逐条核对的逆向与重建工作台,而不是一个「一键出成品」的魔法按钮。先用 Clean room 在你自己拥有或获授权的目标上跑一遍完整流程,再决定要不要开 Deep。