What it is
ArtifactSmith gives an agent a way to return a real document instead of a wall of chat text. Each artifact is versioned, and it stays private until someone shares it.
Why it exists
Agents can do good work and then hand back a wall of chat text. ArtifactSmith lets them hand back real pages you can look at, share, and pull back later.
It was inspired by Meta's Muse artifacts and built for people who run their own agents on their own servers.
How it works
The agent calls create with the user's words.
A model on any OpenAI-compatible endpoint writes it. A fixed renderer turns it into a document.
The agent gets a private link to inspect the result.
A public link points to one exact version. Unshare makes it return 404.
What it can make
Tools for an agent
| create | Queue a private build. |
|---|---|
| status | Poll or wait for the build status. |
| edit | Create a new version from the latest version. |
| inspect | Read the manifest, history, and share state. |
| list_artifacts | Show the artifact catalog. |
| export | Get a download link valid for 15 minutes. |
| share | Create a public link for one exact version. |
| unshare | Remove public access so the link returns 404. |
| revoke_previews | Expire private preview links. |
| delete | Purge an artifact in two steps. |
Safe by default
Builds stay private until shared.
Scripts are stripped.
Nothing loads from outside when a page opens. Outside images become links.
Private-network links are refused.
Tokens are scoped to one workspace with set permissions.
No usage data is sent anywhere.
Try it in three commands
cp .env.example .env
./scripts/ensure-local-env.sh
docker compose up -d --build
Set your API key in .env. Then create a token with:
docker compose exec server artifactsmith token add --name agent --workspace alpha
Point an MCP client at the /mcp endpoint on port 8780 of the machine running it, with that token.