Cowork and Artifacts
A Cowork thread is a conversation surface where an agent works alongside you and hands back renderable artifacts, without provisioning a repository, branch, or diff.
A Cowork thread is a place to talk to an agent and get back things it can show you, rather than a checkout it commits to. You start from a question or an idea, the agent does the work, and anything it produces appears next to the conversation as an artifact. A Cowork thread is not itself a repository workspace and does not require choosing a repo up front. When workspace delegation is enabled, it can create managed coding workspaces and send agents into them. Reach for a workspace instead when the output should land as code someone will review and merge.
A Cowork thread starts the agent at its most permissive mode by default (Bypass for Claude, full-access for Codex), so it acts without per-command approval. There's no diff to check before it runs — only the transcript and artifacts after.
Artifacts
Artifacts let an agent present renderable content inline, not just code or text in the transcript. When an agent produces one in a Cowork thread, Proliferate renders it natively in the artifact panel, so you see what the agent built in its real form.
Four kinds of artifact render:
- Markdown for formatted prose with links, lists, and inline code.
- HTML documents, rendered in their own nested frame.
- SVG vector graphics, sanitized before they render.
- React components, compiled at runtime and run in a sandboxed frame with a curated set of libraries.
Each artifact is a single file tracked by a manifest the agent's artifact tools manage. PDFs, images, JSON, and other binaries aren't rendered as artifacts.
The artifact panel
The panel lists every artifact the agent has built in the thread. Artifacts belong to the thread, not to a single turn, so an earlier one stays reopenable after later ones arrive. That makes "show me three approaches" work: ask for each one in turn, then flip between the artifacts to decide.
The artifact viewer
Selecting an artifact opens the viewer. React and HTML artifacts run inside a sandboxed iframe served by the runtime; if the preview runtime isn't reachable the list still works, it just can't render. React artifacts run against React 19 with a fixed import list (Lucide, Recharts, D3, date-fns, and lodash). An import outside that list fails with a clear error in the viewer instead of silently reaching the internet.
Artifact code can't make its own network requests — fetch, XHR, and WebSocket are blocked outright. The runtime loads its own fixed set of libraries and styles from a pinned allowlist to render, but an artifact can't add to that list or reach anywhere else. The only thing it can do outside its own frame is ask to open a link, which you see and control. The sandbox is an isolation boundary, not a full security boundary. Read the source before trusting an artifact that behaves unexpectedly.
When to use which
| Cowork thread | Workspace | |
|---|---|---|
| You start from | a question, an idea, a plan | a repository |
| The output is | a conversation and artifacts | a branch, diff, and pull request |
| Best for | demos, diagrams, drafts, one-off answers | code changes you'll review and merge |
Starting one
Start a Cowork thread from the home composer; threads live in the sidebar alongside your workspaces, and the toggle-cowork-threads shortcut opens the thread list.