Archify generates architecture diagrams from Claude Code and compares two versions of the same diagram to show you what changed. No other tool in the space does that second part.
And that’s the part that matters. Generating a pretty diagram from a description is something several tools already do, and in yoDEV we covered diagram-design and GitDiagram recently. What didn’t exist was an architecture diff you could leave attached to a pull request.
What is Archify?
Archify is a rendering and validation system written in Node.js, MIT-licensed. It works as an agent skill: your agent writes typed JSON (the IR, or intermediate representation) and Archify compiles it deterministically into an interactive, self-contained HTML file.
That JSON is a flat file with these top-level keys: schema_version, diagram_type, meta, layout, components, boundaries, connections, and cards. It’s worth keeping in mind, because the two versions you’re going to compare later on are nothing more than two of these files.
The repository was at 63.1K stars as of September 15, 2026, and climbing fast, so that number gets old in days.
What diagram types does it generate?
Five, and each one has a name you’ll use as an argument on the command line:
architecture— components, services, storage, and boundariesworkflow— CI/CD, approvals, tool calls, runbookssequence— API calls, cache fallback, async tracesdataflow— pipelines, lineage, consumption limitslifecycle— states, retries, waits, and terminal outcomes
It exports to PNG, SVG, WebM, and a shareable card at 1200×630.
How do you install Archify in Claude Code?
One line. The same one works for opencode:
npx skills add tt-a1i/archify -g
Cursor and Codex CLI do not use that same command. If you work there, these are the ones:
npx -y skills add tt-a1i/archify --skill archify --agent cursor --global --copy --yes
npx skills use tt-a1i/archify@archify --agent codex
To verify it installed correctly, and to generate a set of examples:
archify doctor
archify demo [output-directory]
Why is it useful for a diagram to validate itself?
Because the broken diagram never exists. Before writing the artifact, Archify runs schema checks, layout checks, routing checks, and label separation checks. If something fails you don’t receive an image with crossed-over arrows: you receive JSON with rule codes and repair instructions, which the agent can read and fix without your intervention.
There are two quality profiles, standard and showcase. A pass in showcase must report all 9 artifact checks with 0 composition errors and 0 warnings. A basic receipt brings only 4 checks and doesn’t reach the showcase acceptance criterion.
archify validate <type> <input.json> --json --quality showcase
archify deliver <type> <input.json> <output.html> --json --quality showcase
How do you compare two versions of an architecture diagram?
With the compare command, passing it both JSON files:
archify compare architecture <base.json> <head.json> [output.html] \
[--receipt path] [--json] [--quality standard|showcase] [--repo-root path]
Invoked directly from the skill’s directory, as shown in the project’s README:
node archify/bin/archify.mjs compare architecture base.json head.json architecture-delta.html --json
base.json and head.json are normal IR files, the same ones consumed by validate and deliver. The flow is straightforward: you generate the IR on main, generate it again on your branch, and compare the two.
Archify writes the HTML and its receipt as a pair: if the write fails, it reverts the previous files instead of leaving you halfway through.
The limitation that isn’t documented
compare accepts architecture and nothing else. If you pass it workflow or sequence, it exits with the usage block and does nothing.
This doesn’t appear in the README, the SKILL.md, the guide, or the project’s homepage: it’s in the binary. We verified it by reading the code at the time of publishing this note, in September 2026, so it’s possible it may change later. For now, if your case is comparing a CI flow or a sequence of calls, this part of the tool won’t help you.
What does the comparison receipt tell you?
The repository comes with a worked example: a checkout platform that incorporates an antifraud module. The receipt summary looks like this:
"summary": {
"components": { "added": 1, "changed": 1, "evidenceChanged": 0, "removed": 1, "moved": 1 },
"connections": { "added": 1, "changed": 2, "removed": 1, "rerouted": 1 },
"boundaries": { "added": 0, "changed": 2, "removed": 0, "geometryChanged": 0 }
}
Each element carries a state — added, removed, changed, evidence-changed, moved, rerouted, geometry-changed — along with its classifications (topology, semantic, scope, evidence, geometry) and the exact fields that changed, with /sublabel-level detail. In the rendered view they appear marked as +, −, ~, ↔, and E.
The detail that makes this actually reviewable: the receipt saves rawSha256 and semanticSha256 for each version. Two diagrams can differ byte for byte and be identical in meaning. The second hash is what lets you distinguish a real architecture change from a simple reformat, and it’s the field that makes this automatable in CI.
Can you reuse your Mermaid diagrams?
Yes, but not the way you’d expect. The project declares that automatic Mermaid parsing is out of scope, and at the same time the SKILL.md instructs the agent to read Mermaid looking for topology and meaning, then write Archify JSON from scratch. Your Mermaid isn’t re-rendered: it’s reinterpreted.
The mapping is this: flowchart and graph go to workflow, or to architecture if what you want is a component map; sequenceDiagram goes to sequence; stateDiagram goes to lifecycle.
When shouldn’t you use Archify?
When what you’re looking for is a drawing editor. The project is explicit: automatic Mermaid parsing, general-purpose auto-layout, shared hosting, and WYSIWYG editing are deliberately out of scope. If you want to paste Mermaid and get the same diagram with better visual styling, this isn’t the tool.
One point worth mentioning because a team with security criteria will flag it: Archify can make a GET to the stable manifest to show an optional update reminder. It doesn’t download or install anything. It’s declared in the README and you disable it like this:
ARCHIFY_UPDATE_CHECK_DISABLED=1
What do you take away from all this?
Architecture drift is invisible in a code diff. Components move, connections get rerouted, and the diagram on the wiki still shows the system from eight months ago. Archify turns that change into an artifact someone can review, with the caveat that today it only works on one of the five types.
Install it, point it at a real repository, and generate the IR twice: once on main and once on your branch. The first time you see the Before/Delta/After of a change you thought was minor, you’ll understand what it’s for.