Skip to content

munimx/DocuChat

Repository files navigation

DocuChat - Cross-Platform AI PDF Assistant

DocuChat Logo

Intelligent Q&A over PDF documents using AI

FeaturesInstallationUsageDevelopmentTech Stack


Features

  • 🔍 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

Installation

📥 Download (Recommended for most users)

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

macOS First-Time Setup

If macOS shows "DocuChat can't be opened":

  1. Right-click (or Control+click) the app
  2. Select Open from the menu
  3. Click Open in the dialog

Prerequisites

  • ChromaDB (for document storage): You need Docker installed and running:
    docker run -d --name chromadb -p 8000:8000 chromadb/chroma
    Or use Docker Desktop (easy GUI option)

🛠️ Build from Source (For Developers)

# 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 dist

Usage

1. Configure API Keys

Go to Settings and enter your API keys for the LLM providers you want to use:

2. Upload Documents

  1. Navigate to the Documents page
  2. Drag and drop PDF files or click to browse
  3. Documents will be automatically processed (text extraction, chunking, embedding)

3. Start Chatting

  1. Go to the Chat page
  2. Select one or more processed documents
  3. Ask questions about your documents
  4. Get AI-powered answers with source citations

Development

Project Structure

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

Scripts

# 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 only

Environment Variables

Create a .env file for development:

# Development settings
NODE_ENV=development

Tech Stack

Configuration

LLM Models

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)

Embedding Models

Provider Models
OpenAI text-embedding-3-small, text-embedding-3-large
Cohere embed-english-v3.0, embed-multilingual-v3.0

Troubleshooting

Common Issues

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

Contributing

Contributions are welcome! Please read our Contributing Guide for details.

License

MIT License - see LICENSE for details.


Made with ❤️ by the DocuChat Team

About

Cross-Platform AI PDF Assistant - Chat with your PDF documents using AI

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors