Skip to content

Epic: WinCMux — voice-controlled multi-agent terminal multiplexer for Windows #1108

Closed

Description

@vejadu

Overview

Build WinCMux — a Windows-native multiplexer for GitHub Copilot coding agent sessions with voice control, notification feed, and Teams chat integration. Think tmux-meets-voice-assistant for AI-assisted development workflows.


Problem Statement

When running multiple GitHub Copilot coding agents simultaneously, there is no unified way to:

  • See what all agents are doing at a glance
  • Switch between agent sessions hands-free
  • Dictate instructions/context to a specific agent via voice
  • Get notified when an agent needs input or completes a task
  • Manage incoming Teams messages and respond without leaving the dev context

Goals

  • Multi-agent workspace — run N GitHub Copilot coding agent sessions in a tiled/tabbed terminal layout (cmux-style)
  • Voice control — wake-word or push-to-talk to switch focus to a pane and dictate instructions
  • Notification feed — surfaced sidebar showing agent status updates, PR events, CI results, mentions
  • Teams integration — read incoming chats, compose replies, route messages to the right agent context
  • Windows-first — native Windows Terminal / WinUI or TUI (Spectre.Console / Terminal.Gui) experience

Proposed Architecture

Core Components

┌─────────────────────────────────────────────────────────┐
│  WinCMux Shell                                          │
│  ┌──────────────────┐  ┌──────────────────┐            │
│  │  Agent Pane 1    │  │  Agent Pane 2    │  ...       │
│  │  copilot #42     │  │  copilot #87     │            │
│  │  [working...]    │  │  [waiting...]    │            │
│  └──────────────────┘  └──────────────────┘            │
│  ┌────────────────────────────────────────────────────┐ │
│  │  Notification Feed  │  🎤 Voice Input  │  Teams    │ │
│  └────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘

Technology Candidates

Layer Options
Shell/TUI Spectre.Console, Terminal.Gui v2, Windows Terminal panes via wt.exe
Voice Input Windows Speech Recognition API, Azure Cognitive Services Speech SDK
STT/NLP Azure Speech-to-Text or local Whisper.net
Notifications GitHub MCP / gh CLI polling, SignalR for real-time
Teams Microsoft Graph API, Teams Toolkit SDK
Agent Sessions PTY (ConPTY on Windows), pseudo-terminal multiplexing
State SQLite via Microsoft.Data.Sqlite or in-process

User Experience

Voice Commands

"Hey Cmux, switch to agent two"          → focus pane 2
"Hey Cmux, tell agent one: [dictation]"  → type dictation into pane 1
"Hey Cmux, show notifications"           → expand notification sidebar
"Hey Cmux, reply to John in Teams: ..."  → compose Teams reply
"Hey Cmux, merge PR forty-two"           → run gh pr merge 42

Notification Feed Items


Acceptance Criteria

MVP (Phase 1)

  • Launch 2+ gh copilot / copilot CLI sessions in split panes
  • Keyboard switching between panes (Ctrl+1, Ctrl+2, ...)
  • Notification sidebar polling GitHub events (issues, PRs, CI) via gh
  • Voice wake-word detection + dictation-to-pane
  • Windows 11 compatible, runs in Windows Terminal

Phase 2

  • Teams chat integration (read + reply via Graph API)
  • Voice commands for gh actions (merge, close, comment)
  • Agent status inference (idle vs. working vs. waiting for input)
  • Persist session layout across restarts

Phase 3

  • Plugin model for other notification sources (GitHub MCP, Jira, Linear)
  • Voice profile per agent pane (different wake phrases)
  • Packaged installer (winget / MSIX)

Open Questions / Research Needed

  • ConPTY viability — can we reliably multiplex copilot CLI sessions via ConPTY without PTY escape sequence conflicts?
  • STT latency — is Windows Speech Recognition API fast enough, or do we need Azure Cognitive Services / local Whisper?
  • Teams auth flow — OAuth device flow or service principal? Impact on consumer vs. enterprise accounts?
  • TUI vs. WinUI — full GUI (WinUI 3) or stay terminal-native (Spectre.Console)? Trade-offs for voice overlay UX?
  • Wake-word licensing — Picovoice Porcupine (MIT for open source), Azure custom keyword, or Windows built-in?

Suggested Squad Assignments

Work Area Suggested Agent
Architecture & design Flight (Lead)
TUI/shell multiplexer core CONTROL (TypeScript) or EECOM (Core Dev)
Voice integration GNC (Node.js Runtime)
Notification feed / GitHub events CAPCOM (SDK Expert)
Teams integration Network (Distribution)
CI/packaging/installer Booster (CI/CD)
UX & command design INCO (CLI UX)
E2E testing Sims (E2E Test)

Labels

type:epic, type:feature, priority:p1, squad, go:needs-research


Related

Activity

  1. vejadu commented on May 13, 2026

    @vejadu
    ContributorAuthor

    ✅ WinCMux MVP Complete

    All phases shipped to vejadu/wincmux:

    Phase 1 — Session Manager

    • launcher.ts — wt.exe + node-pty pane management
    • session-manager.ts — @xterm/headless VT status detection
    • notification-feed.ts — GitHub Octokit polling + gh CLI fallback
    • config.ts — ~/.wincmux/config.json with first-run UX
    • Full Ink v5 TUI: Dashboard, FeedPanel, VoiceOverlay, AlertBadge

    Phase 2 — Voice + Integrations

    • voice/wake-word.ts — Porcupine passive listener
    • voice/stt.ts — Azure Speech SDK one-shot transcription
    • voice/command-parser.ts — switch/tell/new/close intent parsing
    • integrations/teams.ts — MSAL device code + Graph API polling

    Phase 3 — Polish + Publish

    • First-run config UX, validation warnings, --issues flag
    • CI/CD: GitHub Actions build + npm publish pipeline

    Install: npx @vejadu/wincmux

  2. vejadu commented on May 13, 2026

    @vejadu
    ContributorAuthor

    Closing — WinCMux MVP shipped. See vejadu/wincmux.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions