Inspiration

Developers spend hours daily parsing through GitHub repositories, pull requests, and code statistics. While the command-line and web interfaces are powerful, sometimes you just need quick answers or visualizations while your hands are busy coding. We wanted to bridge the gap between natural human voice and complex Git data, creating an assistant that feels like a true pair-programming companion rather than just another CLI tool.

What it does

Jengu is an intelligent, voice-first GitHub assistant that synchronizes audio dialogue with real-time UI data visualizations.

You simply ask Jengu a question like, "Show me the language breakdown for the React repository," or "List the open pull requests for Linux." Jengu will understand your intent, autonomously query the GitHub API, speak a concise summary back to you, and instantaneously render interactive graphics (like bar charts or data tables) right on your screen.

How we built it

We utilized a combination of modern web architecture and cutting-edge LLMs:

  1. Frontend: Next.js (App Router) with Tailwind CSS for styling and Recharts for dynamic data visualization.
  2. Voice Interface: We integrated the Vapi Web SDK for low-latency, real-time voice transcription and text-to-speech synthesis.
  3. AI Brain: We built a custom backend Node.js endpoint acting as a LangGraph agent. It uses the Llama 3.3 70b Instruct model hosted on DigitalOcean's Serverless Inference platform.
  4. Data Sync: The LLM determines when to call specific tools (like fetch_open_prs using Octokit). It generates two distinct payloads: a short spoken summary sent to Vapi, and a rich JSON ui_payload written to a fast local store that the Next.js frontend instantly polls and renders as responsive React components.
  5. Authentication: Secure GitHub OAuth via NextAuth.js allows users to securely pass their Personal Access Tokens to fetch private repository data.

Challenges we ran into

One of the hardest challenges was synchronizing the audio response with the visual frontend updates. Initially, we tried embedding custom JSON markers directly within the text string for Vapi to read, but this caused Vapi's text-to-speech engine to attempt to pronounce the JSON payload or crash.

We solved this by implementing an architectural split: "The Agentic UI." The LangGraph backend silently writes the heavy JSON chart data directly to the server state, while stripping the voice response down to clean text. The frontend then polls the state and renders the charts perfectly in sync with the audio.

Accomplishments that we're proud of

We're incredibly proud of the resilience and latency of the system. The Llama 3.3 model efficiently handles phonetic transcriptions (knowing that hearing "view" or "vue" maps to the vuejs/core repository). Furthermore, our agentic tools are bulletproof—if you ask for a non-existent user or hit a GitHub rate limit, LangGraph catches the 404 error and politely apologizes via voice, rather than crashing the React application with malformed JSON.

What we learned

We learned a massive amount about LangGraph workflow orchestration, specifically how to design rigid JSON tool schemas that LLMs can reliably call without hallucinating parameters. We also gained deep experience in real-time WebRTC audio streaming through Vapi.

What's next for Jengu

In the future, we want to expand Jengu's toolset immensely. We envision giving Jengu the ability to actually merge pull requests, read specific code file contents, and even run internal CI/CD triggers purely through voice commands.


Built With

Share this project:

Updates