A privacy-first, cross-platform desktop application for analyzing local CSV/XLSX files using natural language queries.
- Privacy-First: All data processing happens locally on your machine
- Natural Language Queries: Ask questions about your data in plain English
- AI-Powered Schema Inference: Automatically understands your data structure
- Cross-Platform: Works on Windows, macOS, and Linux
- Local Processing: No data ever leaves your computer
- Backend: Python with FastAPI, DuckDB, and local AI models
- Frontend: Electron + React for cross-platform desktop experience
- AI Engine: Local DistilBERT and NL2SQL models via ONNX Runtime
- Python 3.10 or higher
- Node.js 18 or higher
- npm or yarn package manager
- Clone and setup backend:
cd backend
pip install -e .
python main.py- Setup frontend (in a new terminal):
cd frontend
npm install
npm run electron:devThe application will start with the backend running on port 8000 and the Electron app launching automatically.
cd backend
pip install pyinstaller
python build.pyThis creates a standalone executable in backend/dist/.
cd frontend
npm install
npm run build
npm run electron:buildThis creates platform-specific installers in frontend/dist/.
For a complete build of both components:
# Build backend
cd backend
python build.py
# Build frontend with backend included
cd ../frontend
npm run distdataquery-ai/
├── backend/ # Python FastAPI backend
│ ├── main.py # FastAPI application
│ ├── data_manager.py # Data processing with DuckDB
│ ├── ai_engine.py # AI-powered NL2SQL engine
│ ├── build.py # Build automation
│ └── pyproject.toml # Python dependencies
├── frontend/ # Electron + React frontend
│ ├── src/ # React application source
│ ├── electron/ # Electron main process
│ ├── package.json # Node.js dependencies
│ └── vite.config.js # Vite configuration
└── README.md # This file
- Launch the application
- Complete the onboarding flow - system checks and privacy settings
- Upload your data - drag & drop CSV or Excel files
- Review the schema - AI-inferred data types and structure
- Query your data - ask questions in natural language
- "Show all data"
- "What is the average sales amount?"
- "Count the number of customers by region"
- "Show the top 10 products by revenue"
cd backend
pip install -e .
python main.pyAPI documentation available at http://127.0.0.1:8000/docs
cd frontend
npm run dev # Start Vite dev server
npm run electron # Start Electron (in another terminal)# Backend tests
cd backend
pytest
# Frontend tests
cd frontend
npm test- Creates NSIS installer (
.exe) - Includes auto-updater support
- Creates DMG package (
.dmg) - Code signing supported
- Creates AppImage (
.AppImage) - Portable, no installation required
- Local Processing: All data analysis happens on your machine
- No External Calls: AI models run locally, no cloud dependencies
- Session Isolation: Each analysis session is completely isolated
- Automatic Cleanup: Temporary files are automatically removed
- No Telemetry: Optional anonymous usage statistics only
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
Backend won't start:
- Check Python version (3.10+ required)
- Install dependencies:
pip install -e . - Check port 8000 is available
Frontend build fails:
- Update Node.js to version 18+
- Clear node_modules:
rm -rf node_modules && npm install - Check Electron version compatibility
Large executable size:
- This is normal for bundled Python applications
- Backend executable includes Python runtime and all dependencies
- Typical size: 150-300MB depending on platform
- Check the Issues page
- Review the backend and frontend README files
- Enable debug logging in development mode
MIT License - see LICENSE file for details.
- Built with FastAPI, DuckDB, React, and Electron
- AI capabilities powered by Hugging Face Transformers
- UI components inspired by modern design systems