Artifacts

Web pages and canvases agents make for you to look at, with their versions, an isolated viewer and sharing by link.

An artifact is an HTML page an agent makes for you to look at, such as a report, a prototype or a few design options. It is kept in Kettu, not in your project’s files.

Kinds

KindWhat it is
Web pageOne page.
CanvasSeveral pages in one file, laid out side by side. Zoom in and out, step with Previous page and Next page, or Zoom to fit.

An artifact holds up to 5 MiB of HTML. It loads its scripts and fonts from a fixed list of public CDNs and nothing else.

How agents make them

Kettu runs a built-in MCP server, kettu, which gives agents tools to create, read, update, list and delete artifacts, list their versions and restore one. An agent sees only the artifacts of its session’s project.

Claude Code and Codex can always use it. Other agents can when they accept MCP servers over HTTP; for one that does not, Settings › MCP servers says it “takes no MCP servers over HTTP”. The same page has a switch for each agent, such as Kettu’s tools in Claude Code, which takes effect from that agent’s next start.

To ask for one, click Web page or Canvas under Ask an agent for one on the Artifacts page. New session opens with a line asking for that kind; add what you want and send it. You can also ask in any session.

In the conversation, the agent’s change shows as a row such as Created or Updated with the version. Click it to open the artifact beside the conversation, where it reloads as the agent keeps changing it.

Versions

Every change is a new version: v1, v2 and on. Version history lists them with the session that wrote each one, or You. Open an earlier version to look at it, and Restore this version copies it as the newest one, so no version is lost.

The viewer

Each artifact runs on an origin of its own, apart from the app and from other artifacts. It cannot use the camera, microphone or location, and it cannot submit forms or open other sites. When a page tries to, the viewer says This page tried to open with the address, and Open in browser opens it in your default browser. If the page stops, Reload shows it again.

The Artifacts page

Click Artifacts in the sidebar. It lists every artifact, most recently opened first, with Filter by kind and project, a Flat or By project and session layout, and sorting. ⌘F on macOS, Ctrl+F on Windows and Linux, filters by title. New session also shows Recent artifacts.

Each artifact’s menu has Open, Open in browser, Export…, Rename…, Version history, Open the session and Delete…. Import an HTML file… adds a page of your own.

A deleted artifact moves to Recently deleted and stays there for 30 days, where you can Restore it or Delete permanently…. After 30 days it is removed with all its versions.

Share in the viewer publishes the artifact to a link anyone can open, through your own Cloudflare account:

Connect Cloudflare

In Settings › Sharing, paste an API token with Workers Scripts Edit and click Connect. The account needs a workers.dev subdomain. The token is kept encrypted by the system, only on this computer.

Publish

Click Share, then Publish, and Copy the link. Anyone with the link can see the page, which loads its scripts and fonts from public CDNs.

After a change, Update to version publishes the newest version to the same link. Unpublish… stops the link for everyone; the artifact stays in Kettu. Settings › Sharing lists every published artifact.