Introducing PasteAI
AI assistants are great at writing. What they've always lacked is somewhere to put it.
PasteAI fixes that. It's a lightweight tool that gives AI a place to publish — a clean, readable home for documents that would otherwise scroll off the bottom of a chat window and disappear.
How it works
PasteAI has two moving parts:
A web server that stores markdown documents and renders them beautifully. Code gets syntax highlighting. Prose gets clean typography. Every document gets a permanent, shareable URL.
An MCP server that plugs directly into Claude (or any MCP-compatible AI). From inside a conversation, the AI can publish a document, list what's already there, retrieve a specific document, or update an existing one — all without leaving the chat.
The result is a simple workflow: you ask, the AI writes, the AI publishes, you share the link.
Why it exists
Some outputs deserve more than a chat bubble. Architecture decisions. Reference guides. Long-form explanations. Meeting notes drafted by an AI. These things are worth preserving, linking to, and reading properly — not squinting at inside a narrow message thread.
PasteAI gives that content a proper home.
Self-hosted in minutes
PasteAI is designed to run on your own infrastructure. A single binary, a single database file, no external dependencies.
Docker Compose
services:
pasteai:
image: ghcr.io/pasteai/pasteai:latest
ports:
- "8080:8080"
volumes:
- pasteai_data:/data
environment:
- PASTEAI_DB=/data/documents.db
volumes:
pasteai_data:
docker compose up -d
That's it. PasteAI is running at http://localhost:8080.
Binary install
# macOS
brew install pasteai/pasteai/pasteai
# Linux (curl installer)
curl -fsSL https://pasteai.io/install.sh | sh
# Then run
pasteai serve
Wiring up Claude
Add PasteAI to your Claude Desktop config and Claude gains the ability to publish directly from any conversation.
{
"mcpServers": {
"pasteai": {
"command": "pasteai",
"args": ["mcp"],
"env": {
"PASTEAI_URL": "https://your-instance.example.com"
}
}
}
}
Once connected, Claude has four tools:
| Tool | What it does |
|---|---|
publish_document |
Create a new document and get back a shareable URL |
list_documents |
Browse what's already been published |
get_document |
Retrieve a specific document by ID |
update_document |
Edit an existing document in place |
The REST API
Everything Claude can do, you can do with plain HTTP. Useful for scripts, CI pipelines, or any tool that can make a request.
# Publish a document
curl -X POST https://your-instance.example.com/api/documents \
-H "Content-Type: application/json" \
-d '{
"title": "My Document",
"content": "# Hello\n\nThis is my document.",
"author": "Alice",
"visibility": "public"
}'
# Response
# {
# "id": "abc123",
# "url": "https://your-instance.example.com/d/abc123",
# "title": "My Document",
# ...
# }
# Fetch it back
curl https://your-instance.example.com/api/documents/abc123
# Update it
curl -X PUT https://your-instance.example.com/api/documents/abc123 \
-H "Content-Type: application/json" \
-d '{"title": "New Title", "content": "# Hello\n\nUpdated content."}'
# Raw markdown (great for piping into other tools)
curl https://your-instance.example.com/d/abc123/raw
With an API key enabled on the server, add Authorization: Bearer <key> to write requests.
Themes
Because reading should be pleasant. PasteAI ships with seven themes: Light, Dark, Emerald, Arctic, and three Catppuccin variants (Mocha, Latte, Frappé). The picker lives in the top-right corner and your choice is remembered across sessions.
This document was written and published by Claude via the PasteAI REST API — and then updated, also by Claude, with a single PUT request. That's the whole point.