Private. Local. Fast.
A fully local AI assistant that runs on your machine. No cloud, no data collection, no subscriptions. Your conversations stay yours.
- All inference runs locally on your hardware
- No data ever leaves your machine
- No API keys or cloud accounts required
- Powered by llama.cpp for efficient inference
- Supports GGUF quantized models
- Works on Apple Silicon, NVIDIA GPUs, or CPU
- Built-in web search (model decides when to search)
- Deep search mode for comprehensive research
- Automatic context injection
- Upload PDFs and text files
- Chat with your documents
- Clean, dark-themed UI
- Chat history with session management
- System prompt customization
- Browse models directly from Hugging Face
- One-click download of any GGUF model
- Automatic model management
- No external tools needed
- Check if installed:
node --version
- Install:
- Download Node.js (LTS recommended)
- Or use a version manager like
nvm(Mac/Linux) ornvm-windows.
- Check if installed:
python --version # or python3 --version - Install:
- Download Python
- Windows Users: Make sure to check "Add Python to PATH" during installation.
- macOS: Apple Silicon (M1/M2/M3) works out of the box.
- Windows/Linux: NVIDIA GPU with CUDA drivers installed.
-
Clone the repository
git clone https://github.com/ArjunDeshwal/cognitoai.git cd cognitoai -
Set up Python backend
macOS/Linux:
python3 -m venv venv source venv/bin/activate pip install -r backend/requirements.txtWindows:
python -m venv venv venv\Scripts\activate pip install -r backend/requirements.txt
-
Install frontend dependencies
cd app npm install -
Run the app
npm run electron:dev
-
Download a model
- Click "⬇️ Models" in the header
- Browse and download a GGUF model
- Select it to start chatting!
cognito/
├── app/ # Electron + React frontend
│ ├── src/
│ │ ├── App.tsx # Main React component
│ │ ├── App.css # Styles
│ │ ├── services/api.ts # API client
│ │ └── components/ # UI components
│ ├── electron/
│ │ ├── main.cjs # Electron main process
│ │ └── preload.cjs # Preload script
│ └── package.json
├── backend/
│ ├── server.py # FastAPI server
│ ├── document_rag.py # Document processing
│ └── requirements.txt
├── tools/
│ └── info/web_search.py # Web search tool
└── README.md
Open source on GitHub ·
- Fork the repository
- Create a feature branch
git checkout -b feature/amazing-feature
- Make your changes
- Test thoroughly
- Commit with clear messages
git commit -m "feat: add amazing feature" - Push and create a Pull Request
- 🐛 Bug Fixes - Found a bug? We'd love a fix!
- ✨ New Features - Check issues for feature requests
- 📖 Documentation - Improve docs, add examples
- 🎨 UI/UX - Enhance the interface
- ⚡ Performance - Optimize inference, reduce memory
- 🧪 Tests - Add test coverage
- Frontend: TypeScript, React hooks, CSS modules
- Backend: Python 3.10+, FastAPI, type hints
- Commits: Use Conventional Commits
When reporting bugs, please include:
- OS and version
- Node.js and Python versions
- Steps to reproduce
- Error messages/logs
MIT License - see LICENSE for details.
- llama.cpp - Fast LLM inference
- Hugging Face - Model hosting
Built with ❤️ for privacy
