A voice-controlled task manager built with React + FastAPI + OpenAI Realtime API.
- Create, read, update, and delete tasks entirely through voice
- Real-time speech-to-text and text-to-speech
- Context-aware AI conversations with interruption support
- Confirmation before destructive actions
- SQLite database for task storage
- Frontend: React 19 + Vite + Web Audio API
- Backend: FastAPI + WebSockets
- AI: OpenAI Realtime API (
gpt-realtime) - Database: SQLite + SQLAlchemy
git clone https://github.com/Eyyub01/voice-task-manager.git
cd voice-task-managercp .env.example .envAdd your OpenAI API key to .env:
OPENAI_API_KEY=sk-proj-...
pip install -r requirements.txt
uvicorn app.main:app --host 0.0.0.0 --port 8000cd frontend
npm install
npm run devOpen http://localhost:5173, click the mic, and start speaking.
- Go to render.com and create a new Web Service
- Connect your GitHub repo
- Set Build Command:
pip install -r requirements.txt - Set Start Command:
uvicorn app.main:app --host 0.0.0.0 --port $PORT - Add environment variable:
OPENAI_API_KEY= your key - Deploy — backend URL:
https://voice-task-manager-mb76.onrender.com
- Go to vercel.com and import your GitHub repo
- Set Root Directory to
frontend - Add environment variable:
VITE_API_URL=https://voice-task-manager-mb76.onrender.com - Deploy — frontend URL:
https://voice-task-manager-4nla.vercel.app
| Say | Result |
|---|---|
| "Create a task for team sync tomorrow at 10 AM" | Task created |
| "What are my tasks for today?" | Conversational summary |
| "Change the LinkedIn task to 6 PM" | Task updated |
| "Delete the 10 AM task" | Asks for confirmation first |
| "Create three tasks: gym at 7, sync at 9, LinkedIn at 11" | All three created |
https://voice-task-manager-4nla.vercel.app
Note: The backend runs on Render's free tier and may take ~50 seconds to wake up on first visit.