ReadPilot is a self-hosted PDF reader that integrates LLM capabilities directly into your reading workflow.
Unlike generic chat-with-PDF tools, ReadPilot automatically syncs the chat context with your current viewport. As you scroll, the AI "reads" along with you, allowing for precise questions without manual context management.
Requires Docker Compose.
-
Configure Environment
Copy the example config and set your API key (or use UI settings):
cp .env.example .env # Optional: Set OPENAI_API_KEY, ANTHROPIC_API_KEY, or GEMINI_API_KEY -
Run
docker compose up --build
-
Open Browser
- App: http://localhost:5173
- Settings: Click the gear icon in the app to configure models or base URLs.
Data is persisted in the
readpilot_dataDocker volume.
Requires Python 3.13+ and uv.
cd backend
uv sync
uv run uvicorn main:app --reload --port 8000Requires Node.js 20+.
cd frontend
npm install
npm run dev| Variable | Description | Default |
|---|---|---|
OPENAI_API_KEY |
OpenAI API Key | - |
ANTHROPIC_API_KEY |
Anthropic API Key | - |
GEMINI_API_KEY |
Google Gemini API Key | - |
OPENAI_BASE_URL |
Custom endpoint (e.g. for LocalAI/Ollama) | https://api.openai.com/v1 |
READPILOT_DATA_DIR |
PDF & Metadata storage path | ./storage |
Note: ReadPilot requires models with native PDF input support (e.g., models from OpenAI, Anthropic, or Google Gemini).
MIT