|
12 | 12 | <a href="https://github.com/devartifex/copilot-unleashed/releases/latest"><img src="https://img.shields.io/github/v/release/devartifex/copilot-unleashed?label=release&logo=github" alt="Latest Release"></a> |
13 | 13 | <a href="https://github.com/devartifex/copilot-unleashed/actions/workflows/ci.yml"><img src="https://github.com/devartifex/copilot-unleashed/workflows/CI/badge.svg" alt="CI"></a> |
14 | 14 | <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-green" alt="MIT License"></a> |
15 | | - <img src="https://img.shields.io/badge/copilot--sdk-v0.2.0-8A2BE2?logo=github" alt="Copilot SDK v0.2.0"> |
| 15 | + <img src="https://img.shields.io/badge/copilot--sdk-v0.2.2-8A2BE2?logo=github" alt="Copilot SDK v0.2.2"> |
16 | 16 | <img src="https://img.shields.io/badge/Docker-ready-2496ED?logo=docker&logoColor=white" alt="Docker"> |
17 | 17 | <img src="https://img.shields.io/badge/accessibility-WCAG%202.2%20AA-0057B8?logo=accessibility" alt="WCAG 2.2 AA accessible"> |
18 | 18 | <a href="https://github.com/devartifex/copilot-unleashed/commits"><img src="https://img.shields.io/github/last-commit/devartifex/copilot-unleashed" alt="Last Commit"></a> |
|
21 | 21 |
|
22 | 22 | <p align="center"> |
23 | 23 | Self-hosted multi-model AI chat built on the official <a href="https://github.com/github/copilot-sdk"><code>@github/copilot-sdk</code></a>.<br> |
24 | | - Autopilot agents · live reasoning traces · native GitHub tools · SDK-native customizations for agents, skills, prompts, instructions, and MCP servers. |
| 24 | + Autopilot agents · live reasoning traces · native GitHub tools · SDK-native customizations for agents, skills, prompts, instructions, and MCP servers · voice input & read aloud. |
25 | 25 | </p> |
26 | 26 |
|
27 | 27 | <p align="center"> |
|
38 | 38 | - **Every Copilot model** — Claude Opus 4.6, GPT-5.4, Gemini 3 Pro, Claude Sonnet 4.6, and more — switch mid-conversation, keep full history |
39 | 39 | - **Autopilot agents** — plan, code, run tests, and open PRs autonomously with live tool execution |
40 | 40 | - **Extended thinking** — live reasoning traces with collapsible "Thinking…" blocks |
| 41 | +- **Voice input** — speech-to-text via Web Speech API; mic button replaces send when input is empty (ChatGPT-style UX) — toggle in Settings |
| 42 | +- **Read aloud** — text-to-speech on any assistant message; markdown-aware sentence chunking with configurable speed — toggle in Settings |
41 | 43 | - **SDK-native customizations** — agents, skills, prompts, instructions, and MCP servers — configure in `~/.copilot/`, toggle from the UI ([details ↓](#customizations)) |
42 | 44 | - **Native GitHub tools** — issues, PRs, code search, repos, Actions — built in via the GitHub MCP server |
43 | | -- **Image & file attachments** — drop images, code, CSVs, or directories with `@` autocomplete; vision models analyze images inline |
| 45 | +- **Image & file attachments** — drop images, code, CSVs, or directories with `@` autocomplete; paste images from clipboard; vision models analyze images inline |
44 | 46 | - **Issue & PR references** — type `#` to search and reference GitHub issues/PRs across all your repos |
| 47 | +- **Slash commands** — type `/` to access actions like `/run` (shell commands), `/settings`, `/sessions`, and `/status` directly from chat |
| 48 | +- **BYOK (Bring Your Own Keys)** — connect your own API keys for additional model providers; keys encrypted at rest with AES-256-GCM (opt-in via `BYOK_ENABLED`) |
| 49 | +- **Elicitation** — interactive permission prompts and user input requests from the SDK, with configurable auto-approve in autopilot mode |
45 | 50 | - **Persistent sessions** — resume any conversation on any device; chat state survives browser close via server-side storage with cold resume |
46 | | -- **CLI ↔ Browser sync** — sessions started in the Copilot CLI appear in the browser and vice versa ([details ↓](#cli--browser-sync)) |
| 51 | +- **CLI ↔ Browser sync** — sessions started in the Copilot CLI appear in the browser and vice versa; full conversation history loaded from CLI's `session-store.db` ([details ↓](#cli--browser-sync)) |
| 52 | +- **MCP OAuth tokens** — OAuth-authenticated MCP servers auto-inject tokens from the CLI token store with periodic refresh |
47 | 53 | - **Push notifications** — Web Push alerts when the browser is closed; full PWA support |
48 | 54 | - **Plan & Fleet mode** — editable execution plans with disk sync; multi-agent parallel execution |
49 | 55 | - **Quota tracking** — premium request usage, remaining balance, and reset date |
@@ -113,6 +119,7 @@ Open [localhost:3000](http://localhost:3000). Log in with GitHub. Done. |
113 | 119 | | `PORT` | — | `3000` | HTTP server port | |
114 | 120 | | `ALLOWED_GITHUB_USERS` | — | — | Comma-separated GitHub usernames; omit to allow any authenticated user | |
115 | 121 | | `BASE_URL` | — | `http://localhost:3000` | Public URL — sets cookie domain and WebSocket origin validation | |
| 122 | +| `BYOK_ENABLED` | — | `false` | Set to `true` to enable Bring Your Own Keys panel in Settings | |
116 | 123 |
|
117 | 124 | <details> |
118 | 125 | <summary>All options</summary> |
@@ -224,11 +231,13 @@ Device Flow OAuth (same as GitHub CLI). Tokens are server-side only, never sent |
224 | 231 | <summary>Full security details</summary> |
225 | 232 |
|
226 | 233 | - CSP headers, CSRF protection, HSTS, X-Frame-Options DENY |
| 234 | +- Permissions-Policy: microphone scoped to same origin (`self`) — no third-party access |
227 | 235 | - Rate limiting: 200 req / 15 min per IP (HTTP) + 30 msg / min per WebSocket |
228 | 236 | - Secure cookies: httpOnly, secure (prod), sameSite: lax |
229 | 237 | - DOMPurify on all rendered markdown |
230 | 238 | - SSRF blocklist for MCP server URLs and OAuth token endpoints (IPv4 + IPv6 internal ranges, HTTPS required) |
231 | 239 | - 10,000 char message limit, 10MB upload limit, extension allowlist |
| 240 | +- BYOK keys encrypted at rest with AES-256-GCM |
232 | 241 | - Per-tool permission prompts with 30s auto-deny countdown |
233 | 242 | - Token revalidation on every WebSocket connect |
234 | 243 | - CodeQL scanning + secret scanning via GitHub Advanced Security |
@@ -305,7 +314,7 @@ Device Flow OAuth (same as GitHub CLI). Tokens are server-side only, never sent |
305 | 314 |
|
306 | 315 | ## Built With |
307 | 316 |
|
308 | | -SvelteKit 5 · Svelte 5 runes · TypeScript 5.7 · Node.js 24 · [`@github/copilot-sdk`](https://github.com/github/copilot-sdk) v0.2.0 · Vite · `ws` · Vitest · Playwright · Docker · Bicep |
| 317 | +SvelteKit 5 · Svelte 5 runes · TypeScript 5.7 · Node.js 24 · [`@github/copilot-sdk`](https://github.com/github/copilot-sdk) v0.2.2 · Vite · `ws` · Web Speech API · Vitest · Playwright · Docker · Bicep |
309 | 318 |
|
310 | 319 | ## Contributing |
311 | 320 |
|
|
0 commit comments