GitHub Copilot CLI, with a face. CpltUI wraps the official GitHub Copilot CLI in a tiny native window so you can drive multi-agent sessions, inspect tool calls, resume past conversations, and edit files inline — without giving up the headless-grade fidelity of the CLI itself. Same
~/.copilot/session-store.dbon disk, same Agent Client Protocol (ACP) under the hood, samecopilotbinary on your PATH. Sibling project to ClawdUI.
| Real ACP wiring | Speaks Agent Client Protocol v1 over stdio with copilot --acp — same protocol Zed editor uses. Bidirectional, structured, versioned. |
| Master Orchestrator Harness | 5-phase loop (Architect → Dispatch → Gather → 3-parallel-Reviewer Consensus → Decide) injected as system prompt; host-side mechanical loop counter + hard stop at 5 iterations; live HARNESS N/5 A·B·C badge in chat header. |
| Live model picker | Click Model ▾ in header → switch among real Copilot models (Claude Sonnet 4.5, GPT-5, Gemini 2.5 Pro, o3, etc.) via /model slash mid-session. |
| 30 live slash commands | Streamed live from Copilot via ACP available_commands_update — /plan, /fleet, /research, /usage, /mcp, /model, /sandbox, etc. Composer / autocomplete from the live list. |
| @file picker + drag-drop | Reference any project file with @filename. ACP resource_link blocks. Drop files onto composer to attach. |
| Inline DiffCard | Every fs/write_text_file from Copilot renders as a unified-diff card before landing on disk. |
| CodeMirror 6 EditorPane | Click any file in the rail to open in a real editor with syntax highlighting (JS/TS/MD/JSON/HTML/CSS/Rust/Python). Cmd+S saves. |
| Embedded terminal | xterm.js wired to a Rust PTY (portable-pty). Cwd matches session. |
| Session resume | Reads ~/.copilot/session-store.db (sqlite) — every past Copilot session is one click away from full restore. |
| MCP integration | Live read of ~/.copilot/mcp-config.json + per-session --additional-mcp-config. |
| Command palette (⌘K) | Fuzzy across actions + live slash + model swap + history. |
| Onboarding device-flow | Surfaces verification_uri + user_code parsed from copilot stderr — copy + open browser inline. |
.dmg from GitHub Releases.CpltUI.app into /Applications.Developer ID Application (SLR Software Solutions Inc.) and notarized by Apple, so no Gatekeeper override is needed.Pre-built bundles (.msi, .exe, .deb, .AppImage, .rpm) are attached to each release. macOS arm64 is the primary target; Windows and Linux builds are produced from the same source on every tagged release.
npm install -g @github/[email protected]. Authenticate once: run copilot in any terminal and complete /login.cwd.+ New session in the sidebar. CpltUI seeds the Master Orchestrator harness as the first message; subsequent prompts run through the 5-phase loop automatically.allow-all for the session.copilot --version should print 1.0.54). CpltUI delegates credentials to the CLI — it never reads your GitHub token directly.node; future versions will bundle the runtime — see docs/PACKAGING.md).┌──────────────────────────────────────────────────────────────────┐
│ Tauri Window (native: macOS / Linux / Windows) │
│ ┌──────────────────────────────────────────────────────────────┐ │
│ │ Webview — Svelte 5 + TS + Vite │ │
│ │ Sidebar · ChatPane · Composer · Editor · Terminal · HUD │ │
│ │ design-system/ (Aurora-Linear tokens + primitives) │ │
│ └──────────────────────────────────────────────────────────────┘ │
└────────────────────────────┬─────────────────────────────────────┘
│ stdio (newline JSON)
┌────────────────────────────┴─────────────────────────────────────┐
│ Node sidecar — ACP client │
│ spawns `copilot --acp --no-auto-update` │
│ harness injection + orchestrator-loop parser │
│ handlers/{sessionUpdate, permission, fs, environment, history} │
└────────────────────────────┬─────────────────────────────────────┘
│ ACP JSON-RPC over stdio
▼
copilot v1.0.54 → GitHub Copilot · MCP · BYOK
Full details: docs/ARCHITECTURE.md.
git clone [email protected]:SLR-Software-Solutions-Inc/CpltUI.git
cd CpltUI
npm install
npm --prefix sidecar install && npm run sidecar:build
npm run tauri:dev
Smoke-test the ACP handshake without launching the app:
npm run smoke:handshake
CpltUI itself does not ship telemetry. The GitHub Copilot CLI it wraps collects prompts and responses per the Copilot Product Terms — see docs/AUTH.md for opt-out paths (BYOK mode via COPILOT_PROVIDER_* env, COPILOT_OFFLINE=true).
Apache 2.0 — see LICENSE and NOTICE.
Sibling project: ClawdUI (same architecture, wraps Claude Code instead of Copilot).