For your agent
Install the artifact-cafe skill once and it's available in every session, no CLAUDE.md paste needed.
Install the skill
Skip the copy-paste block. Install the skill and your agent picks up the publish → review → v2 loop on its own, in every project and every session.
npx skills add artifact-cafe/skill --skill artifact-cafe -gDrop -g for a repo-local install instead of a global one. Without npm:
curl -fsSL https://artifact.cafe/install.sh | bashBoth write the skill to ~/.agents/skills/artifact-cafe/ and register it
with your agent (a symlink in ~/.claude/skills/, and any other skills
directory it finds), so Claude Code, Codex, Cursor, and other skill-aware
agents discover it without further setup.
What's in the skill
| File | What it does |
|---|---|
SKILL.md | Tells the agent when to reach for artifact.cafe, how to publish, how to pull reviewer comments back, and the content policy to enforce before publishing |
references/ | Playbooks the agent reads at their trigger instead of every session: organize.md (folders and the tidy-up flow), live-editing.md (the listen loop), access.md (visibility and sharing) |
scripts/publish.sh | Zero-Node publish helper (bash + curl + jq), for environments without Node |
scripts/comments.sh | Zero-Node comment-pull helper |
The skill's preferred path wraps the artifact-cafe CLI
(npx artifact-cafe@latest publish .). The bundled scripts are the fallback for
environments where npx isn't available.
Best practice
- Install with
-g. A per-project install only helps the one project;-gmakes the skill available everywhere, immediately. - Let the skill trigger itself.
SKILL.mddescribes when to reach for artifact.cafe ("publish this for review," "share this for feedback," "publish v2"), so you don't need to remember a command. - Ask it to file things. The skill picks a folder before the first publish, and sorts an existing library when you ask ("organize my artifacts"). It proposes a plan before it moves anything. See Organizing artifacts.
- Publishing does not start a live session. After sharing the review URL, the
agent asks whether you want to enter live editing mode. Opt in when you are
actively reviewing and want the agent to run
listen; otherwise, guests can comment asynchronously without keeping a local session active. See the Live agent loop. - Re-run the install command to update. It overwrites the existing install with the current skill version.
- Read the installed
SKILL.mdonce if you want to see exactly what the agent was told: publish flags, claim-token handling, limits, and the refusal policy for unsafe content.
No skill support yet?
If your agent can't install skills, paste this into CLAUDE.md, AGENTS.md,
or its project instructions instead:
When you produce a reviewable HTML artifact, publish it with:
npx artifact-cafe@latest publish . --title "<descriptive title>" --json --no-open
Use the returned url as the review link. Keep working from the same folder so
.artifactcafe/config.json links future publishes to the same artifact.
Before revising, pull reviewer feedback with:
npx artifact-cafe@latest comments . --json --status open --version current
After publishing, ask whether the user wants to enter live editing mode. Do not
start it automatically. After the user opts in, wait for new feedback with:
npx artifact-cafe@latest listen . --json --timeout 540
After changes, publish again from the same folder. Each publish creates a new
immutable version; do not edit old versions in place.
If `listen` times out, ask whether the user wants to continue before starting
another listening window.A signed-in agent can also open its own review threads with
artifact-cafe comment — leaving notes on its work the same way a human
reviewer would (optionally labelled --as "Claude Code") — not just reply
to existing ones. See the CLI reference.
Replies are signed with the agent that posted them: reviewers see
Yulong's Claude with the Claude mark, not a nameless "Agent". The CLI
detects the agent from its environment; --as "<name>" overrides it.
Agents can also call the same public API directly. See the HTTP API.