Intelligent Q&A over PDF documents using AI
Features • Installation • Usage • Development • Tech Stack
- 🔍 Intelligent PDF Q&A - Ask questions about your PDF documents and get AI-powered answers with source citations
- 📄 Multi-Document Support - Upload and chat with multiple PDFs simultaneously
- 🔄 Multiple LLM Providers - Switch between OpenAI, Anthropic Claude, Cohere, or local models
- 🗄️ Flexible Vector Storage - Choose between local ChromaDB or cloud-based Pinecone
- 🔐 Secure API Key Storage - Your API keys are encrypted and stored locally
- 📱 Cross-Platform - Native apps for Windows and macOS
- 🌙 Dark Mode - Beautiful dark and light themes with system preference support
- 🔄 Auto Updates - Seamless automatic updates using GitHub releases
- 📍 Source Citations - See exactly which page and section the answer comes from
- 💾 Offline-First - Works offline with local vector database option
No programming knowledge required! Just download and install:
| Platform | Download | Instructions |
|---|---|---|
| macOS | Download .dmg | Open the .dmg file, drag DocuChat to Applications folder |
| Windows | Download .exe | Run the installer and follow the prompts |
| Linux | Download .AppImage | Make executable and run: chmod +x DocuChat*.AppImage && ./DocuChat*.AppImage |
If macOS shows "DocuChat can't be opened":
- Right-click (or Control+click) the app
- Select Open from the menu
- Click Open in the dialog
- ChromaDB (for document storage): You need Docker installed and running:
Or use Docker Desktop (easy GUI option)
docker run -d --name chromadb -p 8000:8000 chromadb/chroma
# Clone the repository
git clone https://github.com/munimahmad/DocuChat.git
cd DocuChat
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run build
# Package for distribution
npm run distGo to Settings and enter your API keys for the LLM providers you want to use:
- OpenAI: Get your API key from OpenAI Platform
- Anthropic: Get your API key from Anthropic Console
- Cohere: Get your API key from Cohere Dashboard
- Navigate to the Documents page
- Drag and drop PDF files or click to browse
- Documents will be automatically processed (text extraction, chunking, embedding)
- Go to the Chat page
- Select one or more processed documents
- Ask questions about your documents
- Get AI-powered answers with source citations
docuchat/
├── src/
│ ├── main/ # Electron main process
│ │ ├── main.ts # Entry point
│ │ ├── preload.ts # Preload script
│ │ ├── handlers/ # IPC handlers
│ │ ├── services/ # Business logic
│ │ └── database/ # SQLite operations
│ ├── renderer/ # React frontend
│ │ ├── components/ # UI components
│ │ ├── pages/ # Page components
│ │ ├── contexts/ # React contexts
│ │ └── styles/ # CSS styles
│ └── shared/ # Shared types & constants
├── build/ # Build resources
├── resources/ # App resources
└── package.json
# Development
npm run dev # Start with hot reload
npm run dev:main # Start main process only
npm run dev:renderer # Start renderer only
# Building
npm run build # Build all
npm run build:main # Build main process
npm run build:renderer # Build renderer
# Packaging
npm run pack # Package without distributing
npm run dist # Package and create installers
npm run dist:mac # macOS only
npm run dist:win # Windows only
npm run dist:linux # Linux onlyCreate a .env file for development:
# Development settings
NODE_ENV=development- Framework: Electron - Cross-platform desktop apps
- Frontend: React + TypeScript
- Styling: Tailwind CSS
- Build Tool: Vite
- LLM Integration: LangChain
- Vector Database: ChromaDB / Pinecone
- Local Database: SQLite via better-sqlite3
- PDF Processing: pdf-parse
- Packaging: electron-builder
- Auto Updates: electron-updater
| Provider | Models |
|---|---|
| OpenAI | GPT-4 Turbo, GPT-4, GPT-3.5 Turbo |
| Anthropic | Claude 3 Opus, Sonnet, Haiku |
| Cohere | Command R+, Command R |
| Local | Any OpenAI-compatible endpoint (LM Studio, Ollama) |
| Provider | Models |
|---|---|
| OpenAI | text-embedding-3-small, text-embedding-3-large |
| Cohere | embed-english-v3.0, embed-multilingual-v3.0 |
Documents not processing?
- Check that you have configured an API key for the embedding provider
- Ensure the PDF is not password-protected or corrupted
Chat not responding?
- Verify your LLM API key is correct
- Check your internet connection
- Look for error messages in the app
macOS security warning?
- Right-click the app and select "Open"
- Go to System Preferences > Security & Privacy and allow the app
Contributions are welcome! Please read our Contributing Guide for details.
MIT License - see LICENSE for details.
Made with ❤️ by the DocuChat Team
