artifact.cafe

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 -g

Drop -g for a repo-local install instead of a global one. Without npm:

curl -fsSL https://artifact.cafe/install.sh | bash

Both 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

FileWhat it does
SKILL.mdTells 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.shZero-Node publish helper (bash + curl + jq), for environments without Node
scripts/comments.shZero-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; -g makes the skill available everywhere, immediately.
  • Let the skill trigger itself. SKILL.md describes 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.md once 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.