
Artifacts
io.github.kuyazee由 GitHub 账号 kuyazee 发布v1.0.0更新于 Oct 24, 2026
Self-hosted artifact publishing: POST HTML/JSX/Markdown/zip, get an unguessable URL on your domain
发布方自己的服务:artifacts.boo
概览
让助手把 HTML、JSX、Markdown、PDF 或打包的静态站点发布到自托管服务器,并返回你自己域名下的不可猜测 URL。
- 可以做什么
- 这是一个自托管的产物发布服务器,内置 MCP 端点。助手可以提交 HTML、单个 React 组件、Markdown、PDF 或打包的静态站点,并得到你控制域名下的链接。产物默认私有,通过签名能力链接分享,也可设为公开或密码保护,并支持重定向、二维码、标签和按项目分组。仪表盘和命令行提供相同的人工发布流程。
- 适用场景
- 适合希望把 AI 生成的仪表盘、原型、报告或小应用以链接分享,但托管在自己基础设施而非厂商平台上的场景。也适合已经运行容器主机、希望掌控产物链接、可见性和保留策略的团队。
- 运行要求
- 以本地进程或容器运行(Docker 镜像;开发需 Node 22 或更高版本)。需要密钥 ARTIFACTS_API_KEY 作为写入和 MCP 端点的 Bearer 令牌,以及 BASE_URL 用于返回链接中的公开源。可选 STORAGE_BACKEND 指向 S3 兼容存储、git 远程或 Postgres 以持久化;在代理后可用 TRUST_PROXY。
安装
在 SourceWeft 中
- 打开 控制台中的 Artifacts,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
artifacts
Self-hosted, Claude-style artifact publishing
POST HTML, a React component, Markdown, a PDF, or a zipped static site. Get back an unguessable URL on your own domain.
[CI] [License: MIT] [Node >= 22]
Quick start · Deploy · API · CLI · MCP · Security
[Dashboard: publish, group by project, and manage artifacts]
Dashboard: publish, group by project, and manage
[A published artifact served with the viewer topbar]
A published artifact served with the viewer topbar
About
AI assistants produce a lot of shareable output: dashboards, prototypes, reports, small apps. Claude's hosted artifacts work well, but the URLs live on someone else's infrastructure. This is the self-hosted version, about 1,100 lines. You POST content, it serves the rendered result at an unguessable URL on a domain you control.
It runs as one container with a single admin account and, by default, no database. Each artifact is a directory of plain files under /data, so backing up that directory backs up everything. On hosts that wipe local disk on restart, point it at durable external storage instead (an S3-compatible bucket, a git remote, or Postgres) by setting STORAGE_BACKEND. See deploying.
Features
- Content types. HTML, JSX/TSX (a single React component, no build step), Markdown, PDF, and zipped static sites.
- Agent-native, human-friendly. A built-in MCP server lets Claude Code, Codex, or any MCP client publish with one tool call. Humans get a drag-and-drop web UI at
/(behind an admin login) and a CLI. - Two-tier auth. An admin logs into the dashboard with a password; CLI and MCP carry scoped, revocable API keys (
read/publish/full) with optional expiry, so you never share one master secret. - Private by default, with per-artifact visibility. A new artifact is
private, shared through a signed capability link (?k=…) you can rotate to revoke. Switch any artifact topublic(anyone with the bare link) or password-protected. Nothing is discoverable by default: unguessable slugs,noindexeverywhere. See visibility. - Optional viewer frame. A slim top toolbar (title, copy link, hide) like Claude, Gemini, and ChatGPT artifacts. Toggle it globally in Settings or per artifact;
?raw=1serves the bare content. Redirects are never framed. - Markdown render settings. Pick the reading font, content width, base font size, and starting theme for every Markdown artifact in Settings. Markdown renders from its source on each view, so a change shows on existing artifacts too. Framed Markdown gets a navbar button that cycles Auto, Light, and Dark for that reader. See docs/formats.md.
- PDF hosting. Publish a PDF and it gets a viewer page plus a direct-download link. Three per-artifact viewer modes (standard, presentation, minimal) and a download toggle that removes the viewer's buttons. The toggle is a convenience, not protection: the file's URL still answers with the bytes. See docs/formats.md.
- Redirects.
type: "redirect"turns a slug into a short link that answers an HTTP 301 at the server, where other hosts fall back to a JavaScript bounce. The target must be an absolute http(s) URL and cannot carry credentials, and the response is uncacheable, so repointing the slug takes effect on the next visit. Repoint one from the row menu in the dashboard, or with aPUT. Read the cost of running an open redirector on your domain first: docs/formats.md. - Embeddable. A public artifact drops into any page as one
<iframe>. The row menu writes the tag for you, pointing at?raw=1so the frame holds the artifact and not a second toolbar. Private and password-protected artifacts stay unembeddable on purpose, and the unlock prompt refuses to be framed at all. See docs/embedding.md. - QR code per artifact. Every artifact has a QR of its permanent URL, from the row menu in the dashboard,
GET /api/artifacts/:slug/qr, orartifacts qr <slug>. SVG or PNG, generated in-process: no QR library, no third-party image service, nothing about your artifacts leaves the box. See the API reference. - Organize by project. Group artifacts built for the same project into collapsible sections, with a search box across project, title, slug, tags, and a redirect's target. Tags stay for cross-cutting labels.
- Lifecycle controls. Custom slugs, rename, tags, disable without deleting, auto-expire, delete.
- Abuse-resistant. Login and unlock endpoints are rate-limited per client IP (failures only), and password hashing runs off the event loop, so a burst of guesses slows those two routes instead of stalling the server. Set
TRUST_PROXYfor the real client IP behind Cloudflare or a reverse proxy. See deploying.
Quick start
Clone, configure, start:
Or skip the clone and run the image directly:
Publish something:
Let Claude Code publish for you:
Documentation
Development
No build step. Node ≥ 22.
The end-to-end suite is one shell script:
A few cases cannot be reached over HTTP, such as a hand-edited auth.json. Those run as unit
tests on node's built-in runner, no server needed:
That covers the dashboard too. dashboard-check.mjs fetches /, parses the inline script in
public/index.html, and checks that every element the script grabs by id is still in the markup.
It runs no browser, so it catches a syntax error or a deleted element but not a runtime error.
PRs welcome. See CONTRIBUTING.md.
Hosted version
Self-hosting is the product, and the open source version stays complete. If you would rather not run a server, Anvil Nine is building a managed version: same publishing flow, custom domains, backups handled for you. A waitlist page opens with the first cloud announcement; watch this repo's releases until then.
Security
Uploaded HTML runs in the browser. That is the whole point, so the model is built to contain it:
- Serve artifacts from their own origin. Point artifact URLs at a domain that hosts nothing else, so a published page can never touch the dashboard's session cookie.
- Writes need a scoped API key. Publishing carries a bearer key; the admin dashboard uses a separate HttpOnly, SameSite=Strict session cookie.
- Reads rely on unguessable slugs. Public artifacts are reachable by anyone with the link and carry
noindex, but there is no listing to browse. Don't publish secrets. - Credential routes are throttled. Login and unlock rate-limit per client IP and hash passwords off the event loop. A caller below
publishscope gets a 256 kB body parser instead of the 10 MB one, and a cap of 20 large bodies a minute per client IP, both checked before the body is parsed. Put a CDN or edge limiter in front for volumetric attacks.
Full threat model in SECURITY.md.
Acknowledgements
This project stands on other people's open source. All of the following are MIT licensed.
Runtime
- express for the HTTP server
- marked for Markdown rendering
- nanoid for unguessable slug generation
- adm-zip for zip site extraction
- zod for request validation
- @modelcontextprotocol/sdk for the built-in MCP server
Optional storage backends (loaded only when selected)
- aws4fetch for S3-compatible signing
- isomorphic-git for the git backend
- pg for the Postgres backend
The SQLite backend uses Node's built-in node:sqlite (no dependency).
Web UI
- Tabler Icons for the app-bar icons (search, new, settings, lock), inlined as SVG
License
MIT © 2026 Zonily Jame
One container. Plain files by default; pluggable S3 / git / Postgres / SQLite storage.
来源:README.md,提交 c0c2aa0
工具
0版本历史
1- v1.0.0最新Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分
其他 Artifacts 集成

artifacts.boo
boo.artifacts官方发布者
让助手在团队工作区发布小型交互页面,受邀者可评论、审批和填写,助手再读取这些回答。

Super Artifacts
由 GitHub 账号 Super-Artifacts 发布
让智能体把网页、表单和追踪页发布成可分享的链接,并读回访客提交的内容、修改页面。

attest — verification for AI agent artifacts
由 GitHub 账号 mrpkk 发布
远程 MCP 服务器,用于校验 AI 智能体产出的工件(模式、空泛内容、来源与授权),并返回带签名的判定结果。

Artifacts
由 GitHub 账号 mctx-ai 发布
Artifacts 是一个远程 MCP 服务器,让助手保存 AI 会话中的决策、计划和笔记,并可在之后从任意客户端取回。

Reviewable Artifacts
由 GitHub 账号 garrietv 发布
一个本地 stdio MCP 服务器,让助手发现可审阅工作区并创建私有 HTML 审阅。