Artifacts & previews
Reviewable deliverables: screenshots and documents the agent publishes, and live previews served from the sandbox.
Diffs aren't always the best evidence. A design task wants screenshots; a scaffolded app wants to be clicked. Peractor has a lane for each: artifacts (files the agent publishes for review) and previews (the running result, served live).
Artifacts
The agent renders deliverables itself — Peractor never screenshots
anything — and lists them in a manifest at
.peractor/artifacts.json in the workspace:
{"artifacts": [
{"path": "shots/dashboard.png", "title": "Dashboard — desktop",
"caption": "After the redesign"}
]}
Images (PNG, JPEG, WebP, GIF, SVG), HTML, and Markdown are supported, up to 20 artifacts of 32 MB each per phase; a malformed manifest logs a warning and never fails the run. Two ways to produce them:
- A dedicated
publishstep whose prompt says how to render ("screenshot each page with a headless browser") and where to deliver: the tracker issue, the pr, and/or your notify channels. Trackers that host attachments (Linear, Jira, GitLab, Slack) show the images inline; GitHub gets links. - Any ordinary
promptstep — agents are invited to publish a self-contained deliverable (report, chart, HTML widget) when there is one worth showing.
Artifacts appear in the transcript under the step that made them; click one and the extension opens it as a real editor tab (rendered HTML/images, syntax-colored text), the dashboard shows it inline, and the phones open a full-screen swipeable viewer. HTML artifacts render inside a sandboxed frame with no network access, so an agent-authored widget can run scripts without reaching anything.
Previews
A preview step parks
the run with the built result served at a per-run URL, straight from the
live sandbox — WebSockets and hot reload included. Reviewers click
Open preview, try the real thing, then Continue or
Request changes with a note that re-runs the phase. Previews hold
the sandbox open, with a 30-minute ceiling (a timeout counts as
continue).