"Capture fleeting thoughts before they vanish"
This repository hosts the source code for Wisp, our final group project for SE 101 in the Software Engineering program at the University of Waterloo.
Originally developed on GitLab, we have ported it to GitHub to share our work with the community. Wisp was designed to eliminate the friction of capturing ideas on mobile devices by leveraging voice-first interaction and advanced AI agents.
Wisp is a mobile-first application that enables users to capture, refine, and organize ideas in under 5 seconds using only their voice. Unlike traditional voice recorders, Wisp uses Real-time AI to transcribe speech and intelligently parse it into structured tasks—automatically extracting titles, priorities, deadlines, and context—before syncing them directly to your productivity tools (like Notion).
- ⚡ Instant Voice Capture: Launch and record in under 2 seconds.
- 🗣️ Real-time Transcription: See your words appear instantly as you speak via WebSocket streaming.
- 🧠 AI-Powered Parsing: Automatically converts "Remind me to call Mom tomorrow" into a structured task:
- Title: Call Mom
- Deadline: Tomorrow, 9:00 AM
- Priority: Medium
- 🔄 Multi-Interpretation: If your intent is ambiguous, the AI generates multiple confidence-weighted interpretations for you to choose from.
- 🔗 Notion Integration: Seamlessly syncs parsed Wisps to your Notion databases using the Model Context Protocol (MCP).
- 📱 Modern Mobile UI: Built with React Native, Expo, and NativeWind for a polished iOS/Android experience.
| Voice Capture | Review & Refine |
|---|---|
![]() |
![]() |
- Framework: React Native (Expo SDK 52)
- Styling: NativeWind (Tailwind CSS)
- Audio: Expo Audio / WebSocket Streaming
- State: React Context / Hooks
- Framework: FastAPI (Python 3.11+)
- AI Service: OpenAI Realtime API / Google Gemini Live
- Database: Supabase (PostgreSQL)
- Integration: Model Context Protocol (MCP) SDK
Wisp follows a modern service-oriented architecture:
- Mobile Client: Handles audio recording, chunking, and real-time UI updates.
- Backend Gateway: A FastAPI server that orchestrates WebSocket streams and manages state.
- AI Service Layer: Processes raw audio into transcripts and structured JSON objects.
- MCP Layer: Acts as a bridge to external productivity platforms (Notion, Jira, etc.).
For a deep dive into the system design, check out our Domain Model and Architecture Docs.
To run Wisp locally, please follow the detailed Developer Setup Guide.
1. Backend Setup
cd Project/src/backend
cp .env.example .env
# Add your OPENAI_API_KEY and SUPABASE credentials
docker-compose up -d2. Frontend Setup
cd Project/src/frontend
bun install
bun start
# Scan the QR code with Expo Go on your phoneWe have included extensive documentation from our development process in the Project/docs/ directory:
- Project Charter: Vision, goals, and scope.
- User Manual: Detailed guide on how to use the app.
- Test Plan & Report: Details on our testing strategy (achieving >70% backend coverage).
- Sprint Retrospectives: A log of our agile development cycle.
University of Waterloo - SE 101 - Team 2
- William Yang: @Tankman61
- Kai Zhang: @Scr4tch587
- Arjun Virk: @virkvarjun
- John Petruzziello: @john-jpet
- Gordon Zeng: @pasward


