Craft Anything: How to Check a Website Rebuild

Back
Kevin Riedl

9 min read · 3 Nov 2026
Last reviewed

Next
Made on your device, with no Instagram connection. We copy the post link for Instagram’s Link sticker.

Our broken test page matched the working reference screenshot exactly. Craft Anything’s image metrics rounded to 100%, while the button did nothing.

Craft Anything website rebuild verification requires matching image evidence with the behavior you need. Review each viewport’s results and any failed claims or unknowns, then execute the required interaction. An untested outcome remains unproven even when the screenshots match. Record the implementation revision with those results.

Research status: 3 November 2026. We ran the official Linux x86_64 CLI from Craft Anything v0.3.0, verified the archive checksum and inspected its release source. Playwright captured our screenshots and checked the button separately. We did not run the AI builder or the complete rebuild workflow.

What does Craft Anything do?

Craft Anything is an open-source Rust toolkit that gives coding agents tools to inspect software and compare a new implementation. Its release README describes a Study, Build and Check workflow for websites, apps and games. The project labels itself early alpha.

ArtCraft’s official application catalog lists Craft Anything alongside its creative applications, including PhotoCraft and FilmCraft.

InterfaceRole in the workflowWhat to verify
Desktop applicationReview a target and follow the rebuild.The captured target and the final check reports.
CLIRun named tools or a rebuild from a terminal.Version, tool output and each check’s actual result.
MCP serverExpose inspection and reconstruction tools to an agent.The agent, inspection mode and permission scope.

The tool count needs a date. The 31 October launch README advertised 284 tools. The v0.3.0 README says 314. Our released Linux binary returned 315 unique registered tool IDs through commands. Registration does not mean every tool is usable with your mode, target and installed dependencies.

Does Craft Anything bypass a Claude refusal?

Craft Anything does not document a way to remove Claude’s refusals. Its Claude Code integration guide says it launches your unmodified local claude program using your own sign-in. A different tool interface does not establish that a provider will accept a particular recreation request.

The claim that an Anthropic block caused this project is not established by the primary sources we found. Issue 21 records a Claude detection problem and a refusal report. A ticket-relay comment separates failure to find Claude on PATH from a refusal to recreate Titanfall 2. That is a specific report, not evidence of a provider-wide block.

Reverse Engineer Anything, or REA, is a separate project. Compare their supported targets and the evidence each returns when choosing between them.

What did our Craft Anything comparison test show?

Craft Anything’s screenshot comparator matched our deliberately broken page to the working reference at all three widths: 1440, 768 and 390 CSS pixels. The separate click check failed for the broken version at every width. Each viewport was 900 pixels high.

Our reference page changes a status message when you click Reserve a demo seat. The broken version omits that handler. A control keeps the handler but changes the colors. The button changes local page state; there is no reservation backend.

Width, CSS pxCandidate versus referenceLayout metricDetail metricSeparate click check
1440Broken handler, same appearance100%100.00%Failed
768Broken handler, same appearance100%100.00%Failed
390Broken handler, same appearance100%100.00%Failed
1440Changed colors, working handler0%96.87%Passed
768Changed colors, working handler0%97.03%Passed
390Changed colors, working handler0%96.43%Passed

Measured scope: six comparator calls, all exit 0, plus nine independent interaction probes across the three modes and widths. The reference and broken-mode PNG hashes matched at each width; the comparator reported zero differing pixels. Detail values above are rounded to two decimals. The raw JSON retains the floating-point values.

web-pixels-compare never clicked the button, so it had no evidence about the handler. The complete Craft Anything workflow includes additional checks of observed states; this experiment does not show that it would accept the broken page.

Download the reproducible Craft Anything comparison fixture for our HTML and screenshot-generation runner, recorded results, tool inventory and environment details. Install the CLI and browser separately. The fixture uses our own content.

How can you reproduce the screenshot check?

To reproduce this Craft Anything check, run the released CLI against two PNG files using web-pixels-compare. Keep the image paths absolute and record the binary version. The included runner regenerates screenshots from our local fixture and records the separate click assertions.

craft-anything-cli --version
craft-anything-cli commands
craft-anything-cli --clean-room web-pixels-compare @compare.json

Use this shape for compare.json, replacing both paths with your own files:

{
  "before": { "path": "/absolute/reference.png" },
  "after": { "path": "/absolute/candidate.png" },
  "common_area": true,
  "tolerance": 24
}

The released screenshot-tool implementation computes these results from the PNGs. Our run used no model call or noise mask. The download records binary hashes and runtime versions; browser or font changes can alter regenerated screenshots.

What do Craft Anything’s similarity scores measure?

Craft Anything’s layout metric measures matching mean colors in 16-pixel tiles; its detail metric measures brightness structure using SSIM. Our recolored control’s zero layout score measures color disagreement, not movement of the page’s elements. Review both metrics alongside the images and their dimensions.

Field or settingWhat it describesReview consequence
layout_similarityShare of tiles with sufficiently similar mean color.A color change can lower it without moving the layout.
perceptual_similaritySSIM over image brightness.Read it alongside the color-sensitive metric and the actual images.
common_areaCompares the shared top-left area when dimensions differ.Inspect both original dimensions and any content outside the shared area.
tolerance: 24Threshold for counting per-channel pixel changes.It is not a 24% allowance for incorrect behavior.
coverage: complete, 1/1The one requested screenshot comparison was examined.Coverage extends only to the operation on these input images.

The website rebuild checker combines the two image metrics as (layout_similarity + perceptual_similarity) × 50, then averages across captured widths and pages. It also evaluates other observations and claims. Those checks are not all weights inside the screenshot percentage.

If you apply that formula to our 1440-pixel color control, the image score would be (0 + 0.9687234879) × 50 = 48.44%. That is a calculation from the primitive output, not an observed full-rebuild score. The button still worked. Decide separately whether the color change is acceptable and whether the required behavior is present.

Does Ready mean the rebuild passed every check?

In v0.3.0, Craft Anything can show Ready after reaching its refinement limit even when a check falls short. That follows from the source; our experiment did not execute the rebuild loop. Inspect every final-round check’s claims and unknowns before accepting the result.

The check-result definition and rebuild completion loop expose the distinction:

SignalMeaning in the inspected releaseWhat you still need
passedThe build succeeded, or the site was served and compared.Similarity, claims and unknowns for that check.
good(threshold)Passed, no unknowns, all claims passed and sufficient similarity when present.Confirmation that the measured claims cover your required outcomes.
ReadyThe run completed its finish path, which can follow the refinement cap and the last check’s passed field.Every check from the final round, including failed claims and unresolved unknowns.
Successful process exitThe command finished successfully at the process level.An explicit acceptance decision about the recreated software.

Use successful CLI completion to collect artifacts, then evaluate the acceptance conditions. If a form must display an error or a menu must open, retain evidence of that state transition. Fail the acceptance step when the required state is absent.

How do you verify a Craft Anything website rebuild?

Inspect Craft Anything’s captured reference and every check in the final round before accepting a website rebuild. Then run the required interactions against the exact implementation you plan to keep. Record the expected outcomes before testing, so the acceptance decision does not depend on how convincing the screenshots look.

ArtifactQuestion to answerEvidence to retain
craft.json and run notesWhich target, agent, mode and version produced this result?Configuration, reference scope and tool version.
capture/Did the reference include the routes and states you care about?Viewport sizes, images, visible text and observed interactions.
app/Which implementation did you evaluate?The exact revision and the build or preview command.
checks/What passed, failed or remained unknown in the final round?All relevant results, scores, claims and unknowns.
Your interaction recordDid the required action produce the expected result?Action, expected state, actual state and an independent pass or fail.

Start with one route and an observable outcome, such as the exact status text after a click. If a form must save a record, check persistence as well as its confirmation message. Leave missing evidence unresolved.

When an observation becomes an approved implementation rule, put it into your repository’s context. Our Claude Code design-system guide covers that handoff. If the workflow crosses native applications, use the separate Cua browser-to-desktop QA protocol; this browser fixture says nothing about those boundaries.

When would we use Craft Anything?

We would evaluate Craft Anything for an authorized reconstruction task where the team can inspect the generated project against an agreed reference and explicit interaction checks. Keep release approval in a separate step with those criteria, especially while the project remains early alpha.

Begin with a site you own. If the recreation must become a maintained production system, use the broader prototype-to-production decision to assess the work beyond visual acceptance.

Craft Anything verification FAQ

Is Craft Anything a fork or rename of REA?
The inspected sources identify Craft Anything and morluto/rea as separate projects. We found no primary evidence establishing a REA fork or rename. Compare them against a specific inspection task, using their documented inputs and outputs. Overlapping use cases do not establish shared code or equivalent coverage.
Does every registered tool work in Clean room mode?
No. The registered inventory includes tools with different target, dependency and inspection requirements. Clean room is the default observation mode; Deep mode permits additional inspection of internals. Our 315-tool count describes the released Linux v0.3.0 inventory, not 315 tools available in every session. Check the selected mode and each tool’s prerequisites.
Can Craft Anything run entirely offline?
The PNG comparison in this experiment ran locally without a model call. A complete workflow can involve a live website, a cloud-backed coding agent, an API provider or optional external asset generation. Inspect the chosen workflow’s data path before describing it as offline. A native desktop interface does not establish where every model operation runs.
Did this review test an AI-generated website rebuild?
No. We authored a local fixture, used Playwright to capture screenshots, ran the released Craft Anything screenshot comparator and checked the button separately. That isolates what the image metrics establish. It does not measure a coding agent’s reconstruction quality, the full check loop, automatic refinement, native apps, games or backend correctness.
Does complete coverage mean the whole website was tested?
In our raw comparison results, complete coverage was 1 of 1: one requested image comparison. The reference and broken page were visually identical, so that operation completed successfully. Other browser states and backend persistence remain outside that operation. Read coverage together with the named operation and its inputs.
Is the documented 90% similarity threshold enough to ship?
The documented website threshold guides refinement of measured likeness. It does not mean 90% of the product’s features work. Choose acceptance conditions for the actual task, inspect claims and unknowns, and run required interactions. If a critical action fails, a high screenshot percentage does not supply the missing behavior or justify release approval.

Production AI help

Evaluating AI for an internal workflow? Start with a bounded assessment of your tasks, data access, quality, latency and operating cost. Wavect helps your team decide whether to adopt, revise or stop a pilot.

Explore the service path:

Inbox, without the noise

Follow the work that matters to you

Get a short email when we publish something new. Follow the whole blog or only the problems you care about.

What would you like to receive?
Choose your topics

Free, double opt-in, no tracking pixels.

Back
Kevin Riedl

9 min read · 3 Nov 2026
Last reviewed

Next

Get the next Delivery and QA field note

One concise email when we publish. No tracking pixels, and no inbox filler.

Free, double opt-in, no tracking pixels.