{"id":47609069,"url":"https://github.com/kile-thomson/rokket-gsd","last_synced_at":"2026-05-21T20:01:50.255Z","repository":{"id":345341908,"uuid":"1179553575","full_name":"Kile-Thomson/Rokket-GSD","owner":"Kile-Thomson","description":"VS Code extension for GSD-2 / GSD-PI — AI coding agent with streaming chat, parallel workers, and workflow automation","archived":false,"fork":false,"pushed_at":"2026-05-05T01:25:58.000Z","size":2721,"stargazers_count":14,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-05T03:38:21.107Z","etag":null,"topics":["ai","ai-coding-agent","ai-tools","chat","coding-agent","developer-tools","gsd","gsd-pi","gsd2","typescript","vscode-extension","workflow-automation"],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Kile-Thomson.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-12T06:19:27.000Z","updated_at":"2026-05-05T01:26:01.000Z","dependencies_parsed_at":"2026-03-19T07:00:38.700Z","dependency_job_id":null,"html_url":"https://github.com/Kile-Thomson/Rokket-GSD","commit_stats":null,"previous_names":["kile-thomson/rokket-gsd"],"tags_count":101,"template":false,"template_full_name":null,"purl":"pkg:github/Kile-Thomson/Rokket-GSD","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kile-Thomson%2FRokket-GSD","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kile-Thomson%2FRokket-GSD/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kile-Thomson%2FRokket-GSD/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kile-Thomson%2FRokket-GSD/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Kile-Thomson","download_url":"https://codeload.github.com/Kile-Thomson/Rokket-GSD/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kile-Thomson%2FRokket-GSD/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33313325,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-21T12:23:38.849Z","status":"ssl_error","status_checked_at":"2026-05-21T12:22:11.673Z","response_time":62,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","ai-coding-agent","ai-tools","chat","coding-agent","developer-tools","gsd","gsd-pi","gsd2","typescript","vscode-extension","workflow-automation"],"created_at":"2026-04-01T19:53:43.517Z","updated_at":"2026-05-21T20:01:50.246Z","avatar_url":"https://github.com/Kile-Thomson.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"resources/rokket-icon.png\" alt=\"Rokket GSD\" width=\"128\" /\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eRokket GSD\u003c/h1\u003e\n\n\u003ch3 align=\"center\"\u003eGSD2+ Premium GUI — AI Coding Agent with Chat, Multi-Model, Voice \u0026amp; Workflow Automation\u003c/h3\u003e\n\n\u003cp align=\"center\"\u003e\n  Built on \u003ca href=\"https://github.com/gsd-build/gsd-2\"\u003egsd-pi\u003c/a\u003e by \u003ca href=\"https://github.com/glittercowboy\"\u003eGlittercowboy\u003c/a\u003e (Lex Christopherson), based on \u003ca href=\"https://github.com/badlogic/pi-mono\"\u003ePi Mono\u003c/a\u003e by \u003ca href=\"https://github.com/badlogic\"\u003eMario Zechner\u003c/a\u003e ❤️\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  A full-featured VS Code frontend for the \u003ca href=\"https://github.com/gsd-build/gsd-2\"\u003egsd-pi\u003c/a\u003e AI coding agent.\u003cbr\u003e\n  Streaming responses, 40+ tool visualizations, Telegram relay with voice transcription,\u003cbr\u003e\n  parallel worker dashboards, model controls, four built-in themes, and deep workflow integration.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/version-0.3.63-blue\" alt=\"Version\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/VS%20Code-1.94%2B-blue\" alt=\"VS Code\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/license-MIT-green\" alt=\"License\" /\u003e\n  \u003cimg src=\"https://img.shields.io/badge/platform-Windows%20%7C%20macOS%20%7C%20Linux-lightgrey\" alt=\"Platform\" /\u003e\n\u003c/p\u003e\n\n---\n\n## What Is This?\n\n\u003cimg alt=\"RokketGSD\" src=\"https://github.com/user-attachments/assets/e68aea08-cb2c-415f-ad2e-dbad08d39dbc\" style=\"max-width:100%;\"/\u003e\n\nRokket GSD turns the `gsd-pi` CLI into a native VS Code experience. Streaming responses, 40+ tool visualizations, Telegram relay with voice transcription, parallel worker dashboards, model controls, four built-in themes, and deep workflow integration. Everything runs inside your editor.\n\nThe extension spawns GSD as a child process over JSON-RPC (`gsd --mode rpc`), giving the agent full access to your workspace, tools, and configured providers while you get a proper UI on top.\n\n---\n\n## ✨ Highlights\n\n\u003ctable\u003e\n\u003ctr\u003e\n\u003ctd width=\"50%\"\u003e\n\n🔄 **Auto-Updates**\u003cbr\u003e\nOne-click install from GitHub Releases\n\n📂 **Session History**\u003cbr\u003e\nSearch, rename, resume right where you left off\n\n⌨️ **59+ Slash Commands**\u003cbr\u003e\nFull GSD workflow from a single `/` keystroke\n\n🧠 **Model Picker**\u003cbr\u003e\nGrouped by provider with context size and reasoning tags\n\n🎯 **Steer While Streaming**\u003cbr\u003e\nRedirect the agent mid-task without waiting\n\n🎨 **Four UI Themes**\u003cbr\u003e\nClassic, Phosphor, Clarity, and Forge\n\n\u003c/td\u003e\n\u003ctd width=\"50%\"\u003e\n\n💬 **Streaming Chat**\u003cbr\u003e\nPer-token text rendering with live DOM updates\n\n🔧 **40+ Tool Visualizations**\u003cbr\u003e\nCategory icons, key args, collapsible output — spinners animate continuously\n\n📊 **Parallel Worker Dashboard**\u003cbr\u003e\nPer-worker state, budget bars, and stale detection\n\n⚡ **Live Auto-Mode Progress**\u003cbr\u003e\nTask, phase, cost, elapsed time, and active model\n\n💰 **Budget Alerts**\u003cbr\u003e\nWarning toast when workers cross 80% of ceiling\n\n🛡️ **Process Resilience**\u003cbr\u003e\nBuilt for multi-hour sessions with crash recovery\n\n📡 **Telegram Relay**\u003cbr\u003e\nStream conversations to Telegram with voice transcription\n\n🎙️ **Voice Input**\u003cbr\u003e\nHold-to-record with waveform viz; OpenAI, Azure, or xAI transcription\n\n🧪 **1397+ Tests**\u003cbr\u003e\nCI enforced on every push\n\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/table\u003e\n\n---\n\n## ⚠️ Prerequisites\n\n\u003e [!IMPORTANT]\n\u003e **Rokket GSD is a frontend for the GSD agent. It does not include the agent itself.**\n\nYou need a working GSD environment before installing:\n\n1. **[Node.js](https://nodejs.org/) 18+** with npm\n2. **[Git](https://git-scm.com/)**\n3. **[VS Code](https://code.visualstudio.com/) 1.94+**\n4. **`gsd-pi` installed globally:**\n   ```bash\n   npm install -g gsd-pi\n   ```\n5. **A configured AI provider** in GSD (Anthropic, OpenAI, Google, etc. via API key or OAuth)\n\n\u003e [!TIP]\n\u003e Run `gsd` in a terminal first to verify it works before installing the extension. If `gsd` doesn't work in your terminal, the extension won't work either.\n\n---\n\n## 📦 Installation\n\n### VS Code Marketplace\n\nSearch **\"Rokket GSD\"** in the Extensions sidebar, or install directly from the [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=Rokketek.rokket-gsd).\n\n### One-Liner (macOS / Linux / Git Bash)\n\n```bash\ncurl -sL https://raw.githubusercontent.com/Kile-Thomson/Rokket-GSD/main/install.sh | bash\n```\n\n### One-Liner (Windows PowerShell)\n\n```powershell\nirm https://raw.githubusercontent.com/Kile-Thomson/Rokket-GSD/main/install.ps1 | iex\n```\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eManual Install\u003c/strong\u003e\u003c/summary\u003e\n\n```bash\ngit clone https://github.com/Kile-Thomson/Rokket-GSD.git\ncd Rokket-GSD\nnpm install\nnpm run build\nnpx vsce package --no-dependencies\ncode --install-extension rokket-gsd-*.vsix --force\n```\n\nThen reload VS Code (`Ctrl+Shift+P` \u003e \"Developer: Reload Window\").\n\n\u003e [!TIP]\n\u003e If `code --install-extension` succeeds silently but the extension doesn't appear, install manually: VS Code \u003e Extensions \u003e `...` menu \u003e \"Install from VSIX...\" \u003e select the `.vsix` file.\n\n\u003c/details\u003e\n\n---\n\n## 🏁 Getting Started\n\nOnce installed, follow these steps to get up and running:\n\n### 1. Set up GSD (first time only)\n\nIf you haven't already, install and authenticate the GSD agent:\n\n```bash\nnpm install -g gsd-pi\ngsd\n```\n\nThe first run walks you through provider authentication (Anthropic, OpenAI, Google, etc.). You'll need at least one configured provider before the extension will work.\n\n### 2. Open Rokket GSD\n\n- Click the **rocket icon** in the VS Code activity bar (left sidebar), or\n- Press `Ctrl+Shift+P` → **\"Rokket GSD: Open\"**\n\nThe extension spawns a `gsd` process automatically — if everything is set up correctly, you'll see the welcome screen with quick-action chips.\n\n### 3. Verify your setup\n\nIf something isn't right, the extension runs a **health check on startup** and shows a notification with specific fix instructions. You can also run `/gsd doctor` in the chat to diagnose issues.\n\n### 4. (Optional) Connect Telegram\n\nTo relay conversations to a Telegram group with voice message support:\n\n1. **Create a bot** — message [@BotFather](https://t.me/BotFather) on Telegram, send `/newbot`, and copy the token\n2. **Add the bot** to your Telegram group and make it an admin\n3. **Run the setup wizard** — type `/telegram` in the Rokket GSD chat or use `Ctrl+Shift+P` → **\"Rokket GSD: Telegram Setup\"**\n4. **Paste your bot token** when prompted — the wizard auto-detects your group and verifies the connection\n5. **(Optional) Enable voice transcription** — run `/telegram voice` and enter an OpenAI API key for Whisper\n\nAll credentials are stored securely in VS Code's SecretStorage — never in config files or source code.\n\n### 5. (Optional) Customize settings\n\nOpen VS Code Settings (`Ctrl+,`) and search for \"gsd\" to configure:\n\n- **Theme** — choose from Classic, Phosphor, Clarity, or Forge\n- **Send key** — switch to `Ctrl+Enter` if you prefer `Enter` for newlines\n- **Layout** — open as sidebar panel or editor tab\n- **Auto-updates** — enabled by default, checks GitHub Releases\n\n---\n\n## 🚀 Features\n\n### 📂 Session History \u0026 Resume\n\n- **Browse previous sessions** with searchable panel showing titles, dates, and message counts\n- **Resume any session** with a single click, full context and conversation state injected on load\n- **Resume from welcome screen** with the \"↩ Resume\" chip or `/resume` slash command\n- **Rename sessions** with meaningful names for easy lookup later\n- **Delete sessions** to clean up old conversations\n- **Each session gets its own GSD process** with fully isolated state\n\n### ⌨️ Slash Commands\n\nType `/` to open the command palette with 59+ commands:\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eGSD Workflow\u003c/strong\u003e (46 commands)\u003c/summary\u003e\n\n| Command | What it does |\n|---------|-------------|\n| `/gsd` | Contextual wizard — picks the next action |\n| `/gsd auto` | Auto-execute tasks (fresh context per task) |\n| `/gsd next` | Execute the next task |\n| `/gsd stop` | Stop auto-mode |\n| `/gsd pause` | Pause auto-mode (preserves state) |\n| `/gsd quick` | Execute ad-hoc task with GSD guarantees |\n| `/gsd discuss` | Discuss without executing |\n| `/gsd status` | Project dashboard — milestones, slices, tasks |\n| `/gsd visualize` | Open workflow visualizer overlay |\n| `/gsd help` | Categorized command reference |\n| `/gsd changelog` | Show categorized release notes |\n| `/gsd capture` | Capture a thought during auto-mode |\n| `/gsd steer` | Redirect auto-mode priorities |\n| `/gsd triage` | Manually trigger triage of pending captures |\n| `/gsd knowledge` | View or add to project knowledge base |\n| `/gsd queue` | Queue and reorder future milestones |\n| `/gsd new-milestone` | Create a milestone from a specification document |\n| `/gsd park` | Park a milestone — skip without deleting |\n| `/gsd unpark` | Reactivate a parked milestone |\n| `/gsd dispatch` | Dispatch a specific phase directly |\n| `/gsd history` | View execution history |\n| `/gsd undo` | Revert last completed unit |\n| `/gsd skip` | Prevent a unit from auto-mode dispatch |\n| `/gsd start` | Start a workflow template (bugfix, spike, feature, etc.) |\n| `/gsd templates` | List available workflow templates |\n| `/gsd export` | Export milestone report as HTML |\n| `/gsd cleanup` | Remove merged branches or snapshots |\n| `/gsd config` | View or modify GSD configuration |\n| `/gsd prefs` | View or set preferences |\n| `/gsd mode` | Switch workflow mode (solo/team) |\n| `/gsd keys` | Manage API keys |\n| `/gsd hooks` | Show configured post-unit and pre-dispatch hooks |\n| `/gsd run-hook` | Manually trigger a specific hook |\n| `/gsd extensions` | Manage extensions (list, enable, disable, info) |\n| `/gsd doctor` | Diagnose and fix issues |\n| `/gsd forensics` | Post-mortem analysis of auto-mode failures |\n| `/gsd logs` | Browse activity, debug, and metrics logs |\n| `/gsd inspect` | Show SQLite DB diagnostics |\n| `/gsd skill-health` | Skill lifecycle dashboard |\n| `/gsd rate` | Token usage rates and profile defaults |\n| `/gsd init` | Project init wizard |\n| `/gsd setup` | Global setup status and configuration |\n| `/gsd migrate` | Migrate a v1 .planning directory to .gsd format |\n| `/gsd update` | Update GSD to the latest version |\n| `/gsd remote` | Remote question channels (Slack, Discord, Telegram) |\n| `/gsd parallel` | Parallel auto-mode orchestration |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eBuilt-in Actions\u003c/strong\u003e (13 commands)\u003c/summary\u003e\n\n| Command | What it does |\n|---------|-------------|\n| `/compact` | Compact context to reduce token usage |\n| `/export` | Export conversation as HTML |\n| `/model` | Open model picker |\n| `/thinking` | Cycle thinking level |\n| `/new` | Start a new conversation |\n| `/history` | Browse and switch sessions |\n| `/copy` | Copy last assistant message |\n| `/resume` | Resume last session |\n| `/auto-compact` | Toggle auto-compaction on/off |\n| `/auto-retry` | Toggle auto-retry on transient errors |\n| `/telegram` | Start Telegram streaming — opens setup and connects |\n| `/telegram-stop` | Stop Telegram streaming — kills relay and disconnects |\n| `/telegram voice` | Set OpenAI API key for voice transcription |\n\n\u003c/details\u003e\n\n### 🧠 Model \u0026 Thinking Controls\n\n- **Model picker** grouped by provider with section headers, context window size, and reasoning capability tags\n- **Thinking level dropdown** with off / minimal / low / medium / high / xhigh and descriptions for each level\n- **Model-aware thinking** hides levels your model doesn't support. Extended thinking only shows for models that handle it.\n- **Context usage bar** below the header with color-coded thresholds (green at 0-70%, amber at 70-90%, red at 90%+)\n- **Live session stats** showing token count, session cost, and context pressure at a glance\n- **Dynamic model routing indicator** flashes the model badge and announces via toast when gsd-pi switches models mid-task\n\n### 💬 Streaming Chat\n\n- **Sequential segment rendering** - text, thinking blocks, and tool calls stream in arrival order with no re-renders or layout jumps\n- **Full markdown** with syntax-highlighted code blocks, tables, blockquotes, headings, inline code, and images\n- **Copy buttons** on every code block and full assistant responses\n- **Image paste and drag-drop** directly into the input area\n- **File attachments** via button, drag-and-drop, or paste with type-specific icons and removable chips\n- **Message timestamps** with relative times that update live and absolute times on hover\n- **Thinking blocks** collapsed by default with line count indicator, expanded during streaming\n- **Steer while streaming** to redirect the agent mid-task without stopping it\n- **Steer persistence** — messages sent during auto-mode are saved to `OVERRIDES.md` and apply to all future tasks, not just the current turn\n- **Drag-to-resize input area** for longer messages\n- **`!command` shortcut** to run bash commands directly without the agent\n\n### 🔧 Tool Execution Visualization\n\u003cimg alt=\"subagents\" src=\"https://github.com/user-attachments/assets/90e4d43d-18ca-4a87-b5e9-7cd90afd50ce\" style=\"max-width:100%;\" /\u003e\n\n- **Live tool calls** with category-specific icons and color accents for 40+ tools\n- **Rich key arg display** for lsp, browser_*, github_*, gsd_*, mcp_call, bash, and more\n- **Collapsible output** with smart truncation for large results\n- **Parallel tool indicator** with ⚡ badge and pulse animation when tools run concurrently\n- **Tool call grouping** collapses consecutive read-only tools (file reads, searches, browser reads) into expandable summary rows\n- **Subagent results** rendered as full markdown with usage pills showing token and cost breakdowns\n- **Clickable file paths** that open directly in VS Code\n- **Shimmer animation** on running tools so you always know what's active\n- **Duration tracking** on every completed tool call\n- **Server-side tool indicators** — compact inline cards for Anthropic's native server-side tools (web search, code execution) showing tool name, search query, spinner while running, and result count on completion\n\n### ⚡ Auto-Mode Progress\n\n- **Live progress widget** sticky above the input showing current task, phase, progress bars, elapsed time, cost, and active model\n- **Phase rendering** with distinct labels and icons: Executing, Planning, Validating (✓), Completing, Blocked, Replanning\n- **Discussion-pause visibility** shows 💬 \"Awaiting Discussion\" with a `/gsd discuss` hint when auto-mode pauses for slice discussion\n- **Pending captures badge** (📌) in the progress widget for `/gsd capture` thoughts awaiting triage\n- **Workflow state badge** in the header showing active milestone, slice, task, and current phase\n- **Auto-mode indicator** with ⚡ Auto, ▸ Next, ⏸ Paused states\n- **Health widget** — ambient system health bar in the footer showing system status, budget, provider issues, and environment errors\n- **Model health indicator** — green/amber/red dot next to the model name reflecting current system health\n\n### 📊 Parallel Worker Dashboard\n\n- **Worker cards** during parallel auto-mode showing per-worker milestone ID, state badge, current unit, and cost\n- **State badges** for Running, Paused, Stopped, and Error with distinct colors\n- **Budget usage bars** per worker with green/orange/red thresholds at 80% and 100%\n- **Budget alert toast** fires a VS Code warning when any worker crosses 80% of `budget_ceiling`\n- **Stale worker detection** dims workers with old heartbeats and shows a \"(stale)\" label\n- **Graceful degradation** to standard single-worker display when no parallel data exists\n\n### 📈 Workflow Visualizer\n\n- **Full-page overlay** via `/gsd visualize` with three tabs\n- **Progress tab** with milestone header, progress bars, slice/task breakdown, milestone registry, blockers, and next action\n- **Metrics tab** with cost breakdown, tool call counts, model usage, token breakdown, and context usage\n- **Health tab** with system health status, budget info, environment warnings, and active model\n- **Auto-refresh** every 5 seconds during active auto-mode\n- **Dashboard panel** with milestone registry, slice/task progress, cost projections, and activity log\n\n### 🤖 Agent Interaction\n\n- **Inline UI dialogs** for confirm, select, input, and editor prompts rendered directly in the chat flow (no modal popups)\n- **Multi-select support** with checkbox-style selection and confirm button\n- **Auto-compaction indicator** overlay banner when context is being compacted\n- **Auto-retry indicator** with countdown timer and abort button when the provider rate-limits\n- **Provider fallback alerts** via toast when GSD auto-switches models due to rate limits, and again when the original provider recovers\n- **Crash recovery** with restart button, exit code diagnostics, and full state cleanup\n\n### 📡 Telegram Relay\n\n- **Stream conversations to Telegram** — relay assistant messages to a Telegram group in real time\n- **Setup wizard** via `/telegram` or the command palette with guided Bot Token → Group ID → Chat Title flow\n- **Voice message transcription** — Telegram voice messages are transcribed via OpenAI Whisper and injected as user prompts\n- **Photo support** — images sent in Telegram are forwarded to the agent as attachments\n- **Topic-based threading** — each session creates a Telegram topic for organized conversations\n- **Streaming granularity control** — configure as `off`, `throttled`, or `final-only` in settings\n- **Secure credential storage** — Bot Token and OpenAI API key stored in VS Code's `SecretStorage`, never in source files\n\n### 🎨 VS Code Integration\n\n- **Activity bar icon** (rocket) with sidebar panel\n- **Flexible layout** - open as sidebar or editor tab\n- **Status bar** showing streaming state, active model, and session cost\n- **Working indicator** with pulsing amber glow on the rocket logo while the agent is active\n- **Theme-aware** - works with any VS Code color theme (light, dark, high contrast)\n- **Four built-in themes**: Classic, Phosphor, Clarity, and Forge\n- **Auto-updates** from GitHub Releases with one-click install notification\n- **HTML export** from the command palette (\"Rokket GSD: Export Milestone Report\")\n- **What's New overlay** on version upgrade with changelog viewer\n- **Welcome screen quick actions** with clickable chips for Auto, Status, and Review\n- **Scroll-to-bottom FAB** when scrolled up\n- **Toast notifications** for action feedback\n\n### ⌨️ Keyboard Shortcuts\n\n| Shortcut | Action |\n|----------|--------|\n| `Enter` | Send message (or steer while agent is working) |\n| `Esc` | Stop the agent |\n| `Ctrl+Shift+G` | Focus the GSD input from anywhere in VS Code |\n| `Ctrl+Shift+N` | New conversation (when GSD is focused) |\n\n\u003e [!TIP]\n\u003e Enable `gsd.useCtrlEnterToSend` in settings if you want `Enter` for newlines and `Ctrl+Enter` to send.\n\n### 🔒 Security\n\n- **CSP enforcement** — nonce-based Content Security Policy with no `unsafe-inline` in style-src or script-src\n- **DOMPurify sanitization** on all rendered markdown with explicit attribute allowlist\n- **URL scheme allowlist** restricting clickable links to http, https, and vscode\n- **Path traversal protection** with workspace boundary validation and symlink resolution\n- **Command injection prevention** using args arrays instead of shell interpolation; destructive bash pattern detection with modal confirmation\n- **Environment isolation** stripping Electron/VS Code env vars before spawning GSD\n- **Download validation** restricting update installs to GitHub URLs only\n- **Temp file size limit** (50MB) on save operations\n- **No secrets in DOM** — API keys and tokens are never rendered in the webview\n- **Buffer overflow protection** — full JSON-RPC buffer reset (not truncation) to preserve protocol integrity\n\n---\n\n## ⚙️ Configuration\n\n| Setting | Default | Description |\n|---------|---------|-------------|\n| `gsd.theme` | `\"forge\"` | UI theme: `classic`, `phosphor`, `clarity`, or `forge` |\n| `gsd.processWrapper` | `\"\"` | Custom executable path for the GSD process |\n| `gsd.environmentVariables` | `[]` | Extra env vars to set when launching GSD |\n| `gsd.useCtrlEnterToSend` | `false` | Use `Ctrl+Enter` to send instead of `Enter` |\n| `gsd.preferredLocation` | `\"panel\"` | Default open location: `\"sidebar\"` or `\"panel\"` |\n| `gsd.autoUpdate` | `true` | Check for new versions on GitHub Releases |\n| `gsd.githubToken` | `\"\"` | GitHub token for update checks (also reads `GH_TOKEN` / `GITHUB_TOKEN` env vars) |\n| `gsd.telegramGroupId` | `0` | Telegram group ID for the relay |\n| `gsd.telegramChatTitle` | `\"\"` | Telegram group chat title |\n| `gsd.telegramBotUsername` | `\"\"` | Telegram bot username |\n| `gsd.telegramStreamingGranularity` | `\"throttled\"` | Streaming mode: `off`, `throttled`, or `final-only` |\n\n---\n\n## 🛡️ Process Resilience\n\nBuilt to handle real-world agent sessions that run for hours:\n\n- **Health monitoring** with periodic pings to detect hung processes\n- **Environment isolation** stripping Electron/VS Code env vars to prevent subprocess crashes\n- **Graceful shutdown** handling `session_shutdown` events cleanly\n- **Force-kill and restart** via UI button for stuck processes\n- **Duplicate spawn prevention** via mutex per session\n- **Buffer overflow protection** with full reset (not truncation) to preserve JSON-RPC protocol integrity\n\n---\n\n## 🏗️ Architecture\n\n```\n┌─────────────────────┐    postMessage     ┌─────────────────────┐\n│   Webview (Chat UI) │ \u003c───────────────\u003e │   Extension Host     │\n│                     │                   │                      │\n│  Streaming render   │                   │  Dialog mapping      │\n│  Tool visualization │                   │  File operations     │\n│  Model/thinking     │                   │  Update checker      │\n│  Session history    │                   │  Status bar          │\n│  Slash commands     │                   │  Health monitoring   │\n│  Worker dashboard   │                   │  Parallel polling    │\n│  Agent cards        │                   │  Telegram bridge     │\n└─────────────────────┘                   └──────────┬───────────┘\n                                                     │ stdin/stdout\n                                                     │ JSON-RPC\n                                          ┌──────────▼───────────┐\n                                          │   gsd --mode rpc     │\n                                          │   (Child Process)    │\n                                          └──────────────────────┘\n                                                     │\n                                          ┌──────────▼───────────┐\n                                          │   Telegram Poller    │\n                                          │   OpenAI Whisper     │\n                                          └──────────────────────┘\n```\n\n- **Webview** — vanilla DOM (no framework), ~13K lines of TypeScript + 16 CSS modules + 3 theme files, esbuild-bundled IIFE. Sequential segment-based renderer with `requestAnimationFrame` batching for smooth streaming. CSS uses a semantic token layer (`--gsd-*`) bridging VS Code's theme system — components never reference `--vscode-*` directly.\n- **Extension Host** — ~10K lines of TypeScript managing the GSD child process, routes messages, handles file operations, monitors health, polls parallel worker status, and coordinates the Telegram bridge. All hot-path I/O is async; polling runs via parallelized `Promise.all`.\n- **GSD Process** — the full `gsd-pi` agent running via JSON-RPC over stdin/stdout. Each session gets its own process.\n- **Telegram Bridge** — poller, coordinator, IPC, topic manager, and message formatter. Voice messages transcribed via OpenAI Whisper; photos forwarded as image attachments.\n\nThe extension ships as a `.vsix` with no runtime dependencies beyond VS Code and the `gsd` CLI. 1397 tests across 66 files.\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003e🔨 Development\u003c/strong\u003e\u003c/summary\u003e\n\n```bash\ngit clone https://github.com/Kile-Thomson/Rokket-GSD.git\ncd Rokket-GSD\nnpm install\nnpm run watch    # Rebuilds on file changes\n# Press F5 in VS Code to launch Extension Development Host\n```\n\n### Scripts\n\n| Script | Description |\n|--------|-------------|\n| `npm run build` | Production build (extension + webview) |\n| `npm run watch` | Watch mode with auto-rebuild |\n| `npm test` | Run unit tests (Vitest) |\n| `npm run lint` | Run ESLint |\n| `npm run package` | Package as `.vsix` |\n\n### Project Structure\n\n```\nsrc/\n  extension/\n    index.ts                # Entry point, commands, status bar\n    rpc-client.ts           # JSON-RPC client over stdin/stdout\n    webview-provider.ts     # Webview lifecycle, message routing\n    message-dispatch.ts     # Inbound message routing (extension side)\n    rpc-events.ts           # RPC event handlers\n    auto-progress-poller.ts # Auto-mode progress polling (parallelized)\n    parallel-status.ts      # Parallel worker status reader\n    dashboard-parser.ts     # Dashboard data aggregation\n    metrics-parser.ts       # Cost/token metrics parsing\n    captures-parser.ts      # Pending capture count parsing\n    state-parser.ts         # GSD workflow state parsing\n    update-checker.ts       # Auto-update from GitHub Releases\n    session-list-service.ts # Session history filesystem parser\n    session-state.ts        # Per-session state management\n    file-ops.ts             # File operations (export, save, access)\n    health-check.ts         # Process health monitoring\n    html-generator.ts       # Webview HTML + CSP generation\n    watchdogs.ts            # Streaming/tool timeout watchdogs\n    command-fallback.ts     # Slash command fallback handling\n    telegram/               # Telegram relay (setup, polling, formatting, IPC)\n    openai/                 # OpenAI Whisper voice transcription\n  shared/\n    types.ts                # Message protocol types (extension \u003c\u003e webview)\n  webview/\n    index.ts                # DOM setup, events, initialization\n    renderer.ts             # Streaming segment renderer\n    message-handler.ts      # Inbound message routing\n    auto-progress.ts        # Auto-mode progress bar + worker cards\n    visualizer.ts           # Workflow visualizer overlay\n    dashboard.ts            # GSD dashboard overlay\n    model-picker.ts         # Model selection overlay\n    thinking-picker.ts      # Thinking level dropdown\n    slash-menu.ts           # Slash command palette (45+ built-in commands)\n    ui-dialogs.ts           # Inline confirm/select/input dialogs\n    tool-grouping.ts        # Read-only tool collapse logic\n    session-history.ts      # Session browser panel\n    helpers.ts              # Markdown, formatting, tool display\n    ui-updates.ts           # Header, footer, overlay updates\n    keyboard.ts             # Keyboard shortcut handling\n    state.ts                # Shared mutable state\n    a11y.ts                 # Accessibility utilities\n    toasts.ts               # Toast notification system\n    file-handling.ts        # File attachment handling\n    styles/\n      tokens.css            # Semantic design tokens (--gsd-* layer)\n      base.css              # Reset, typography, scrollbar\n      layout.css            # Grid, panels, overlays\n      input.css             # Chat input area\n      entries.css           # Message bubbles, turns\n      footer.css            # Status bar, badges\n      tools.css             # Tool call cards\n      overlays.css          # Modals, pickers, visualizer\n      misc.css              # Focus rings, animations, utilities\n      parallel.css          # Worker dashboard cards\n      auto-progress.css     # Auto-mode progress widget\n      dashboard.css         # GSD dashboard overlay\n      toasts.css            # Toast notifications\n      themes/\n        phosphor.css        # Phosphor theme overrides\n        clarity.css         # Clarity theme overrides\n        forge.css           # Forge theme overrides\nresources/\n  gsd-logo.svg              # Activity bar icon\n  rokket-icon.png            # Extension icon\n  extensions/               # Bundled pi extensions (auto-installed)\n```\n\n\u003c/details\u003e\n\n---\n\n## Known Limitations\n\n- **Requires `gsd-pi`** — this is a UI wrapper, not a standalone agent. The `gsd` CLI must be installed and configured separately.\n- **Some GSD custom UI commands** rely on TUI widgets that VS Code webviews cannot render directly. `/gsd status` is supported via the structured dashboard renderer; other widget-dependent commands produce text-only output.\n\n---\n\n## License\n\nMIT\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003e▲ ROKKETEK\u003c/strong\u003e\u003cbr\u003e\n  \u003csub\u003eBuilt by \u003ca href=\"https://github.com/Kile-Thomson\"\u003eKile Thomson\u003c/a\u003e\u003c/sub\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkile-thomson%2Frokket-gsd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkile-thomson%2Frokket-gsd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkile-thomson%2Frokket-gsd/lists"}