# Artifacts

Persist, version, and iterate on LLM-generated UI (widgets, HTML, markdown).

- Repository: https://github.com/kirodotdev/KiroCrew (4711 stars)
- Category: Design
- License: Apache-2.0
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add kirodotdev/KiroCrew --skill artifacts -g -a claude-code -y`
Codex: `npx skills add kirodotdev/KiroCrew --skill artifacts -g -a codex -y`
Cursor: `npx skills add kirodotdev/KiroCrew --skill artifacts -g -a cursor -y`
Gemini CLI: `npx skills add kirodotdev/KiroCrew --skill artifacts -g -a gemini-cli -y`

## Description

Persist, version, and iterate on LLM-generated UI (widgets, HTML, markdown). Load for Dynamic Dashboards on long workflows and conductor runs, or when saving, finding or updating a previously-rendered widget.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Artifacts (`@kirocrew-core/artifact_*`)

A widget rendered inline in chat (`<mcwidget>`) is auto-registered as an
**unpinned** artifact when its response segment finalizes, a record, not a
library entry: unpinned auto-registered widgets are pruned oldest-first, and
widgets from an incognito or temporary session are never registered at all.

Saving and pinning are two different things. `artifact_save` creates a **named,
durable** artifact: it is never swept, because the sweep only ever considers
auto-registered records. **Pinning** is the separate star (`pinned`, false by
default) the user flips in chat or the library; it is what takes an
auto-registered widget out of the sweep, and it is not something a save does for
you. Either way the artifact has a stable identity, a version history, and a URL
the user can open from `/artifacts/<slug>` in the dashboard.

Artifacts exist so the user can build a library of durable, named work, useful
UIs (CR queue, pipeline health, ticket triage, dashboards) and substantial
documents (plans, design docs, analyses, reports) alike, to return to, iterate
on across sessions without losing prior versions, or share with peers for
feedback. The library is curated: it holds work worth keeping, not a mirror of
every file or a copy of the chat.

## Dynamic Dashboards for long work

The host's opt-in automatic session cards are separate from saved artifacts:
session events trigger bounded updates from that session's recent messages,
without a conductor publishing on its behalf. The model can reuse a card's HTML
layout and update only text data. Runtime state, Needs you, and exact-session
answers/approvals belong to the host. Polling an artifact is not a card-generation
trigger. Use the saved-view flow below for a durable, task-specific publication,
not to imitate those controls or keep every session's status alive.

The rest: https://github.com/kirodotdev/KiroCrew/blob/HEAD/src/kiro_crew/builtin_skills/artifacts/SKILL.md
