跳到正文
FunCoding

搜索

搜索文档、智能体、博客、Skill 和 MCP

把会话产出做成 Artifact

Artifact 是 Claude Code 从会话发布到 claude.ai 的实时交互网页:创建与更新、分享与协作评论、用 MCP 连接器取实时数据、页面限制、可用条件、禁用与组织管理。

Artifact 是 Claude Code 从你的会话发布到 claude.ai 私有 URL 的实时交互网页。你在浏览器里打开它,会话继续时它原地更新;想让别人也看到时,从页面头部分享。可保持私有、在组织内共享,或发布为公开链接。Artifact 适用于 Pro、Max、Team 和 Enterprise 套餐,并要求会话用 /login 登录。

何时使用

当终端文字不适合呈现 Claude 的产出时:用眼睛看、动手交互比逐行阅读更容易的输出。例如:带注释的 diff 带评审者过一遍 PR;用会话已取得的数据渲染仪表盘;并排摆出几种设计或实现方案;在长任务运行时维护逐步填充的调查时间线;给同事发链接而不是把输出贴进 Slack;发布每次打开时通过 MCP 连接器取最新数据的状态看板。

它不是什么:Artifact 是一次工作的捕获,是没有后端的单个自包含页面,不能提供多个路由。需要带后端的托管内部工具,请部署到你自己的基础设施。

创建

Claude 在产出适合做成页面时可能自行发布,你也可以直接要求,用自然语言说出功能或你想要的视觉输出:

Make an artifact that walks through this PR with the diff annotated inline.
Build a dashboard artifact of last week's deploy failures by service and keep it updated as you investigate.

除非你指定位置,Claude 会把页面写成项目之外临时目录里的 HTML 或 Markdown 文件再发布。在非计划模式下,你输入的提示词触发的新 Artifact 发布不需要权限提示或分类器审查(除非发布声明了页面的运行时能力)。Artifact 在你分享之前只有你自己可见;公开分享之后,Claude Code 每次对话修改它前会请求一次批准(自动模式下由分类器审查)。首次发布后 Claude 打印 URL,浏览器自动打开新页面;想阻止自动打开,设置 CLAUDE_CODE_ARTIFACT_AUTO_OPEN=0。Claude 会选标题和 emoji,也可以选匹配页面的浏览器标签图标,想要特定的就在提示里说。如果 Claude 回答说无法发布,或只写了本地 HTML 文件而没有链接,说明工具没在你的会话里启用,检查下面的「可用条件」。

更新与再次找到

让 Claude 修改页面,或让长任务在推进时重新发布;Claude 编辑底层文件并发布到同一个 URL,所有打开页面的人原地看到更新。每次发布成为一个版本,在页面头部的 Share 控件里可以选择查看者看到哪个版本。从另一个会话更新时,把 URL 给 Claude 或用 /artifacts 附加它,否则新会话会创建新的 Artifact。

在 Claude Code 里运行 /artifacts 列出你拥有的和与你共享的所有 Artifact:选中后按 o 在浏览器打开,按 c 复制链接,按 Enter 附加到当前会话(v2.1.216 之前 Enter 是在浏览器打开)。

分享与协作

新 Artifact 只有你自己可见。在浏览器里用页面头部的 Share 控件分享;头部还链接到你的图库 claude.ai/code/artifacts。分享对象取决于套餐:

  • 组织内:Team 和 Enterprise 套餐可授权给组织里的特定人或所有人,查看者要以组织成员身份登录 claude.ai
  • 公开:任何人都能打开的链接,无需登录 claude.ai;Team 和 Enterprise 上公开分享默认关闭,直到 Owner 为组织启用

被分享的人默认是查看者;在 Team 和 Enterprise 上,你可以在分享对话框里把某人从 viewer 改成 editor。编辑者用与你从另一个会话更新相同的方式发布新版本:给 Claude 该 Artifact 的 URL 或用 /artifacts 附加,Claude 拉取当前内容并带着他们的修改重新发布。

读别人分享给你的 Artifact:把 URL 给 Claude 或从 /artifacts 附加。Claude 读别人写的页面时,像用 WebFetch 读网页一样:得到的是针对所问内容的摘要而不是原始页面,摘要会报告页面里写的指令而不是照办;Claude Code 还会把页面完整源码保存到本地文件,Claude 需要精确内容时可以打开。

收集评论(v2.1.221 起):在组织内分享后,被分享者可以在页面上留评论,你可以让 Claude 读取并回复。一种情形是你让 Claude 读:给它 URL 并要求读评论;另一种是能编辑该 Artifact 的人在某个线程里用 Send to Claude 发送,或提到 @claude,这会激活线程。Claude 只能回复或解决已激活的线程;仅有公开链接访问权的人看不到评论也无法添加。发布 Artifact 之后,Claude Code 在会话运行期间会监视它的评论(v2.1.228 起):发送的评论立即到达你的会话,Claude 可以不等你询问就读线程并回复。你的权限模式决定 Claude 的行为:权限模式允许 Claude 无需询问就发回复时它自动回复并按需编辑;需要你批准时你会看到 Comments are waiting on Artifact: <name>,Claude 会先后询问你是否读线程、是否发回复;计划模式下会暂停直到你离开计划模式。处理一小时内 60 条发送的评论或线程激活后 Claude 会停止自动回复。用 /tasks 看会话监视的每个 Artifact;停止自动回复的办法:在空闲提示符按一次 Ctrl+C(暂停所有,发送下一条消息后恢复)、在 /tasks 里停止该任务、或两次 Ctrl+X Ctrl+K(3 秒内,停止本会话剩余时间的所有 Artifact 回复)。

