An artifact is what your agent makes beyond its answer: a page, a PDF, a sheet, an email, a video. Each is a git repository in Cloudflare Artifacts, started from its kind’s template, built in a sandbox, kept in versions, opened at its link.
Why a sandbox
Section titled “Why a sandbox”An artifact is code that renders: React to HTML, a PDF, a spreadsheet, a video with its voice. That takes tools no MCP client holds (claude.ai runs nothing): a browser, LibreOffice, ffmpeg, a voice. aeria’s sandbox holds them all, pinned, so an artifact builds the same way every time, offline.
An artifact is a session of its own: one sandbox, its own events.
The kinds
Section titled “The kinds”kind what opens shown as
page dist/index.html a frame
pdf dist/document.pdf a PDF
email dist/email.html a frame, no script
excel dist/book.xlsx a table (with dist/book.json)
video dist/video.mp4 a player (with dist/poster.png)Each template’s CLAUDE.md says how to change it; your agent reads it
like any file.
Its life
Section titled “Its life”pulled artifact_pull {artifact, kind}: a new one from its kind's
template; the same name again: the one there
changed artifact_file_read reads a file (no sandbox);
artifact_file_write and artifact_command_run run in its
sandbox, each change pushed
saved artifact_save {artifact, message}: built, checked, kept as
its next version
shared artifact_access_set {artifact, access}
archived artifact_archive: hidden, its link refused, its sandbox
purged; its repository, versions and record kept
unarchived artifact_unarchive: found again, its link answers againA save
Section titled “A save”artifact_save builds the artifact in its sandbox (10 minutes at most),
checks each output, and keeps it as the next version.
- One save at a time: another meanwhile is refused
saving. - A failed build is refused
build_failedwith its last 30 lines; nothing is kept. - An output missing or empty is refused
no_output; one past 100 MB,too_large. - Saving the same commit as the latest version answers that version.
Its link
Section titled “Its link”https://<artifact>-<workspace>.aeria.run/ its latest version
https://<artifact>-<workspace>.aeria.run/version/<n> one versionIt opens its first output, or the one ?path= names. It is served on
aeria.run, never on aeria.dev: what an agent wrote never runs on
aeria’s own domain.
| Access | Who opens it |
|---|---|
self |
its maker only (the default) |
workspace |
a signed-in member of its workspace |
public |
anyone, no sign-in |
A self or workspace artifact signs its visitor in for its host
first. Another member opening a self one is refused not_allowed; an
archived one answers no_artifact.
Its name
Section titled “Its name”Lower-case letters, digits and dashes, 63 at most, unique in its workspace.
Its tools
Section titled “Its tools”artifact_pull, artifact_file_read, artifact_file_write,
artifact_command_run, artifact_save, artifact_search,
artifact_access_set, artifact_tags_set, artifact_archive,
artifact_unarchive. Each with its level: Tools.