A native desktop AI chat application with multi-provider support and MCP integration. Built with Tauri v2, React 19, and TypeScript.
- Google Gemini - 1.5 Flash/Pro, 2.0 Flash, 2.5 Flash/Pro, 3.0 Pro & Deep Think
- OpenAI - GPT-4o, GPT-4o Mini, GPT-4 Turbo, DALL-E 3
- Groq - Llama 3.3 70B, Llama 3.1 8B, Mixtral 8x7B, Llama 3.2 Vision
- πΈ Vision - Analyze images with vision-capable models
- π€ Audio - Voice input with audio transcription
- π¨ Image Generation - Create images with DALL-E 3 and Gemini
- Full Model Context Protocol support
- Connect to MCP servers via stdio or HTTP/SSE transports
- Execute tools directly from chat conversations
- β¨οΈ Command Palette - Quick access to all actions (Cmd+K)
- π¬ Conversation History - Persistent chat history with search
- π€ Export - Save conversations as Markdown or JSON
- π¨ Themes - Light, dark, and system themes
- π Auto Updates - Built-in updater with GitHub releases
# Clone the repository
git clone https://github.com/navjotdhanawat/nexus.git
cd nexus
# Install dependencies
npm install
# Start development server
npm run tauri:dev# Build the application
npm run tauri:build
# The .app and .dmg will be in src-tauri/target/release/bundle/- Launch the app and open Preferences (Cmd+,)
- Add your API keys in the API Keys section:
- Google AI API key for Gemini models
- OpenAI API key for GPT and DALL-E
- Groq API key for Llama and Mixtral
- Start chatting! Select a model and send your first message
| Shortcut | Action |
|---|---|
Cmd+K |
Open Command Palette |
Cmd+, |
Open Preferences |
Cmd+1 |
Toggle Left Sidebar |
Cmd+2 |
Toggle Right Sidebar |
Cmd+N |
New Conversation |
Enter |
Send Message |
Shift+Enter |
New Line |
Configure MCP servers in Preferences β MCP Servers:
{
"name": "My MCP Server",
"transport": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/directory"]
}For development, you can set API keys via environment variables:
VITE_GOOGLE_API_KEY=your-google-api-key
VITE_OPENAI_API_KEY=your-openai-api-key
VITE_GROQ_API_KEY=your-groq-api-keyβββ src/ # React frontend
β βββ components/ # UI components
β β βββ chat/ # Chat interface components
β β βββ command-palette/ # Command palette
β β βββ layout/ # Main window layout
β β βββ preferences/ # Settings UI
β β βββ ui/ # Base shadcn/ui components
β βββ hooks/ # Custom React hooks
β βββ lib/ # Utilities and services
β βββ services/ # LLM and MCP services
β βββ store/ # Zustand state stores
β βββ types/ # TypeScript definitions
βββ src-tauri/ # Rust backend
β βββ src/ # Tauri commands and logic
β βββ capabilities/ # Tauri permissions
βββ docs/ # Documentation
- Frontend: React 19, TypeScript, Tailwind CSS v4, shadcn/ui v4
- State: Zustand v5, TanStack Query v5
- Backend: Tauri v2, Rust
- Build: Vite v7, Vitest v4
- Generate app icons - Replace placeholder icons with branded assets
- Generate updater keys - Run
tauri signer generatefor auto-updates - Code signing - Set up Apple Developer certificate for distribution
- Test on macOS - Verify on Intel and Apple Silicon
Contributions are welcome! Please read CONTRIBUTING.md for guidelines.
This project is licensed under the MIT License.
- Tauri - For the amazing desktop framework
- shadcn/ui - For beautiful UI components
- Model Context Protocol - For the MCP specification
Made with β€οΈ by Navjot Dhanawat