用 MCP 连接器取实时数据

Artifact 可以在每次有人查看时调用 MCP 连接器,页面显示的是当前数据而不是构建它的会话里的快照(适用于 Pro、Max、Team 和 Enterprise,需 Claude Code v2.1.209 或更高版本)。创建时在提示里点明连接器和数据:

Build a dashboard artifact of our open pull requests that pulls the live list through my GitHub connector when the page loads.

Claude 在发布时声明页面可以调用哪些连接器,页面不能调用声明之外的连接器;只有来自你 claude.ai 账号的连接器有资格,每次调用都通过查看者自己账号对该连接器的连接运行。页面看不到任何人的凭据,由 claude.ai 代页面发起调用。每个查看者在页面第一次调用连接器前都会被询问权限;拒绝或没连接该连接器的查看者仍能看到页面,但没有实时部分。页面可以提供带副作用的控件(如发消息、更新 issue),这些操作走点击控件者的账号。计划分享连接器页面时,让 Claude 在每个实时部分加一条说明所需连接器的后备信息。没有登录 claude.ai 就打开公开链接的人、或组织外的人,连接器调用不会运行。

查看者的实时部分为空时,依次检查:查看者没连接该连接器(连接器按账号,需在 claude.ai Settings > Connectors 添加后重新加载);查看者拒绝了权限询问(重新加载页面会再次询问);组织关闭了连接器调用(Owner 控制管理设置里的 Enable artifact connectors 开关);页面调用了连接器没有暴露的工具名(让 Claude 修正并重新发布)。

提供文件下载

Artifact 可以提供页面生成的文件(如表格的 CSV 导出或图表的 PNG),查看者通过页面上的下载控件(如按钮)保存。文件下载是 claude.ai 按账号启用的运行时能力,Claude 在构建控件前会检查你的账号是否具备。页面自己发起的下载(包括指向 data: 或 blob: URL 的链接)会被查看器阻止,需要让 Claude 用下载能力重建按钮。

能做什么

一个 Artifact 就是单个 HTML 页面,HTML、CSS 和内联 JavaScript 能表达的都在范围内。常见模式:

  • 走读一次改动:渲染带边注的 diff 或设计变更,评审者在代码旁读你的推理
  • 比较备选方案:在一页上放多个变体(布局、文案、API 形状、实现计划)
  • 用交互控件调参:把滑块、开关、输入框绑定到你在调的东西,直接探索数值
  • 把结果带回会话:让页面带一个导出控件(如「Copy as prompt」),产出你可粘贴回终端的文本
  • 跟踪进行中的工作:让 Claude 在长任务运行时保持 Artifact 最新,任何有链接的人都能跟进

改善视觉设计

Claude 构建 Artifact 时会应用内置的设计 skill,让页面有经过考虑的配色、字体和版式,它在选自己的方案前还会在项目里找已有的设计系统。想让 Artifact 保持一致,在项目的 CLAUDE.md 里写一段设计系统(颜色、字体、间距),Claude 把你的设计系统置于自己的选择之上,你的提示优先于两者。字体方面,Claude 可以从 Google Fonts 加载(Artifact 页面唯一能加载的外部字体来源),其他字体以 @font-face data URI 内联,并给每种字体一个后备栈。

从 Slides、Design 或 Docs 模板开始

Claude 可以从你 claude.ai 账号上的模板起步,而不是从零构建页面:Claude Slides(演示文稿)、Claude Design(视觉设计)、Claude Docs(供他人阅读和编辑的文档)。每个都在 claude.ai 上自己的编辑器里打开。描述你想要的内容(如「把迁移笔记做成周四评审的幻灯片」),Claude 选匹配的模板并给你链接;幻灯片和设计也可用 /slides、/design 加简述。模板处于 beta:Pro、Max 和 Team 默认开启,Enterprise 由 Owner 在 Organization settings > Artifacts 里逐个开启。Claude Docs 以 claude.ai 连接器的形式到达 Claude Code(/mcp 里显示为 claude.ai Claude Docs),属于代码库的文档(如 README)仍是文件;关闭它可把 claude.ai Claude Docs 加入 deniedMcpServers 或用 /mcp 开关。

页面限制

每个 Artifact 是一个自包含页面。Claude Code 把你发布的文件包进 HTML 文档外壳,并在严格的内容安全策略(CSP)下提供,这决定了页面能做什么:

