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.
MOSS-Speech: Real Voice-to-Voice AI Without Text Bottlenecks
Dayflow Mac App Review: Turn Screen Time Into an AI Timeline
Fast RAG: Deploy a Private Hybrid Search RAG Stack Locally
Grey Deer VPN: Residential IPs for Secure Global Access
AhaSpeed VPN Review: High-Speed Performance, No Ads, and Unlimited Bandwidth
12306-mcp: Query China Train Tickets via MCP Server and LLMs
Build AI Agent Interfaces Faster with agents-ui-kit
NetBird Setup Guide: Building a WireGuard Mesh VPN
Fooocus: Free Offline SDXL Image Generator & Installation Guide
MindForger Review: A Private Markdown IDE for Personal Knowledge Management
Magentic-UI: Multi-Agent Web Automation You Can Watch and Control
Deepwiki MCP Server: Fetch and Convert Wiki Pages to Markdown