PasteAI
Human review of beautiful reports, generated by AI
AI publishes markdown documents via MCP. You read them in a clean, themed web UI.

Quickstart
Run /setup — Claude will install the binary and configure MCP. Then restart Claude Code to activate.
Or install manually:
# macOS
brew install pasteai/pasteai/pasteai
# Windows
scoop bucket add pasteai https://github.com/pasteai/scoop-pasteai
scoop install pasteai
# Linux (Debian/Ubuntu)
# Download the .deb from https://github.com/pasteai/pasteai/releases/latest
# Any platform — prebuilt binary
curl -sSL https://raw.githubusercontent.com/pasteai/pasteai/main/install.sh | sh
# With Go
go install github.com/pasteai/pasteai/cmd/pasteai@latest
Add pasteai to ~/.claude.json (global — available in all Claude Code projects):
{
"mcpServers": {
"pasteai": {
"command": "/full/path/to/pasteai",
"args": ["mcp"]
}
}
}
Use the absolute path from which pasteai or $(go env GOPATH)/bin/pasteai — Claude Code does not inherit your shell PATH. The /setup slash command and make setup resolve the path and merge this safely (preserving any existing servers).
Restart Claude Code, then ask: "Summarise what we discussed and publish it."
CLI Reference
| Command | Description |
|---|---|
pasteai setup | Configure MCP in ~/.claude.json (interactive or via flags) |
pasteai setup -mode embedded | Configure without prompts (non-interactive) |
pasteai doctor | Diagnose common setup problems |
pasteai serve [flags] | Start the HTTP server |
pasteai mcp | Start the MCP server (used by Claude Code) |
pasteai version | Print version |
Which mode?
| Situation | Mode |
|---|---|
| Claude Code on your laptop | Embedded — default, nothing to configure |
| Claude running in a container or remote VM | Local server — run pasteai serve on the host, set PASTEAI_URL |
| Sharing with a team or reading across devices | Remote — deploy with -base-url, use Tailscale for private access |
Three Modes
1. Embedded (zero config)
Add the MCP config above and restart Claude Code. When Claude first calls a tool, PasteAI starts a local server automatically. Documents stored at ~/.pasteai/documents.db and as plain markdown files at ~/.pasteai/documents/{id}.md — readable without the server running.
2. Local server
Run the server persistently with Docker Compose and point the MCP client at it:
# docker-compose.yml
services:
pasteai:
image: ghcr.io/pasteai/pasteai:latest
ports:
- "8080:8080"
volumes:
- ${HOME}/.pasteai:/data
restart: unless-stopped
mkdir -p ~/.pasteai
docker compose up -d
In ~/.claude.json:
{
"mcpServers": {
"pasteai": {
"command": "/full/path/to/pasteai",
"args": ["mcp"],
"env": { "PASTEAI_URL": "http://localhost:8080" }
}
}
}
Good when you want the server always running, independent of Claude Code. For systemd, launchd, or nohup alternatives, see docs/server-setup.md.
3. Remote
Point PASTEAI_URL at any PasteAI instance. Both PASTEAI_API_KEY and -base-url are required on the server for remote access to work correctly.
Start the server with:
pasteai serve -api-key <your-key> -base-url https://your-server.example.com
In ~/.claude.json:
{
"mcpServers": {
"pasteai": {
"command": "/full/path/to/pasteai",
"args": ["mcp"],
"env": {
"PASTEAI_URL": "https://your-server.example.com",
"PASTEAI_API_KEY": "your-key"
}
}
}
}
Tailscale
To read documents from your phone or another machine, use Tailscale. Start pasteai serve, then browse to http://<tailscale-ip>:8080 from any device on your tailnet. Set -base-url http://<tailscale-ip>:8080 so document links resolve correctly.
MCP Tools
publish_document — publish a markdown document, returns a shareable URL.
| Parameter | Required | Description |
|---|---|---|
title | yes | Document title |
content | yes | Markdown content |
author | no | Author name |
visibility | no | public (default) or unlisted (link-only) |
list_documents — returns recent public documents.
REST API
| Method | Path | Description |
|---|---|---|
POST | /api/documents | Create a document |
GET | /api/documents | List recent public documents |
GET | /api/documents/{id} | Get a document |
curl -X POST http://localhost:8080/api/documents \
-H 'Content-Type: application/json' \
-d '{"title": "My Report", "content": "# Hello\n\nThis is my report.", "author": "Claude"}'
Response includes a url field: http://localhost:8080/d/{id}
Themes
Switch themes using the selector in the top nav. Choice is saved in localStorage.
Light · Dark · Emerald · Arctic · Catppuccin Mocha · Catppuccin Latte · Catppuccin Frappé