VoxCode
Cursor Code Editor — a local voice AI coding workspace in
voice_agents/Cursor_code_editor.
VoxCode is a local voice AI coding workspace. You can talk to a codebase, ask for summaries, ask architecture questions, and optionally allow Cursor SDK to make file edits.
Features
- Voice codebase summaries: Ask for brief or deep summaries of a workspace or folder by voice.
- Architecture Q&A: Talk through how a codebase is structured and what components do.
- Optional file edits: Enable Cursor SDK edits for small, specific changes (read-only by default).
- Activity log: See Deepgram, Nebius, and Cursor events in the UI while a session runs.
Tech stack
- Node.js / TypeScript — Express + WebSocket backend, Vite + React client
- Deepgram — Voice Agent orchestration, STT, and TTS
- Nebius Token Factory — MiniMax reasoning, tool routing, and response polishing
- Cursor SDK — Codebase inspection and file edits in
CODE_WORKSPACE
The app uses three providers with clear responsibilities:
- Deepgram: microphone transcription, Voice Agent WebSocket orchestration, function-call flow, and text-to-speech audio.
- Nebius Token Factory / MiniMax: the Voice Agent reasoning model, tool routing, prompt shaping, chat titles, and response polishing.
- Cursor SDK: codebase inspection and file edits inside
CODE_WORKSPACE.
Architecture
flowchart LR
User[You speak] --> VoxCode[VoxCode local app]
VoxCode --> Deepgram[Deepgram voice]
VoxCode --> Nebius[Nebius MiniMax reasoning]
VoxCode --> Cursor[Cursor SDK coding agent]
Cursor --> Workspace[Your CODE_WORKSPACE files]
Deepgram --> User
Deepgram turns speech into a live voice session. Nebius decides whether the user is chatting, asking a code question, or requesting an edit, then polishes the response. Cursor SDK performs the actual code work against your local workspace.
Prerequisites
- Node.js 18 or newer
- A Cursor API key
- A Deepgram API key
- A Nebius Token Factory API key
- A local codebase you want VoxCode to inspect or edit
Quick Start
git clone https://github.com/Arindam200/awesome-ai-apps.git
cd awesome-ai-apps/voice_agents/Cursor_code_editor
npm install
cp .env.example .env
Open .env and fill in your keys:
CURSOR_API_KEY=your_cursor_key
DEEPGRAM_API_KEY=your_deepgram_key
NEBIUS_API_KEY=your_nebius_key
Set CODE_WORKSPACE to the project VoxCode should inspect:
CODE_WORKSPACE=/absolute/path/to/your/codebase
Then start the app:
npm run dev
Open:
http://127.0.0.1:8787
Click Start voice and try:
- “Are you listening?”
- “Summarize this workspace.”
- “Give me a deep summary of the server folder.”
- “What are Deepgram, Nebius, and Cursor doing in this app?”
Environment Variables
| Variable | Required | Default | Purpose |
|---|---|---|---|
CURSOR_API_KEY |
Yes | none | Authenticates Cursor SDK agent runs. |
DEEPGRAM_API_KEY |
Yes | none | Connects to Deepgram Voice Agent. |
NEBIUS_API_KEY |
Yes | none | Powers Deepgram’s BYO LLM think step and backend polishing. |
CODE_WORKSPACE |
No | parent folder of this app | Target codebase Cursor inspects or edits. Use an absolute path for clarity. |
PORT |
No | 8787 |
Local server port. |
CURSOR_MODEL |
No | composer-2 |
Cursor coding-agent model. |
DEEPGRAM_LISTEN_MODEL |
No | nova-3 |
Deepgram speech-to-text model. |
DEEPGRAM_SPEAK_MODEL |
No | aura-2-thalia-en |
Deepgram text-to-speech model. |
NEBIUS_ENDPOINT |
No | Token Factory chat completions URL | OpenAI-compatible Nebius endpoint used by Deepgram and backend calls. |
NEBIUS_MODEL |
No | MiniMaxAI/MiniMax-M2.5 |
Nebius model for voice reasoning and polishing. |
What To Put In CODE_WORKSPACE
Use the absolute path to the codebase you want VoxCode to operate on.
Examples:
CODE_WORKSPACE=/Users/alex/projects/my-next-app
CODE_WORKSPACE=/Users/alex/work/company-api
CODE_WORKSPACE=/Users/alex/Desktop/GitHub/Cursor SDK
If you leave it blank, VoxCode defaults to the parent folder of this app. That is useful for local demos, but an explicit path is safer for open-source use.
Scripts
npm run dev
Starts the local development server with Vite middleware and the Node WebSocket backend.
npm run typecheck
Runs TypeScript checks for the browser and server code.
npm run build
Builds the Vite client and compiles the server.
npm start
Runs the production server from dist. Run npm run build first.
File Edits
VoxCode is read-only by default.
To allow edits:
- Start the app.
- Check Allow file edits before starting voice.
- Ask for a small, specific change.
Cursor SDK is the only component that edits files. Nebius routes and polishes. Deepgram handles voice. The app does not use MiniMax as a direct filesystem editor.
Logs And Debugging
- In the UI, open Activity to see Deepgram, Nebius, and Cursor events.
- In the terminal running
npm run dev, watch backend logs and provider errors. - Visit
/api/healthto confirm configured workspace and provider model metadata. It never returns secret values.
Troubleshooting
UI does not update
Restart the dev server:
Ctrl+C
npm run dev
Then hard refresh the browser with Cmd+Shift+R on macOS or Ctrl+Shift+R on Windows/Linux.
Voice does not start
Check that .env contains:
CURSOR_API_KEY=
DEEPGRAM_API_KEY=
NEBIUS_API_KEY=
Also confirm your browser has microphone permission for 127.0.0.1.
Cursor edits the wrong folder
Set CODE_WORKSPACE to an absolute path and restart the server.
The app answers slowly
Code summaries and edits run a real coding agent against the workspace. Narrow the target, for example:
src/server
src/client/main.tsx
README.md
Use Brief depth for faster summaries.