GitHub 热门项目推荐:craft-anything(Rust|8425 Star)

这个项目有什么用

Craft Anything 是一个用纯 Rust 编写的开源「洁净室」复刻引擎:你给它一个目标(网站、桌面应用、手机应用、游戏或文件),它用真实的检查工具研究原作的构成与行为,再让编码 agent 按你指定的技术栈新建一个项目,并把结果与原作逐项比对、反复修正。它替代的是「人工拆解 + 手工重写 + 肉眼比对」这套繁琐流程。

典型使用场景包括:想理解某个网站或游戏是怎么做出来的、想以 Rust 等指定技术栈重写一个功能相近的版本、想在不接触原作内部实现的前提下做行为层面的复刻。适合需要研究既有软件并快速产出原型或替代实现的开发者,也适合希望让 agent 自动化完成「研究—构建—校验」闭环的团队。

它把整个流程拆成四步,并在需要你拍板时用大白话询问:

  1. Study:检查原作,包括各宽度下的页面、代码、文件以及运行方式。
  2. Build:编码 agent 按你指定的语言、框架或引擎(或合理默认值)新建项目。
  3. Check:把构建结果与原作比对,列出尚未匹配的部分。
  4. Ready:打开、游玩或预览结果,也可以继续提修改要求让它精修。

核心特性

  • 两种使用模式:Simple 默认模式只需选择目标、描述需求、按 Start,项目页会展示四个步骤、agent 正在做什么、相似度以及打开结果的按钮;Advanced 则是完整工作台,提供全部工具(Ctrl/Cmd+K)、函数、字符串、伪 C 代码、反汇编、十六进制、调用图、证据、未知项、任务、日志与 agent 控制台。两种模式驱动同一个引擎。
  • Clean room 与 Deep 双模式:Clean room 为默认模式,不读取原作内部的代码、文件或页面源码,只依据可见信息工作;Deep 模式会启用全部工具,读取程序代码与文件(安装了 Ghidra 时也会使用),并读取网站 JavaScript。可在标题栏或设置中切换,也可用 settings_set deep_mode true,或在单次 CLI 运行时加 --deep(或 --clean-room)。
  • 结果经过校验而非猜测:每次构建都会与原作比对(页面在三种屏幕宽度下、游戏自身的自测、应用的运行情况),并持续精修直到接近。
  • 为 agent 而设计:320 个工具,每一个既是 CLI 命令也是 MCP 工具,任何 agent 都能驱动与应用相同的引擎;仅做检查时不需要 AI。
  • 纯 Rust 逆向工程引擎:自带解码器、反汇编器与反编译器,无需外部程序即可工作,覆盖原生程序、.NET、Java、Android、Apple、Electron/JavaScript、网站、固件、抓包、数据库与游戏文件等目标;部分能力以 WebAssembly 形式运行在浏览器中。

怎么安装

前提条件:需要 Rust 1.97 或更新版本(某个依赖要求如此,可用 rustup update 升级)。在 Debian 或 Ubuntu 上,桌面应用还需要安装系统依赖。构建过程需要本机已登录的编码 agent(见下文 AI 部分),doctor 会告诉你缺什么。

  1. 在 Debian 或 Ubuntu 上安装桌面应用所需的系统库:
    sudo apt-get install libxkbcommon-dev libwayland-dev libx11-dev libxrandr-dev libxi-dev libgl1-mesa-dev libgtk-3-dev
  2. 克隆仓库并进入目录:
    git clone https://github.com/storytold/craft-anything && cd craft-anything
  3. 运行桌面应用:
    cargo run --release -p craft-anything                # the desktop app
  4. 安装 CLI(安装后命令名为 craft-anything-cli):
    cargo install --path apps/craft-anything-cli         # the CLI, as `craft-anything-cli`
  5. 检查安装、编码 agent 与引擎状态:
    craft-anything-cli doctor                            # checks the install, coding agents and engines

怎么使用

最基础的方式是打开桌面应用,选择要复刻的目标,用自然语言描述需求,然后按 Start。若想从命令行完成一次重建(问题会在终端中询问):

craft-anything-cli rebuild https://example.com "Recreate this website"

也可以不指定网址,直接从一句需求开始,例如生成一个 Rust 贪吃蛇游戏,并限制轮数:

craft-anything-cli rebuild - "A snake game in Rust" --rounds 1

常见进阶用法包括:在已有项目上继续修改,以及把改动写入指定项目目录:

craft-anything-cli rebuild https://example.com "Make the header blue" --continue-in "<project folder>"
craft-anything-cli rebuild - "Add a contact form" --project-folder "<your folder>" --existing edit

此外,每个工具都可作为 CLI 子命令或 MCP 工具使用,agent 无需打开应用即可研究目标或跑完整重建:

craft-anything-cli commands                                   # every tool, by toolset
craft-anything-cli mcp                                        # serve them to any MCP client
craft-anything-cli rebuild https://example.com "Recreate this website"

关于 AI:构建需要本机有一个编码 agent。首先支持的是 Claude Code,Craft Anything 运行你自己未修改的 claude 程序并使用你自己的登录,它不会接触你的账号。Codex 适配器存在但尚未在真实安装上验证。GitHub Copilot 可通过 ACP 使用你已安装的 Copilot CLI,需另行执行 copilot login 登录。其他支持 ACP 的 agent(Gemini CLI、Qwen Code、opencode、goose、Hermes、Maki)可按后端切换,其中只有 Maki 经过实机运行。Anthropic、OpenAI、OpenRouter 以及本地 OpenAI 兼容服务器可用于提问与分析(设置 → AI)。

新建项目默认放在 Documents/Craft Anything,可在 Settings → General 中修改(README 此处被截断,后续内容官方文档未说明)。

适用场景与注意事项

适合的场景:想弄清某个网站、应用或游戏的实现方式;想以指定语言或引擎快速得到行为相近的新项目;想用 agent 自动化完成研究、构建与比对闭环;以及只需要「看看里面」而不构建任何东西的探索(Deep 模式下的「Just look inside」)。

需要注意的点:

  • Clean room 模式会拒绝读取内部的工具,并提示如何开启 Deep 模式;Deep 模式读取程序代码与文件,官方描述其用途为「供你私人使用」,使用前请自行确认合规性。
  • 构建依赖本机的编码 agent 并需登录,且你对 Claude 等工具的使用受你与相应厂商的协议约束。
  • Codex 适配器尚未在真实安装上验证,ACP 系 agent 中只有 Maki 经过实机运行,选择时需留意成熟度。
  • 项目采用 Apache-2.0 协议;桌面应用在 Linux 上需要额外系统库,Rust 版本不得低于 1.97。
  • README 未给出性能指标与具体依赖版本,官方文档未说明的部分请以仓库文档为准。

项目地址

仓库地址:https://github.com/storytold/craft-anything
作者/组织:storytold
开源协议:Apache-2.0

Craft Anything 把「研究原作、按需重建、逐项校验」整合进一个纯 Rust 引擎,并提供 CLI、MCP 与桌面应用三种入口,是否适合你的工作流,取决于你对 Deep 模式与外部编码 agent 的接受程度。

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享