限制影响
外部请求可从 Google Fonts 加载字体,从五个公共 CDN 主机加载脚本(cdnjs、unpkg、Tailwind 和 jQuery 的 CDN、jsDelivr 的 /npm/ 等路径);CSP 阻止所有外部图片和其他外部脚本、样式表、字体
无后端静态页面,自己无法认证查看者
下载页面不能自己发起下载,需要声明下载能力
单页相对链接不会解析(旁边没有部署任何东西),多段内容用页内锚点
源文件类型发布的文件必须是 .html、.htm 或 .md,且能按 UTF-8 解码(或按 BOM 识别的小端 UTF-16);Markdown 渲染为带语法高亮的样式化文档页;无法解码或含替换字符 U+FFFD 的文件会被拒绝并指出行和列
渲染大小渲染后的页面必须不超过 16 MiB;发布因大小失败通常是内嵌的大图

生成 Artifact 与其他回复一样消耗输出 token,带样式的页面比同样内容的终端文本更耗 token(内联 CSS、交互 JavaScript,尤其是以 data URI 嵌入的图片)。降低成本:图表优先用 SVG 或 HTML/CSS 而不是内嵌位图;省略不需要的交互;让页面汇总大数据集而不是完整内联。

可用条件

Artifact 需要满足以下全部条件,否则 Claude 会写本地 HTML 文件或说明无法发布:

要求何时可用
套餐Pro、Max、Team 或 Enterprise;Pro 和 Max 上在你分享前只有你自己可见,没有管理员管理;Team 和 Enterprise 默认开启,Owner 可在 claude.ai 管理设置里为组织关闭
认证会话由 claude.ai 账号支撑(在 CLI 或桌面 App 里用 /login 登录);用 API Key、网关令牌或云提供商凭据的会话无法发布
模型提供商Anthropic API;Bedrock、Agent Platform、Foundry 上不可用
组织策略组织没有启用客户管理的加密密钥(CMEK)、HIPAA 和零数据保留
入口Claude Code CLI,或 1.13576.0 及更高版本的 Claude 桌面 App;在 Agent SDK、GitHub Action、MCP 服务器场景以及设置了 CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC 时默认关闭

组织是否允许 Artifact 来自 Claude Code 从 api.anthropic.com 加载的组织策略;加载不到策略时 Artifact 不可用。有代理、VPN 或网页过滤时,请 IT 放行 api.anthropic.com。

禁用

要为自己的会话关闭 Artifact(不论组织设置):

位置做法
/config关闭 Artifacts 行,会把 "enableArtifact": false 写入用户设置
设置文件设置 "enableArtifact": false(已弃用的 "disableArtifact": true 也会关闭)
环境变量设置 CLAUDE_CODE_DISABLE_ARTIFACT=1
权限规则把 Artifact 加进 permissions.deny

在 --settings 文件或 CLAUDE_CODE_DISABLE_ARTIFACT 里关闭,或管理员在托管设置里关闭后,没有任何设置文件能再把它打开。在项目的 .claude/settings.json 或 .claude/settings.local.json 里设 "enableArtifact": false 可以为该项目的会话关闭(需 v2.1.242 或更高版本),而 true 不会重新打开。不带 domain: 的 WebFetch deny/ask 规则不会关闭 Artifact 或阻止读取,但 WebFetch(domain:claude.ai) 的 deny 或 ask 规则会作用于 Artifact 读取。

组织管理

Team 和 Enterprise 的 Owner 在 claude.ai 管理设置里控制:

  • 启用或禁用:Organization settings > Artifacts 的 Artifacts 开关;有基于角色的访问控制的 Enterprise 还可在 Organization settings > Roles 里按角色设置 Artifacts 权限
  • 连接器调用:Organization settings > Capabilities 里的 Enable artifact connectors 开关,独立于 Artifacts 开关,同样管辖在 claude.ai 对话里创建的 Artifact 的连接器调用
  • 公开分享:Team 和 Enterprise 上默认关闭;在 Organization settings > Artifacts 的 Artifacts 开关下打开 External sharing;再关闭会阻止通过现有公开链接的访问,而不改变各 Artifact 的访问设置
  • 保留策略:Organization settings > Data and privacy 里可为仍私有的和已共享的 Artifact 分别设置保留期
  • 审计日志:发布、分享和删除 Artifact 都出现在组织审计日志的 claude_artifact_* 事件类型下
  • 放行查看器域名:claude.ai 的查看器从沙盒的 *.claudeusercontent.com 源加载每个 Artifact;限制出站网络时要把它和 claude.ai 一起加进允许列表。加载 Google Fonts 字体的 Artifact 还会请求 fonts.googleapis.com 和 fonts.gstatic.com(可选,阻止后用后备字体渲染,建议用快速拒绝而不是静默丢弃);Artifact 还可能从 cdnjs.cloudflare.com、cdn.jsdelivr.net、cdn.tailwindcss.com、code.jquery.com 和 unpkg.com 加载 JavaScript 库(如 React 或图表库),被阻止时依赖库的部分将无法工作
  • 用 Compliance API 列出和删除:GET /v1/compliance/code/artifacts、GET /v1/compliance/code/artifacts/{artifact_id}/versions/{version_id}、DELETE /v1/compliance/code/artifacts/{artifact_id},请求和响应 schema 见 Compliance API 参考