# 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 ```yaml services: pasteai: image: ghcr.io/pasteai/pasteai:latest ports: - "8080:8080" volumes: - pasteai_data:/data environment: - PASTEAI_DB=/data/documents.db volumes: pasteai_data: ``` ```sh docker compose up -d ``` That's it. PasteAI is running at `http://localhost:8080`. ### Binary install ```sh # 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. ```json { "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. ```sh # 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 ` 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.