craft-anything
Skill66 starsChanged 7 days agoMITView on GitHub
Craft Anything is ArtCraft's open-source, pure-Rust reverse-engineering and rebuilding workbench: point it at a website, desktop app, phone app, game or file, and it studies the original with real inspection tools (disassembler, decompiler, archives, browsers, databases, packet captures), has a coding agent (Claude Code first) build a new project in the stack you name, compares the result against the original at three screen widths or via the built program's own self-test, and refines until it matches. Trigger this skill whenever the user mentions Craft Anything (or `craft-anything-cli`, `craft.json`, `.cany`, "rebuild this website/app/game", "how does X work under the hood"), asks to inspect or reverse-engineer software they own, wants an agent-driven study→build→check pipeline, asks about its 301-tool engine, its MCP server, Clean room vs Deep mode, or its project folder layout — and equally when they never name it but describe the job ("figure out how this site is built", "make me a clone of this app", "disassemble this binary and tell me what it does"). Do not assume Ida-Pro-style or Ghidra-style behaviour: read this first.
- Installs packages
1 other project uses a version of this.
Adopted by
Most recently taken up by
- hermes-pro/storytold-skillstheir own version, first seen Nov 8, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- hermes-pro/storytold-skills★ 36same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository18 other files it gives its agents.
- AGENTS.mdAGENTS.md
- artcraft-studioSkill
- cadcraftSkill
- deckcraftSkill
- designcraftSkill
- effectcraftSkill
- figcraftSkill
- filmcraftSkill
- gridcraftSkill
- lightcraftSkill
- materialcraftSkill
- pdfcraftSkill
- photocraftSkill
- solidcraftSkill
- soundcraftSkill
- texturecraftSkill
- vectorcraftSkill
- wordcraftSkill
The file
We split this skill into the rules it gives an agent
6 rules. About 0 are common, 1 is distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 39
Results are evidence, not answers: every result carries confidence, coverage and limitations.
- Distinctive: line 63
Do not assign these at v0.5.0:
- Very specific: line 91
You are also the builder Craft Anything drives: When its coding-agent bridge launches you, read the inbox/notes flow: the person's answers …
- Very specific: line 92
Study first, honestly: keep the investigation memory current (core_investigation_show, core_brief_write, core_plan_update, …
- Very specific: line 103
One project per run: never edit a project folder while a rebuild is active.
- Very specific: line 110
Read: README.md, Cargo.toml, …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Craft Anything
Audit basis. Refreshed 2026-11-07 against tag v0.5.0, commit 622d023cdfdb91c00df8b9a37c486a2a18fb0917 — git rev-parse HEAD in the pinned checkout confirms, and the installed bundle matches (Info.plist CFBundleShortVersionString 0.5.0, bundle id ai.storyteller.craft-anything; its craft-anything-cli --version prints craft-anything-cli 0.5.0). The previous release this skill described was v0.3.0 (e6280b5).
v0.3.0 → v0.5.0 delta. 481 files changed in the tree diff. Engine tools 299 → 301 in the same 17 toolsets: core 34 → 35 (core_finding_edit) and projects 19 → 20 (project_plan_fold), with MIN_TOOLS still 271 (docs/tools.md; crates/engine/src/tool_list.rs). The installed craft-anything-cli commands lists 321 commands — the 20 AI/setup-layer tools on top (rebuild_*, assets_key_*, ai_model*, setup_*) — so 321 is not the engine count. MCP gained a shared-host mode: mcp --restricted drops and refuses machine-acting and network tools, --allow-web / --allow-capture re-enable those classes, and --target passes desktop target metadata (apps/craft-anything-cli/src/main.rs; crates/mcp/src/lib.rs). Coding-agent adapters went 3 → 6 — copilot, dsh (DeepSeek Harness) and maki joined antigravity, hermes and opencode (crates/ai/src/cli_agents/adapters.rs; docs/copilot.md, docs/opencode.md); Claude Code remains the first-class builder, README says only Maki among the ACP agents has been run live, and Codex is still unverified. New projects in Python, Go, .NET, Maven, Gradle and Make now build, test and launch through the same catalogue as Rust and Node.js (crates/engine/src/toolchains.toml, 8 toolchains; docs/STATUS.md). UI languages 5 → 15 (crates/ui-egui/src/i18n.rs LANGUAGES, crates/ui-egui/src/i18n/*.tsv). Versioned files grew to 12 rows with inbox/build-progress.json, pin.json version 2 and feed.json version 5 (docs/file-formats.md; crates/engine/src/workspace/progress.rs, crates/engine/src/pins.rs, crates/engine/src/feed.rs). Public installers are now published, and the README now states that Clean room is not an OS sandbox and that dependency installs run code.
v0.2.0 → v0.3.0 delta. 135 files changed. Engine tools 298 → 299 (the projects toolset 18 → 19). The macOS bundle does ship craft-anything-cli — the previous skill said it did not, and packaging/macos/package.sh copies, signs and version-checks it. CLI: --build-with and --generate-assets added, --resume requires --continue-in and ignores the request, --rounds defaults to 2. Repo docs are stale against the generated docs/tools.md (README says 314/298 at that tag).
v0.1.0 → v0.2.0: the engine tool surface is unchanged (299 tools / 17 toolsets, docs/tools.md byte-identical). The wave is in the agent/AI layer: an OpenCode adapter (crates/ai/src/cli_agents/adapters/opencode.rs — invokes opencode run, without run OpenCode reads its first argument as a folder to open), npm-installed coding agents start on Windows, local model servers (LM Studio et al.) accept the tools because boolean sub-schemas are sent as objects, failed agent runs are explained with a keepable log (failure_log.rs), the build activity feed shows what the build is doing now and how long it has been quiet (crates/ai/src/rebuild/activity.rs), "Try again" resumes where a build stopped (crates/engine/src/journal.rs), deadlocks are stopped as they form with a lock watchdog, crashing programs are named by their error instead of the last stack line, CJK scripts render in release builds (fonts and licences ship), a builder writing /app/… paths builds the app instead of being refused, doctor calls a local AI server reachable only when it answers with its models (and no longer offers another program squatting on the model-server port), agent checks that only probed the version say so, and the coding agent's cost is labelled an estimate. Claude Code remains the first-class, verified builder; Codex and OpenCode adapters exist but are unverified.
Verify against your installed version — the ArtCraft Launcher auto-updates, so a newer build may differ; every count quoted here was re-measured at this tag, and code paths that moved were re-cited. The measurement method for each count is in evidence.md.
Overview
Craft Anything is "See how any website, app or game works, then have AI build your own version" — an open-source, clean-room engine in pure Rust by the ArtCraft/storytold project (README.md, MIT OR Apache-2.0). It works in four steps — Study → Build → Check → Ready — asking the person question/approval cards when a decision is theirs (README.md "How it works"). Two UI modes drive the same engine: Simple (a project page with the four steps) and the Advanced workbench (functions, pseudo-C, disassembly, hex, call graphs, evidence ledger, agent console). Clean room (default) inspects only what a visitor can see — screenshots, visible text, measured layout, colours, fonts — and refuses look-inside tools; Deep reads code and files with the built-in engines and Ghidra when installed (README.md "Clean room or Deep"; crates/engine/src/tools/deep.rs). Building needs a coding agent signed in on your machine — Claude Code is supported first (your own unmodified claude, your own sign-in); Codex, Copilot (ACP), OpenCode, DeepSeek Harness and other ACP agents are built but unverified — README says only Maki among the ACP agents has been run live (README "AI"; docs/claude-code.md, docs/copilot.md). Status: early alpha — website rebuilds with three-width checks and game rebuilds in Unity/Unreal/Godot work today; app/game behaviour checks are partial; some engine tools are tested only against stand-ins (README.md Status; docs/STATUS.md; docs/tool-status.md). Source: GitHub storytold/craft-anything.
Capabilities (verified)
One tool registry, three surfaces
- 301 engine tools in 17 toolsets at this tag, generated into
docs/tools.mdbycargo xtask toolsand kept honest by a test floor (MIN_TOOLS = 271, unchanged at v0.5.0;crates/engine/src/tool_list.rs:9). Each tool is simultaneously an MCP tool, a CLI command (craft-anything-cli <id with dashes>) and a callable tool for the coding agent; the AI and setup layers add 20 more on top (rebuild_*9,assets_key_*3,ai_model*4,setup_*4), socraft-anything-cli commandsprints 321, not 301. Toolsets:core35,native55,apple14,formats36,managed(.NET) 8,android14,java6,adb24,browser22,javascript11,runtime14,frida9,application17,database1,projects20,setup9,build6 (docs/tools.md). The README's "320 tools (300 in the engine)" is stale — trust the generated list. - Results are evidence, not answers: every result carries confidence, coverage and limitations; big ones come back as a summary and page with
core_evidence_browse. The discipline rules (predict-then-check, cite evidence ids, absence is not proof) are appended to every guided prompt (crates/mcp/src/prompts.rsDISCIPLINE). - MCP server (
craft-anything-cli mcp): stdio JSON-RPC; tools default to Essentials plus enabled toolsets,--all-toolslists everything;--inbox DIRpostscore_person_ask/core_action_approvecards for the desktop app to answer;--target <json>takes desktop target metadata (apps/craft-anything-cli/src/main.rsMcp). On a shared host use--restricted: it omits and refuses tools that act on the machine or reach the network, with--allow-weband--allow-captureto turn those classes back on (crates/mcp/src/lib.rsrestricted_refusal). 6 guided prompts, unchanged at v0.5.0 (crates/mcp/src/prompts.rsPROMPTS). - CLI subcommands (
apps/craft-anything-cli/src/main.rsCommand): 12 named —mcp,setup,doctor,uninstall,commands,capabilities,triage <path>,report [--html] [--out] [--no-evidence],chat,rebuild,ai, and the hiddenbuilder-noteshook (--helpshows the first 11) — plusTool(Vec<String>)pass-through so every engine tool id is a subcommand (the 12 named subcommands are unchanged at v0.5.0). Unknown flags are refused. - Rebuild from the terminal (questions asked in the terminal):
craft-anything-cli rebuild <target|"-" for none> "<request>"with--rounds N(default 2),--backend,--unattended,--projects-dir,--project-folder+--existing edit|start-from,--continue-in+--resume,--deep/--clean-room(apps/craft-anything-cli/src/rebuild_cmd.rs); this flag set is unchanged at v0.5.0.
Study (the inspection engine)
- Its own pure-Rust decoders, disassembler and decompiler work without outside programs; Deep mode additionally uses Ghidra when installed (
README.md"Under the hood"). Native programs (ELF/Mach-O/PE), .NET (incl. IL2CPP, bundles), Java (with decompilation), Android (adb, APK/AXML/ARSC signing), Apple (runtime, codesign, CAR), Electron (asar, fuse, runtime), JavaScript/JS bundles, websites (CDP browser automation), firmware, packet captures, databases, game archives — one toolset each (crates/engine/src/tools/,crates/formats/src/). - External engines are optional and detected: Ghidra, Cutter, rizin, GDB, Frida, adb, jadx, JEB, tshark, apktool and CDP browsers (
crates/engines/src/;engines_*tools indocs/tools.md);craft-anything-cli doctorchecks the install, registrations, engines, AI backends and the MCP server. - "Just look inside" opens a target for questions without building anything (Deep mode).
Build, check, refine
- The builder is your own Claude Code (first-class; Codex adapter built but unverified). GitHub Copilot can be used through ACP after
copilot login, and other ACP agents (Gemini CLI, Qwen Code, opencode, goose, Hermes, Maki) are switchable per backend — README says only Maki among them has been run live (README.md"AI";docs/copilot.md,docs/opencode.md,crates/ai/src/cli_agents/adapters.rs). Craft Anything never sees your account; generated pictures and 3D models are opt-in with your own fal.ai key. - Checks: websites are compared at three screen widths; games run the generated program's own
--self-testagainstchecks/round-N/self-test.json; app runs are compared; each round writes intochecks/and the agent refines what doesn't match (README.mdStatus;crates/engine/src/self_test.rs;docs/file-formats.md). New projects in Python, Go, .NET, Maven, Gradle and Make are built, tested and launched from one catalogue (crates/engine/src/toolchains.toml— 8 toolchains with Rust and Node.js;docs/STATUS.md"New-project toolchains"). - Plugins: MCP servers, and WASM components in builds with the
wasm-pluginsoption (crates/engine/src/plugins.rs;crates/engines/src/wasm_plugin.rs).
Project folder and file formats (all versioned, migration steps on open)
- New projects go to
Documents/Craft Anything(Settings → General) unless--project-folder. Layout:craft.json(request, target, status, history),capture/,app/(the generated project),checks/,investigation.cany/(evidence ledger),inbox/(open questions andbuild-progress.json) (README.md"Get started"). - Version constants in code:
craft.jsonMANIFEST_VERSION2 (crates/engine/src/workspace.rs),config.tomlSETTINGS_VERSION3 (crates/engine/src/settings.rs),investigation.cany/project.tomlFORMAT_VERSION1 (crates/engine/src/project.rs) — each with a compile-time assertion that the migration-step list has one step per version. Thedocs/file-formats.mdtable now has 12 rows: the three constants above,transcript.json,usage.json,questions.json,mechanics.json,standin.jsonandself-test.json(all 1), pluspin.json2 (crates/engine/src/pins.rs),feed.json5 (crates/engine/src/feed.rs) andinbox/build-progress.json1 (crates/engine/src/workspace/progress.rs). Newer files:craft.json= read-only, saving refused;project.toml= refused with "update Craft Anything";build-progress.json= the build stops and leaves the record unchanged. A newer file is never downgraded or overwritten. ⚠️ Repo-doc drift: the same table still shows manifest 1 / settings 2 — it lags the constants (measured in code at v0.1.0, v0.3.0 and v0.5.0 alike); trust the constants.
Known limitations and not-implemented
Do not assign these at v0.5.0:
- Only Claude Code is the first-class, verified builder. The Codex, Copilot and other ACP adapters are built but unverified; README says only Maki among the ACP agents has been run live (
README.md"AI", "Status"). - Behaviour checks for apps and games are partial; website checks are the mature path.
- Some engine tools are tested only against stand-ins (
crates/engine/src/tools/standin_tools.rs;docs/tool-status.mdmarks each tool). - Clean room is not an OS sandbox: it is a rule about which tools Craft Anything offers and refuses. A coding agent you run still acts as you, with its own permissions (
README.md"Clean room or Deep"). - Installing dependencies runs code: npm install scripts, Rust build scripts and Python source packages execute on your machine. Craft Anything asks before a command kind it has not seen in the project; "always allow" then covers every later command of that kind, so grant it only for trusted dependencies (
README.md"Responsible use"). - The managed tier is still "next"; public installers are published, and the browser build is a viewer, not the full workbench (
apps/craft-anything-web;README.mdStatus). - It never bypasses DRM, logins or anti-cheat, and the builder is told not to copy logos/photos/text without confirmation of ownership — respect that when writing requests (
README.md"Responsible use").
How to operate
- GUI:
open -a "Craft Anything"; the app binary isContents/MacOS/craft-anything. The macOS bundle shipscraft-anything-clibeside it (Contents/MacOS/craft-anything-cli, 0.5.0) — no separate install is needed on a launcher install; on another machine get it from the release assets orcargo install --path apps/craft-anything-cli --locked, and keep versions matched. Do not launch the GUI just to run a CLI command. - Mode: switch Clean room/Deep in the title bar or Settings,
settings_set deep_mode true, or--deep/--clean-roomper CLI run. - Typical agent flow:
craft-anything-cli doctor # what's missing (agents, engines, AI) craft-anything-cli capabilities # toolsets, availability, engines craft-anything-cli triage ./target.bin # first look, evidence records craft-anything-cli rebuild https://example.com "Recreate this website" --rounds 2 craft-anything-cli rebuild - "A snake game in Rust" craft-anything-cli rebuild https://example.com "Make the header blue" --continue-in "<folder>" craft-anything-cli report --out report.md # readable report from the ledger - Settings live in
config.toml(engine::settings::config_dir(), version 3);LIGHTCRAFT-style env overrides are not a thing here — checkcraft-anything-cli doctoroutput for paths.
Working with an AI agent
- You are also the builder Craft Anything drives. When its coding-agent bridge launches you, read the inbox/notes flow: the person's answers arrive via the
builder-noteshook; approval-required actions go throughcore_action_approverather than being assumed. - Study first, honestly: keep the investigation memory current (
core_investigation_show,core_brief_write,core_plan_update,core_hypothesis_record,core_finding_record,core_handoff_write) — the MCP prompts enforce this discipline and it makes your answers auditable. - Respect the mode. In Clean room the look-inside tools refuse; don't try to work around them. Switching to Deep is the person's decision.
- Prepare inputs in formats the toolsets open (archives, binaries, captures, DB dumps); use
core_archive_extractrather than shelling out, so evidence lands in the ledger. - Verify rebuilds from
checks/outputs and the per-round comparison reports; a "Ready" step is a claim — open the result and re-check before telling the person it matches. - What not to attempt: bypassing DRM/logins/anti-tamper (refused by design), promising Codex/Copilot builds, editing
craft.json/.canyby hand while a run is active, quoting the README's 320-tool number, assuming Ghidra is present (checkdoctor), or serving MCP to a shared host without--restricted.
Verification protocol
- Round-trip on a throwaway target first: rebuild a tiny known website with
--rounds 1, then readcraft.json,checks/round-1/andapp/before real work. - Cite evidence ids for every claim about the original; absence is not proof.
- Version your project folders (copy the whole folder; every file carries a version and a newer file refuses saves).
- One project per run: never edit a project folder while a rebuild is active;
--resumeexists for continuation. - Update between projects: this skill is pinned to v0.5.0; re-run
doctorafter updates.
Sources & evidence
- Repo: https://github.com/storytold/craft-anything — inspected at tag v0.5.0, commit
622d023cdfdb91c00df8b9a37c486a2a18fb0917("Release 0.5.0", 2026-11-06), inspection date 2026-11-07; the previous tag v0.3.0 (e6280b5dc518b9f3266c82d794a4e2f0367d9a53) was diffed against it for the delta. Apache-2.0 and MIT (LICENSE-APACHE/LICENSE-MIT). - Installed
/Applications/Craft Anything.app:CFBundleShortVersionString0.5.0,CFBundleIdentifierai.storyteller.craft-anything; the bundledcraft-anything-cli --versionprintscraft-anything-cli 0.5.0. The GUI was never launched and the app binary was not executed. - Read:
README.md,Cargo.toml,docs/{tools,STATUS,tool-status,claude-code,copilot,opencode,file-formats,pitfalls,extending,tool-ids,localization}.md,apps/craft-anything-cli/src/{main,rebuild_cmd,setup_cmd,ai_cmd}.rs,crates/engine/src/{tool_list,registry,project,settings,self_test,plugins,pins,feed,workspace,versioned}.rs,crates/engine/src/workspace/progress.rs,crates/engine/src/toolchains.toml,crates/engine/src/tools/(list),crates/mcp/src/{lib,prompts}.rs,crates/ai/src/cli_agents/adapters.rsand its adapters,crates/ui-egui/src/i18n.rs,crates/engines/src/(list),crates/formats/src/(list). - Counts recomputed from source at v0.5.0: 301 engine tools in 17 toolsets (
docs/tools.mdgenerated list, 301 ids;MIN_TOOLS = 271), 321commandsentries (301 + 20 AI/setup extras), 6 MCP prompts (unchanged at v0.5.0), 12 named CLI subcommands (unchanged at v0.5.0) + hidden/external pass-through, 12 versioned-file rows indocs/file-formats.md, 15 UI languages (LANGUAGESincrates/ui-egui/src/i18n.rs), 8 toolchains incrates/engine/src/toolchains.toml; version constants from code:MANIFEST_VERSION/FORMAT_VERSION/SETTINGS_VERSION= 2/1/3 (⚠️docs/file-formats.md's table still shows manifest 1 / settings 2 — stale repo doc). - Workspace: 13 crates (
ai,analysis,disasm,engine,engines,evidence,formats,js,mcp,platform,setup,testkit,ui-egui) + 3 apps (desktop, CLI, web), unchanged at v0.5.0. - Evidence table:
evidence.mdnext to this file.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

