Artifacts are available on Pro, Max, Team, and Enterprise plans and require a session signed in with
/login. See Availability for the full set of requirements.
When to use an artifact
Use an artifact when terminal text is the wrong medium for what Claude produced: output that is easier to look at and interact with than to read line by line. Claude builds the page from anything your session can reach, including your codebase and data it pulls through your connected tools, so the page can show things that would take paragraphs to describe. For example, ask Claude to:- Walk a reviewer through a pull request with annotated diffs
- Render a dashboard from data the session already pulled
- Lay out several design or implementation options side by side
- Keep an investigation timeline that fills in while a long task runs
- Send a teammate a link instead of pasting output into Slack
- Publish a status board that pulls fresh data through MCP connectors each time someone opens it
What an artifact is not
An artifact is a capture of work, not an application. It is one self-contained page with no backend, so it can’t store form input or serve multiple routes, and its only path to outside data when someone views it is calling MCP connectors. For a hosted internal tool with a backend, deploy it on your own infrastructure instead. See Page constraints for the full set of limits.Create an artifact
Claude may publish an artifact on its own when the output suits a page, or you can ask for one directly. To ask, name the feature or describe the visual output you want in plain language. A good candidate is anything easier to see than to read as text, such as an annotated diff, a chart, or a set of options to compare. The prompts below are two examples; see What you can build for more patterns.Claude wants to publish "Deploy failures by service" (deploy-failures.html) to a private page on claude.ai. Republishing an artifact you have already approved does not prompt again.
Select Yes to publish. Claude prints the URL, and your browser opens to the new page. Press Ctrl+] at any time to reopen the most recent artifact from the terminal.
Claude picks the artifact’s title and an emoji for its browser-tab icon. Both appear in your gallery of artifacts on claude.ai and in shared links, so ask Claude to use a specific title or icon if you want one.
To stop the browser from opening automatically when a new artifact is published, set CLAUDE_CODE_ARTIFACT_AUTO_OPEN=0 in your environment.
If Claude responds that it cannot publish, or writes a local HTML file without a link, the tool is not enabled for your session. Check the Availability requirements.
Update an artifact
Ask Claude to revise the page, or let a long-running task republish as it makes progress. Claude edits the underlying file and publishes again to the same URL.Share an artifact
A new artifact is visible only to you. To share it, open the artifact in your browser and use the Share control in the page header. The header names you as the artifact’s author, so anyone you share it with can see who published the page. It also links to your gallery at claude.ai/code/artifacts, which lists every artifact you have created. Who you can share with depends on your plan:- Within your organization: on Team and Enterprise plans, grant access to specific people in your organization, or to everyone in it. Viewers sign in to claude.ai as members of your organization to see the page.
- Publicly: share a link that anyone on the internet can open, with no claude.ai sign-in required. On Pro and Max plans, a public link is the only way to share an artifact. On Team and Enterprise plans, public sharing is off until an Owner enables it for the organization.
Let someone edit with you
People you share with are viewers by default: they see each version you publish but can’t change the page. On Team and Enterprise plans, you can also make someone an editor. In the share dialog, add a person and switch their role from viewer to editor. An editor publishes new versions the same way you update the artifact from another session: they give Claude the artifact’s URL in their own session, and Claude pulls the current content and republishes with their changes. Everyone with the page open sees each update live.Pull live data with MCP connectors
An artifact can call MCP connectors each time someone views it, so the page shows current data rather than a snapshot from the session that built it. Connector calls from artifacts are available on Pro, Max, Team, and Enterprise plans and require Claude Code v2.1.209 or later. On earlier versions, Claude publishes the page with whatever data the session gathered while building it. To create a connector-backed page, name the connector and the data you want in your prompt:.mcp.json, can supply data while Claude builds the page, but the published page can’t call them.
The page fetches data when it loads and can refresh on an interval or when a viewer uses a refresh control on the page. Responses are cached in the viewer’s browser, so a reopened page renders from the cached responses immediately, then updates with fresh results.
How connector calls work for viewers
When a published page calls a connector, the call uses the account of the person viewing the page, not the account of the person who published it:- Each viewer uses their own connectors: calls go through the viewing account’s connected tools, so two people opening the same dashboard can see different data depending on what their accounts can access. The page never sees anyone’s credentials; claude.ai makes the calls on the page’s behalf.
- Viewers approve access first: claude.ai asks each viewer for permission before the page’s first connector call. A viewer who declines, or who hasn’t connected a connector the page uses, still sees the page without its live sections.
- Actions use the viewer’s account too: a page can offer controls that invoke connector tools with side effects, such as posting a message or updating an issue. The action goes through the account of whoever selects the control.
The page shows no live data for a viewer
When a connector-backed page renders but its live sections stay empty for someone you shared it with, work through these causes:- The viewer hasn’t connected the connector: connectors are per-account, so each viewer needs their own connection to every connector the page calls. They can add one under Settings > Connectors on claude.ai, then reload the page.
- The viewer declined the permission ask: a denial lasts for the rest of that page load. Reloading the page brings the permission ask back.
- Connector calls are turned off for the organization: an Owner controls the Enable artifact connectors toggle in admin settings.