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. Start from a question or an idea; whatever the agent produces appears beside the conversation as an artifact.
There is no repo to choose. With workspace delegation on, a thread can create coding workspaces and send agents into them. Use a workspace directly when the output should be code someone reviews and merges.
A Cowork thread starts the agent at its most permissive mode (Bypass for Claude, full-access for Codex), so it acts without per-command approval. There is no diff to check first, only the transcript and artifacts after.
Artifacts#
An artifact is renderable content, shown in its real form in the artifact panel rather than as code in the transcript. Four kinds 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 one file, tracked by a manifest the agent's tools manage. PDFs, images, JSON, and other binaries do not render.
The panel#
The panel lists every artifact in the thread. They belong to the thread, not to a turn, so an earlier one stays open-able after later ones arrive. That is what makes "show me three approaches" work.
The viewer#
React and HTML artifacts run in a sandboxed iframe served by the runtime. If the preview runtime is unreachable the list still works, it just cannot render.
React artifacts run against React 19 with a fixed import list: Lucide, Recharts, D3, date-fns, lodash. Anything outside it fails with an error in the viewer rather than quietly reaching the internet.
Artifact code cannot make network requests: fetch, XHR, and WebSocket are blocked. The runtime loads libraries from a pinned allowlist, and an artifact cannot add to it. The one thing it can do outside its 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 oddly.
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 one from the home composer. Threads sit in the sidebar next to your workspaces, and the toggle-cowork-threads shortcut opens the list.