A voice-powered AI assistant built with Gemini 2.0, featuring real-time voice conversations, function calling, and integrations with Spotify, weather, web search, and email.
- 🎤 Voice Conversations - Real-time audio chat with Gemini 2.0
- 🎵 Spotify Control - Play, pause, skip tracks with voice commands
- 🌤️ Weather Updates - Get current weather information
- 🔍 Web Search - Search the web through voice
- 📧 Email Sending - Send emails via voice commands
- 🎨 Animated UI - Ferro fluid visualization that reacts to audio
- Frontend: React + TypeScript + Vite + Tailwind CSS
- Backend: Node.js + Express
- AI: Google Gemini 2.0 Flash (Multimodal Live API)
- Audio: LiveKit for WebRTC
- Integrations: Spotify Web API, OpenWeather API, Brave Search API
- Node.js 18+
- Gemini API key (Get it here)
- LiveKit account (Sign up)
- Spotify Developer account (optional)
- OpenWeather API key (optional)
- Brave Search API key (optional)
git clone https://github.com/parth2809pb/MARS.git
cd MARSnpm installCreate .env in the root directory:
VITE_GEMINI_API_KEY=your_gemini_api_key
VITE_LIVEKIT_URL=your_livekit_url
VITE_SERVER_URL=http://localhost:3000
VITE_SPOTIFY_CLIENT_ID=your_spotify_client_idCreate server/.env:
LIVEKIT_API_KEY=your_livekit_api_key
LIVEKIT_API_SECRET=your_livekit_api_secret
SPOTIFY_CLIENT_SECRET=your_spotify_client_secret
PORT=3000cd server
node index.jsnpm run devVisit http://localhost:5173 and complete the onboarding to add your API keys.
git add .
git commit -m "Initial commit"
git push origin main- Go to vercel.com and sign in with GitHub
- Click "Add New Project"
- Import your repository
- Add environment variables:
VITE_GEMINI_API_KEYVITE_LIVEKIT_URLLIVEKIT_API_KEYLIVEKIT_API_SECRETVITE_SPOTIFY_CLIENT_IDSPOTIFY_CLIENT_SECRETVITE_SERVER_URL(use your Vercel URL:https://your-app.vercel.app)
- Click "Deploy"
If using Spotify integration:
- Go to Spotify Developer Dashboard
- Edit your app
- Add redirect URI:
https://your-app.vercel.app/settings
After deployment, visit the Settings page to configure:
- Gemini API Key - Required for AI conversations
- LiveKit Credentials - Required for voice chat
- Weather API Key - Optional, for weather features
- Spotify - Optional, connect for music control
- SMTP Settings - Optional, for email sending
- Click "Start Conversation"
- Allow microphone access
- Speak naturally to M.A.R.S.
- "What's the weather like?"
- "Play some music on Spotify"
- "Search for the latest news"
- "What's playing right now?"
- "Pause the music"
MARS/
├── src/
│ ├── components/ # UI components
│ ├── pages/ # App pages
│ ├── services/ # API services (Gemini, LiveKit)
│ ├── tools/ # Function calling tools
│ └── state/ # State management
├── server/ # Backend Express server
└── public/ # Static assets
MIT
For issues or questions, please open an issue on GitHub.