System purpose
Craft Anything is a Rust tool for analyzing and rebuilding software. Users provide a target and request; the analysis engine collects evidence, a coding agent creates a new project, and check results guide revisions. It is currently in early alpha.
| Item | Contents |
|---|---|
| Target | Website URL, application or game path; an original target is optional |
| Interfaces | egui desktop workbench, CLI, MCP server |
| Analysis outputs | Evidence records, coverage, limitations, and unanswered questions |
| Build outputs | New project, comparison reports, and follow-up request records |
| Scope | Software you own or may analyze, interface reconstruction, and experimental prototypes |
Study
- Target and request
- Clean room or Deep
- Evidence and unknowns
Build
- Local coding agent
- Specified stack
- New project files
Check → Ready
- Build and visual comparison
- Difference feedback and revisions
- Preview and manual acceptance
Ready may still include failed comparison items. Inspect every result and unknown from the final round before delivery.
Standalone analysis can run without AI. Building new software requires a coding agent. The browser WebAssembly version primarily provides file inspection; it does not establish that the full desktop rebuild workflow is available there.
Installation and diagnostics
- Not completed:
The source declares Rust 1.97 or later.
- Not completed:
Git is installed, with build tools for the selected stack.
- Not completed:
An executable, signed-in coding agent is ready for builds.
- Not completed:
The browser required for website capture is ready; read the relevant
doctordiagnostics first.
Install from source with the project's documented commands. This report inspected documentation and code only; it did not compile or run Craft Anything or perform an AI rebuild.
git clone https://github.com/storytold/craft-anything
cd craft-anything
cargo install --path apps/craft-anything-cli
craft-anything-cli doctorStart the desktop interface:
cargo run --release -p craft-anythingThe Debian/Ubuntu desktop version also needs the system packages listed by the project:
sudo apt-get install libxkbcommon-dev libwayland-dev libx11-dev libxrandr-dev libxi-dev libgl1-mesa-dev libgtk-3-devFor prebuilt packages, inspect the actual assets and checksum information in GitHub Releases. A source version field does not prove that an installer for that version has been published.
Analysis modes
| Mode | Available data and behavior | Boundary to verify |
|---|---|---|
| Clean room | Default mode; uses visitor-visible screens, text, and measurements, plus screenshots and descriptions supplied by the user | An engine tool allowlist restricts access to the original target's internals; external agent read rules still vary by adapter |
| Deep | Enables internal file and code analysis, reads website JavaScript, and uses Ghidra when available | Enable only for targets you may analyze; check file, asset, and service terms separately |
Use --clean-room or --deep to select the mode for one CLI invocation; they cannot be combined. These command-line overrides do not change the saved mode setting.
Clean room's data access policy does not provide operating-system isolation. Its allowlist includes some tools that can change the environment, such as phone application installation. Check tool permissions and agent behavior before execution.
Deep mode can use the built-in analysis engines without Ghidra. Ghidra is an additional analysis route; enabling Deep does not guarantee full recovery of every file format or function.
Core capabilities
Tool discovery
craft-anything-cli commands
List currently available tools
Inspect commands by toolset. Published tool totals differ; use the installed version's list to determine its actual interface.
Environment diagnostics
craft-anything-cli doctor
Check dependencies and agents
Check tool availability. Verify backend configuration and builder sign-in separately; an exit code alone does not establish readiness.
Full rebuild
craft-anything-cli rebuild
Run observation and revision
Accept a target and request, create a project, and run checks. --rounds counts refinements after the first build.
Agent integration
craft-anything-cli mcp
Provide MCP tools
Let an MCP client use the shared engine. Starting the server and writing agent configuration are separate operations.
Setup
craft-anything-cli setup
Connect coding-agent applications
Select a client explicitly for the first registration. Review the configuration changes listed by dry-run before applying them.
Evidence retrieval
core_evidence_browse
Browse evidence by page
After a tool summarizes a large result, narrow the fields or browse pages while retaining sources and coverage.
| Desktop interface | Operation |
|---|---|
| Simple | Default interface with project stages and approval cards |
| Advanced | Function, disassembly, and evidence panels |
Available tools depend on the analysis mode and dependencies.
Agent and permission settings
| Route | Known status at this revision | Operating rule |
|---|---|---|
| Claude Code | Runs the user's local claude; the project records live builder runs | Confirm sign-in and review project approvals and Auto mode settings |
| Codex | Adapter exists; the project marks it unverified on a real installation, with no session resumption | Verify with a disposable project; adapter presence does not establish complete support |
| ACP agent | Multiple adapters can be configured; the project records live ACP runs only for Maki | Check each adapter's read, write, and command approval limits |
| API backend | Provides analysis and its own build loop; the project records no live API rebuild | Check the provider, transmitted data, usage, and error logs |
| Generated assets | Requires user opt-in and a fal.ai key, with a project budget | Keep disabled unless asset generation is planned; coding-model costs are separate |
The Claude Code builder handles approvals through MCP tools and first checks sign-in and whether the CLI starts. Project sessions and conversations may contain target content. Inspect them before sharing the project folder.
For the first Claude Code client connection, preview the configuration before deciding whether to apply it:
craft-anything-cli setup --client claude_code --dry-runAfter reviewing the preview, apply it and check the client registration:
craft-anything-cli setup --client claude_code --yes
craft-anything-cli doctor --client claude_codeRestart the client as directed by setup. This changes integration settings; this report did not perform that operation.
This process registers a client and does not replace builder sign-in. Running setup alone mainly refreshes existing registrations; select the client explicitly on first installation.
Auto mode is enabled by default and allows most builder actions to continue automatically. Specific sensitive operations do not run automatically and may be refused outright in Auto mode. The CLI's --unattended chooses the first answer and refuses approvals; it does not grant every permission.
Operating principles
Specify the stack
Name the language, framework, or game engine in the request. New projects that support --build-with can also select it explicitly. Continuing projects keep their existing stack.
Control comparison scope
Default website widths are 1440, 768, 390 CSS px, with up to 4 additional pages studied. Dynamic sections and nested menus still need manual acceptance checks.
Retain evidence and unknowns
Read checks/ and items that were not compared. Visual scores cannot prove that data writes, payments, or sign-in work correctly.
Distinguish edits from source material
--existing edit treats existing files as the app and edits them directly; start-from treats them as starting material and builds separately in app/. Back up first and confirm the path.
The desktop defaults to at most 6 refinement rounds; the CLI's --rounds defaults to 2. Both exclude the first build. Additional rounds increase agent usage and may still stop with failing checks.
Website rebuild example
This example follows the source interface. This report did not run it. Use example.com to practice visual reconstruction, explicitly naming the new project's stack and requiring original content.
craft-anything-cli --clean-room rebuild https://example.com "Recreate the visible layout as a static HTML and CSS page. Use original text and no copied brand assets." --rounds 1Open the project at the terminal's Project: path and inspect these records:
| Path | What to inspect |
|---|---|
craft.json | Request, target, status, and history |
capture/ | Visible captures of the original target and the pages covered |
app/ | New project and its run instructions |
checks/ | Comparison reports and visual differences for each round |
investigation.cany/ | Analysis evidence and unknowns |
inbox/ | Pending questions or approvals |
Use the actual project path for follow-up requests. --continue-in points to the project root, not its app/ directory:
craft-anything-cli --clean-room rebuild https://example.com "Make the header blue and keep the phone layout readable." --continue-in "/absolute/path/to/project" --rounds 1Add --resume to continue interrupted work; the request argument is then ignored. Ordinary follow-up edits do not need --resume.
Verification results and maturity
| Check | What it can establish | Additional verification |
|---|---|---|
| Website visuals | Default multi-width comparisons and layout/SSIM detail differences; the default likeness threshold is 90% | Real backends, business rules, and uncaptured pages and interactions |
| Applications | Builds, plus visual and runtime comparisons when data is available | Undriven workflows and behavior over long runs |
| Games | Builds, mechanics data, and the game's own --self-test output | The engine does not yet independently observe gameplay or measure every gameplay value |
| Recorded project tests | Live Claude Code and individual tool runs are documented | Complete combinations of adapters, modes, and platforms |
The project's STATUS.md records a single website case reaching 96% likeness. This author-reported case does not establish a general success rate. The documentation also states that no live Clean room build has been recorded, and some tools have only synthetic or stand-in tests.
Refinement decisions check whether each result meets the requirements. After refinement rounds are exhausted, completion uses the last check record's passed value. Ready or a successful CLI exit can therefore coexist with a website score below the threshold or failed items; this is a static source finding, not a result reproduced in this report.
For acceptance, read every result from the final round and operate the output yourself:
similarity: whether it meets the current threshold.unknowns: whether any content could not be compared.claims: whether any requirements failed.
If required conditions fail, add a specific correction request or stop delivery.
Tool totals in the README and status page do not fully agree with the tool catalog. This report does not use totals as a completeness or maturity measure. Evaluate the actual commands output and each tool's status.
Limits and precautions
| Limit | Action |
|---|---|
| Agent approvals differ | Claude Code, ACP, and direct CLI adapters use different rules; the project lists read/write boundary gaps for Hermes and Maki. Check the selected adapter first |
| Local tools start processes | Generated projects may install dependencies or run builds; check permissions and the project location first |
| Local workbench connects to external AI | The selected model or coding agent may process content; confirm the data transmission scope for sensitive targets |
| API key storage has a fallback | The system keychain is preferred; failure can fall back to a plaintext ai-keys.toml file accessible only to its owner. Inspect settings before sharing or backing them up |
| Visual scores are limited | High likeness does not replace functional, accessibility, and security acceptance checks |
| Game self-tests are limited | The generated game reports its own checks; manually inspect controls and gameplay values |
| Code and asset licenses differ | Code is MIT OR Apache-2.0; check ATTRIBUTION for assets and separate ArtCraft brand terms |
Next actions
Run
doctorfirst, then use a single-page website to verify the current platform and builder.Adjust comparison scope from manual acceptance results before moving to applications or games.
Before connecting MCP, review
commandsand the tool catalog to confirm the mode and required permissions.On failure, retain the stop reason, project check records, and unresolved items before reporting to the project.
The source is pinned to 8638d6b72be3e99dcc73b06f92a8c113932c75f7. Official references:
README: interfaces and initial workflow.
Feature status: actual tests and unverified features.
Claude Code integration: sign-in and builder permission design.
References
- Verified source revision and README
- Source build requirements
- Implementation status and known limits
- Claude Code builder integration
- CLI rebuild arguments and exit handling
- Setup command arguments
- Clean room tool boundary
- Auto mode approval and refusal behavior
- Build defaults
- Website comparison implementation
- Completion and refinement decisions
- API key storage fallback
- Tool catalogue
- Asset attribution and separate licenses