Why use it: Archify is not a library you import. It is a skill package (a directory with SKILL.md at the root) plus a Node CLI. It does nothing until it sits in the right place for your agent to scan skills, and until you prove the runtime is eligible.
Expected result: directory archify/ located in the harness's skill path, one doctor green, and a demo HTML file that opens in a browser.
Prerequisites
- Node.js >= 18 — taken from
archify/package.json→engines.node. The project's CI covers 18, 20, 22, 24. - No need for
npm install. Verified: wipenode_modulesclean and runvalidatestill green.devDependencies(ajv,parse5,saxes,simple-icons) only used for Archify's own test/build.
Verified warning:
archify/package.jsonhas"private": trueand the package not on npm.npx archify …will not run. Every command in this set calls directlynode <skill>/bin/archify.mjs.
Method A — install via CLI skills (the README-recommended path)
npx skills add tt-a1i/archify -g
Non-interactive, specify the harness explicitly:
npx -y skills add tt-a1i/archify --skill archify --agent cursor --global --copy --yes
Try without installing:
npx skills use tt-a1i/archify@archify --agent codex
--agent receive cursor, codex, claude-code, opencode.
Not verified in this exploration round:
skillsis a third-party CLI and needs network. If it fails or you don't want the dependency, use Method B.
Method B — manual install (verified by directory structure)
The installation unit is the directory archify/ inside the repo — where SKILL.md, bin/, renderers/, schemas/, examples/, references/.
git clone https://github.com/tt-a1i/archify.git /tmp/archify-src
cp -R /tmp/archify-src/archify ~/.claude/skills/archify
Install paths by harness, taken from the README's "Installation options" table:
| Harness | Destination |
|---|---|
| Claude Code | ~/.claude/skills/archify or .claude/skills/archify |
| Codex CLI | ~/.agents/skills/archify or .agents/skills/archify |
| opencode | ~/.config/opencode/skills/archify, .opencode/skills/archify, or .agents/skills/archify |
| Raven | unzip archify.zip into ~/.raven/workspace/skills → ~/.raven/workspace/skills/archify |
| Claude.ai | upload archify.zip to Settings → Capabilities → Skills |
Quick check that it is placed at the right directory level:
test -f ~/.claude/skills/archify/SKILL.md && echo "layout ok" || echo "sai tầng — bạn đang copy nhầm repo root"
Common mistake: copying the whole repo root (archify-src/) instead of the subdirectory archify/. In that case SKILL.md sits one level too deep and the harness does not see the skill.
Prove it runs
cd ~/.claude/skills/archify
node bin/archify.mjs doctor
Real result of a run (macOS, Node v22.17.0):
Archify doctor
[ok] Node.js v22.17.0 (requires >=18)
[ok] Core template
[ok] Example renderer
[ok] Live preview runtime
[ok] Visual-check runtime
[ok] Output path safety runtime
[ok] Scenario recipe guide
[ok] Progressive authoring references
[ok] Architecture compare runtime and proof fixtures
[ok] Standalone schema validators
[ok] architecture renderer, schema, and example
[ok] workflow renderer, schema, and example
[ok] sequence renderer, schema, and example
[ok] dataflow renderer, schema, and example
[ok] lifecycle renderer, schema, and example
Archify is ready.
Exit code: 0 when printing Archify is ready.; 1 when printing Archify is not ready: … (Node too old, missing file, or runtime check broken). Source: commandDoctor() in bin/archify.mjs, line ~1348.
Generate a real artifact to open with your eyes:
node bin/archify.mjs demo /tmp/archify-demo
open /tmp/archify-demo/archify-demo.html # Linux: xdg-open
Ran: generate /tmp/archify-demo/archify-demo.html (~698 KB, a self-contained HTML file), rc 0, and printed a suggested next step.
Disable update checks over the network
Archify may GET a fixed manifest just to show a notice; it never downloads or installs a new version itself. Completely disable the network part and the notice-state writing part:
export ARCHIFY_UPDATE_CHECK_DISABLED=1
Verification: scripts/check-update.mjs:1637 exits early as soon as this variable equals 1.
Two other quick probe commands
node bin/archify.mjs --help # in usage, rc 0
node bin/archify.mjs bogus # in "Unknown command" + usage, rc 2
2 is Archify's usage-error exit code, not 1. Keep this in mind before writing a wrapper script.