A simple, standalone macOS chat application built with Tauri 2.0, React 19.1.0, and Ollama integration for local AI conversations.
- 🤖 Local AI Chat: Integrates with Ollama's
gemma3n:latestmodel - 💾 Offline Storage: SQLite database for chat history
- 🔄 Real-time Status: Shows Ollama connection status
- 📱 Clean UI: Built with React and Tailwind CSS
- 🚀 Fast & Lightweight: Native Tauri app (~10-20MB)
-
Ollama: Install Ollama and download the gemma3n model
# Install Ollama (if not already installed) curl -fsSL https://ollama.ai/install.sh | sh # Download and run the gemma3n model ollama run gemma3n:latest
-
Node.js & pnpm: Install Node.js (18+) and pnpm
# Install pnpm if not already installed npm install -g pnpm -
Rust: Install Rust (required for Tauri)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
-
Clone and navigate to the project:
cd tauri-chat-app -
Install dependencies:
pnpm install
-
Start Ollama server (in a separate terminal):
ollama run gemma3n:latest
Keep this terminal open while using the app.
-
Run the development server:
pnpm tauri:dev
# Build the app
pnpm tauri:build
# The built app will be in src-tauri/target/release/bundle/- Start Ollama: Run
ollama run gemma3n:latestin a terminal - Launch the app: Run
pnpm tauri:dev - Create conversation: Click "New Conversation" in the sidebar
- Start chatting: Type your message and press Enter or click Send
- View history: Click on previous conversations in the sidebar
tauri-chat-app/
├── src/ # React frontend
│ ├── components/ # React components
│ │ ├── ChatWindow.tsx # Chat interface
│ │ ├── HistorySidebar.tsx # Conversation history
│ │ └── StatusBar.tsx # Ollama status indicator
│ ├── App.tsx # Main app component
│ ├── types.ts # TypeScript interfaces
│ └── main.tsx # Entry point
├── src-tauri/ # Rust backend
│ ├── src/
│ │ ├── main.rs # Tauri commands
│ │ ├── db.rs # SQLite operations
│ │ └── ollama.rs # Ollama API integration
│ └── Cargo.toml # Rust dependencies
├── package.json # Node.js dependencies
└── README.md # This file
The SQLite database is stored at:
- macOS:
~/Library/Application Support/com.example.chat/chat.db
- Make sure you've run
ollama run gemma3n:latestin a terminal - Check that Ollama is accessible at
http://localhost:11434 - Verify the gemma3n model is downloaded:
ollama list
- Ensure Rust is installed:
rustc --version - Update Rust:
rustup update - Clear cache:
pnpm clean(if available) or deletenode_modulesand reinstall
- Check file permissions in the Application Support directory
- The app will create the database automatically on first run
- Frontend: React 19.1.0 + TypeScript + Tailwind CSS
- Backend: Tauri 2.0 + Rust
- AI: Ollama 0.9.5 with gemma3n:latest (4B Q4_0 model)
- Database: SQLite with rusqlite
- Build Tool: Vite
- Package Manager: pnpm
# Install dependencies
pnpm install
# Start development server
pnpm tauri:dev
# Build for production
pnpm tauri:build
# Type checking
pnpm tsc --noEmitThis project is for testing and educational purposes.