Paperless GPT serves as the intelligence layer for your Paperless-NGX installation. It eliminates the tedious nature of manual filing by using AI to generate accurate document titles and tags. Rather than simply scanning pixels, it combines traditional OCR with large language models (LLMs). This ensures that even when you process a messy scan or a degraded fax, you receive clean, usable text in return.
The system integrates easily with OpenAI, Ollama, and other backends. Traditional OCR engines frequently struggle with wrinkled receipts or skewed invoices, but Paperless GPT uses context to fix jumbled characters and broken line endings. The resulting output is precise enough for reliable searching and sorting.
You aren't restricted to a single provider. You can select the engine that best fits your privacy requirements or budget:
The tool generates a PDF containing an invisible text layer. While the document's appearance remains identical to the original scan, you gain the ability to highlight and search for specific words. These files can be stored locally or pushed directly back into Paperless-NGX.
You can customize the system’s behavior using environment variables:
gpt-4o or qwen3:8b.OCR_LIMIT_PAGES or skip files that already contain text using PDF_SKIP_EXISTING_OCR.You can run Paperless GPT alongside Paperless-NGX using Docker Compose. Simply configure your API details and launch the service:
services:
paperless-gpt:
image: icereed/paperless-gpt:latest
environment:
PAPERLESS_BASE_URL: "http://paperless-ngx:8000"
PAPERLESS_API_TOKEN: "your_api_token"
LLM_PROVIDER: "openai"
LLM_MODEL: "gpt-4o"
OPENAI_API_KEY: "your_openai_key"
volumes:
- ./prompts:/app/prompts
ports:
- "8080:8080"
depends_on:
- paperless-ngx
CREATE_LOCAL_HOCR and CREATE_LOCAL_PDF settings to maintain copies of all processed files on your local disk.PDF_REPLACE function overwrites the original file. It is wise to back up your data before enabling this.PDF_OCR_COMPLETE_TAG so the system identifies processed files and avoids scanning the same document twice.TOKEN_LIMIT to ensure long contracts aren't truncated during processing.Example 1: A Crinkled Receipt Standard OCR: Distorts the address. "LOUVAIN LA NEUVE" might appear as gibberish like "LOLNAIN LA NEWWE." LLM OCR (GPT-4o): Recognizes the context, corrects the spelling to "Louvain-la-Neuve," and accurately aligns the financial totals.
Example 2: A Messy Invoice Standard OCR: Scrambles table layouts and misinterprets date formats. LLM OCR (GPT-4o): Preserves the table structure, cleans up dates and currency symbols, and makes the document readable without manual correction.
LightlyStudio: Reduce Annotation Costs Through Intelligent Data Curation
Magic: An Open-Source AI Productivity Platform with Agent Automation
Smart-Admin Setup Guide: Environment, Backend, Frontend, and Mobile Deployment
Space Adventure Story Voice Mode: Build an AI-Powered Voice Game
Eigent: Multi-Agent Workflow Desktop App with CAMEL and MCP
Emojied: Convert Any URL into a Single Emoji Short Link
Agentic-Trading: Multi-Agent Simulator with A2A Protocol and ADK
UTCP Explained: A Universal Tool Calling Protocol for APIs, LLMs, and Beyond
MemoryOS: Equip AI Agents with Persistent Recall via a Memory Hierarchy
Tabby Terminal: A Cross-Platform Emulator with SSH, Serial Support, and Plugins
n8n Automation: Over 400 AI Integrations in a Single Workflow
Ditto Clipboard Manager: Never Lose Your Copied Text Again