image.png

Series: AgentZero Lite — Part 11. The build report for this work is Part 10 — Shipping Voice Output to AIMODE (the engineering story). This part is a different angle on the same commit: the user-facing demo. It works. Here's what that looks like and why.


TL;DR


The show, before we open the box

Skip this section if you want the implementation. Read it if you want to know what the user actually does.

What you see on screen

The AgentZero Lite WPF app has two halves: a multi-terminal area on the left, and the AgentBot chat panel on the right. The AgentBot has three modes — Chat (your typing goes to the active terminal), Key (each key goes to the active terminal in real time), and AI (the bot uses tools to talk to whichever AI agent is running in a terminal).

For voice work, AI mode is the one. Here's a faithful ASCII redraw of the live screen during a voice turn:

┌─────────────────────────────────────────────────────────────────────────────────┐
│ AgentZero Lite                                                       [_][□][X]  │
├──────────────────────────────────────────┬──────────────────────────────────────┤
│  [CMD] [EDIT] [Claude•] [Codex] [+]      │  ◂ AgentBot                [ AI ▼ ]  │
│ ─────────────────────────────────────    │ ──────────────────────────────────── │
│                                          │  ▸ You                               │
│  D:\Code\AI\AgentZeroLite>               │    "터미널 작업 요약해 줘"            │
│  $ git log --oneline -5                  │                                      │
│  988b4cd feat(voice): AI-mode TTS …      │  ◂ Gemma                             │
│  c17717e chore: bump version to 0.2.1    │    "활성 Claude 터미널의 최근 5개    │
│  2ae8b75 fix(ui/dock): break floating-…  │     커밋은 voice / dock / version 세 │
│  5622080 fix(ui/dock): don't auto-grab…  │     영역에 집중되어 있고, 가장 최근  │
│  95c6227 DOCUPDATE                       │     변경은 AI 모드 TTS 출력입니다."  │
│                                          │                                      │
│  Claude>                                 │  ✓ done · 3127ms · 1 turn            │
│                                          │                                      │
│                                          │  ┌─────────────────────────────────┐ │
│                                          │  │ 🎙 Listening · Whisper small    │ │
│                                          │  │  ▆▆▅▂▁▁▁▂▃▅▆▆▇  [🔇] [🔊 75%]  │ │
│                                          │  └─────────────────────────────────┘ │
└──────────────────────────────────────────┴──────────────────────────────────────┘
                                                                ↓
                                     🔊 (speakers play the Gemma reply,
                                          mic auto-mutes for the duration)

The asterisk on Claude• means that's the active terminal — the one the bot will read from / write to when its tools fire. The little waveform strip at the bottom of the AgentBot panel is live audio level; the icons next to it are mute toggle and system mic volume.

What you say, and what happens

A working turn looks like this from the user's seat:

  1. You speak. "터미널 작업 요약해 줘." (Or in English: "Summarise what the terminal is doing.")
  2. The mic indicator pulses, then settles. The bot transcribes locally — no spinner waiting on a cloud call.