DevWhisper is a voice-first AI agent built for developers. Instead of stopping to search through files or documentation, you just ask out loud — and it answers based on your actual codebase.
Developers lose focus constantly. Switching between your editor, a browser, Stack Overflow, and documentation breaks the flow of thinking. Most AI tools still require you to type, copy-paste code, and wait.
DevWhisper lets you stay in flow. Ask a question with your voice, get an answer in seconds, and keep coding.
🎤 You ask a question about your code
🔍 It searches your actual codebase semantically
🔊 It responds in plain spoken English, like a senior dev sitting next to you
Example questions that work:
-
"What does the preprocess function do?"
-
"Where is the model saved after training?"
-
"How do I debug a KeyError in the pipeline?"
Developer speaks
↓
Vapi — Speech to Text
↓
FastAPI Webhook Server
↓
Qdrant Vector Search
↓
Groq LLaMA 3.3 70B
↓
FastAPI sends answer back
↓
Vapi — Text to Speech
↓
Developer hears the response
---
-
🎙️ Vapi — handles voice input and output
-
🗄️ Qdrant — stores and searches code as vectors
-
🤖 Groq with LLaMA 3.3 70B — generates the response
-
⚡ FastAPI — receives webhooks from Vapi and orchestrates everything
-
Clone this repo
-
Install dependencies:
pip install -r requirements.txt -
Create a
.envfile in the root folder:
QDRANT_URL=your_qdrant_cluster_url
QDRANT_API_KEY=your_qdrant_api_key
GROQ_API_KEY=your_groq_api_key
-
Add your Python files to the
sample\_codebasefolder -
Index your codebase:
python indexer.py -
Start the server:
uvicorn main:app --reload --port 8000 -
Expose publicly:
ngrok http 8000 -
Update Vapi tool Server URL with your ngrok URL plus
/webhook
-
main.py— FastAPI webhook server, handles all Vapi events -
indexer.py— chunks your code files and uploads them to Qdrant -
retriever.py— takes a query and finds the most relevant code chunks -
llm.py— sends the query and context to Groq and returns the answer -
sample\_codebase/— put your own Python project files here
-
The ngrok URL changes every time you restart it. Remember to update the Server URL in your Vapi tool settings each time.
-
The
.envfile is not included in this repo for security. You need to create your own with the keys above.
Aharshi Sinha — CSE AIML