Inspiration
Many developers still prefer writing the code themselves, with an assistant that helps at the right moments instead of taking over. We built RubberDuck to feel like a “pair partner”: proactive when you’re stuck, and lightweight when you’re in flow. The idea is to combine agents (tests/refactors/completions) with a human-friendly coaching layer that nudges you back on track.
What it does
RubberDuck Live is a local-first IntelliJ plugin + backend + dashboard that supports many workflows: tests, refactors, code edits, "unstuck" questions, etc. The plugin captures lightweight IDE signals (edits, undo/redo, test results, file switching, caret dwell, inspections) and streams them in real time to the backend. The dashboard visualizes the session as live metrics (anti-patterns, stuck timeline, flow/engagement signals) while the plugin surfaces interventions inside the IDE.
How we built it
We implemented an IntelliJ Platform plugin in Kotlin that listens to editor and IDE events, normalizes them into a shared DeveloperEvent schema, and redacts file paths before sending anything out. A FastAPI backend receives HTTP requests for AI features and a WebSocket stream for events, then broadcasts session updates to a Next.js dashboard. The backend can run in a deterministic mock mode for demos, or use real LLM providers (OpenAI / OpenAI-compatible / Ollama) via a single dispatcher with fallback.
What is unique
Instead of guessing from code alone, RubberDuck builds a live behavioral trace directly from the IDE: edit density, undo bursts, repeated failing tests, rapid file switching, lingering on error markers, and inspection spikes. Those signals are used in two places: (1) local stuck-detection rules that trigger timely interventions, and (2) a real-time event stream that powers the dashboard’s "wellness" and anti-pattern views. The backend doesn’t secretly infer "stuck" - it reacts to explicit events from the plugin, keeping the system transparent, local-first, and privacy-respecting.
What's next for RubberDuck
- Improve personalization (per-user thresholds, fewer false positives) and expand stuck patterns beyond the current rules.
- Grow the dashboard into a clearer coaching tool with tighter correlations between events, interventions, and outcomes.
- Use the collected data in other ways to improve coding experience.
Log in or sign up for Devpost to join the conversation.