CodeDuet
This project solves the problem of needing an always-available pair-programming partner by giving you a real-time voice assistant for coding challenges.
Core trick
Detects stalls and repeated test failures from sandboxed run results and triggers targeted voice hints during the session.
Description
This project solves the problem of needing an always-available pair-programming partner by giving you a real-time voice assistant for coding challenges. It supports both autonomous execution (bot_drives) and coaching mode (human_drives), with struggle detection that triggers targeted hints when you stall, repeat failures, or ask for help. It also solves progress tracking by combining sandboxed test runs, level-based challenge progression, and a Notion session log of what happened and why.
README excerpt
# Pair Programming Voice Bot
A real-time voice-powered pair programming assistant that coaches developers through coding challenges. Built with **Cartesia Line SDK** for low-latency voice, **Anthropic Claude** for reasoning, **Browserbase** for live concept lookups, and **Notion** for session journaling.
The bot operates in two collaboration modes — **Bot Drives** (the AI writes code and narrates its reasoning) and **Human Drives** (the developer codes while the AI watches, detects struggles, and offers targeted hints).
## Architecture
```
┌─────────────────────────────────────────────────────────┐
│ React Frontend │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌─────────┐ │
│ │ Monaco │ │ Voice │ │ TTS │ │ Push │ │
│ │ Editor │ │ Orb │ │ Player │ │ to Talk │ │
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ └────┬────┘ │
│ │ │ │ │ │
└───────┼──────────────┼─────────────┼──────────────┼──────┘
│ REST │ REST │ Audio │ STT
▼ ▼ ▼ ▼
┌───────────────────────────────────────────────────────────┐
│ FastAPI Backend (:8000) │
│ │
│ /api/execute ─── Docker sandbox ─── Test runner │
│ /api/voice/* ── Voice session store │
│ /api/tts ────── Cartesia TTS proxy