Skip to content

acechalhoub/chunky

Repository files navigation

Chunky

Chunky app icon

Talk with your code.

Chunky is a .NET MAUI app with a Blazor UI for voice-first repository workflows. It connects to OpenAI Realtime, presents the experience through a TARS-inspired interface and personality, and can enrich prompts with live GitHub repository context such as recent commits, open pull requests, and pull request details.

Docs

What It Does

  • Runs as a cross-platform .NET MAUI application with a Blazor WebView UI.
  • Uses OpenAI Realtime as the only live voice backend.
  • Lets you start a live conversation or send typed prompts from the home screen.
  • Wraps the conversation experience in a TARS-inspired tone and industrial UI language.
  • Pulls live GitHub repository context into prompts when the request looks like a PR, review, or commit question.
  • Exposes GitHub tools to the OpenAI realtime agent so the model can fetch repository facts instead of guessing.
  • Monitors GitHub pull requests in the background and raises native notifications when enabled.

Overview

Chunky sits between the developer, the OpenAI realtime agent, and GitHub repository data. The app handles the conversation experience, forwards requests to the realtime backend, and pulls in live repository context when needed.

flowchart TD
		U[Developer] --> C[Chunky app]
		C --> A[AI voice agent<br>OpenAI Realtime]
		C --> G[GitHub repository context]
		G --> GH[GitHub API]
		C --> N[Optional PR notifications]
		N --> U
Loading

Main Flows

Voice conversation

  1. The user opens the home page and starts a session.
  2. The UI calls IVoiceAgentService.
  3. VoiceAgentService connects to OpenAI Realtime.
  4. Audio and tool calls are handled locally in the app.
  5. Runtime state updates flow back to the UI for connection status, transcripts, and responses.

GitHub-aware answers

  1. The user asks about a PR, review, repo, or commit.
  2. VoiceAgentService detects a GitHub-oriented request.
  3. GitHubRepositoryService fetches live repository summary, commits, and PR data.
  4. Chunky prepends that context to the user prompt, or exposes tools for the realtime agent to call directly.
  5. The agent answers using current repository data instead of static model knowledge.

Pull request notifications

  1. The user enables GitHub repository monitoring in Settings.
  2. GitHubPullRequestMonitor runs as a hosted background service.
  3. It polls the configured repository for new pull requests.
  4. New PRs are surfaced through PlatformNotificationService.

Project Structure

Chunky/
	Components/          Blazor pages and layout
	Platforms/           Android, iOS, MacCatalyst, Windows platform heads
	Services/            MAUI app services, OpenAI voice runtime, and platform integrations
	Resources/           Fonts, images, splash screen, raw assets
	wwwroot/             Blazor static assets

Chunky.Core/
	Models/              Shared agent and GitHub models
	Services/            Shared GitHub logic, monitoring, tool dispatch

Configuration

Chunky reads settings from:

  • Chunky/appsettings.json
  • Chunky/appsettings.Local.json if present
  • MAUI Preferences for user-saved settings from the UI

Voice configuration

OpenAI Realtime configuration requires:

  • API key
  • Realtime model
  • Voice
  • Optional custom instructions

GitHub integration

GitHub settings support:

  • API base URL for GitHub.com or GitHub Enterprise
  • Owner or organization
  • Repository name
  • Preferred branch override
  • Optional personal access token
  • Background PR notifications and polling interval

Getting Started

Prerequisites

  • .NET SDK 10.0.104 as pinned in global.json
  • .NET MAUI workload
  • A supported target platform toolchain
  • OpenAI Realtime API key

Restore and build

dotnet workload install maui
dotnet restore Chunky.slnx
dotnet build Chunky.slnx

Run on Windows

dotnet build Chunky/Chunky.csproj -t:Run -f net10.0-windows10.0.19041.0

Current Architecture Notes

  • The Blazor home page is the conversation surface.
  • The settings page manages OpenAI realtime and GitHub repository configuration.
  • The voice runtime is single-provider: OpenAI Realtime only.
  • OpenAI Realtime can call GitHub tools during a live session.
  • Repository context is injected only when the prompt analysis indicates the user is asking about GitHub state.
  • The app voice and visual presentation are both intentionally modeled on TARS.

Repository Goal

Chunky is built around a simple idea: use voice as a practical interface for day-to-day repository awareness, especially around pull requests, commits, and next actions, without diluting the product behind multiple provider paths or a generic assistant persona.