{"id":44708302,"url":"https://github.com/rogerbarreto/copilot-booster","last_synced_at":"2026-04-09T22:05:40.956Z","repository":{"id":338586580,"uuid":"1158395623","full_name":"rogerbarreto/copilot-booster","owner":"rogerbarreto","description":"Copilot Booster - Modern AI-assisted development isn't one task at a time. It's multiple Copilot agents running simultaneously!","archived":false,"fork":false,"pushed_at":"2026-03-01T01:11:48.000Z","size":23427,"stargazers_count":1,"open_issues_count":7,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-01T04:51:31.950Z","etag":null,"topics":["ai","copilot","copilot-cli-app","multi-tasking","productivity"],"latest_commit_sha":null,"homepage":"","language":"C#","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/rogerbarreto.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"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},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":"rogerbarreto","thanks_dev":null,"custom":null}},"created_at":"2026-02-15T09:50:51.000Z","updated_at":"2026-03-01T01:11:51.000Z","dependencies_parsed_at":"2026-02-26T04:06:31.394Z","dependency_job_id":null,"html_url":"https://github.com/rogerbarreto/copilot-booster","commit_stats":null,"previous_names":["rogerbarreto/copilot-booster"],"tags_count":33,"template":false,"template_full_name":null,"purl":"pkg:github/rogerbarreto/copilot-booster","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rogerbarreto%2Fcopilot-booster","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rogerbarreto%2Fcopilot-booster/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rogerbarreto%2Fcopilot-booster/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rogerbarreto%2Fcopilot-booster/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rogerbarreto","download_url":"https://codeload.github.com/rogerbarreto/copilot-booster/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rogerbarreto%2Fcopilot-booster/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30079565,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-04T11:57:42.557Z","status":"ssl_error","status_checked_at":"2026-03-04T11:56:10.793Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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","copilot","copilot-cli-app","multi-tasking","productivity"],"created_at":"2026-02-15T11:13:38.030Z","updated_at":"2026-04-09T22:05:40.945Z","avatar_url":"https://github.com/rogerbarreto.png","language":"C#","funding_links":["https://buymeacoffee.com/rogerbarreto"],"categories":[],"sub_categories":[],"readme":"# Copilot Booster\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/logo.png\" alt=\"Copilot Booster Logo\" width=\"200\"\u003e\n\u003c/p\u003e\n\n\u003e Run multiple Copilot agents in parallel. One taskbar icon to manage them all.\n\nModern AI-assisted development isn't one task at a time — it's **multiple Copilot agents running simultaneously** across different repos, branches, and contexts. But juggling terminals, IDEs, and browsers for each agent creates a context-switching tax that kills the productivity gains.\n\n**Copilot Booster** eliminates that overhead. Pin it to your taskbar and get **complete isolation per session** — each Copilot agent gets its own terminal, IDE workspace, and browser instance, all tracked and instantly accessible from a single icon. No more hunting for the right window. No more losing context. Just click and focus.\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"../../releases/latest\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/rogerbarreto/copilot-booster?label=Latest%20Release\u0026style=for-the-badge\" alt=\"Latest Release\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"../../releases/latest/download/CopilotBooster-Setup.exe\"\u003e📦 \u003cb\u003eDownload Installer\u003c/b\u003e\u003c/a\u003e \u0026nbsp;|\u0026nbsp;\n  \u003ca href=\"../../releases/latest/download/CopilotBooster-win-x64.zip\"\u003e📁 \u003cb\u003eDownload Portable ZIP\u003c/b\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n### Why Copilot Booster?\n\n| Without Copilot Booster | With Copilot Booster |\n|---|---|\n| Alt-Tab through dozens of windows to find the right terminal | Click the session → focus the exact terminal, IDE, or browser |\n| Manually track which agent is working on what | Live Running column shows Terminal, Copilot CLI, IDE, Edge, and Explorer status per session |\n| One shared browser for all research | Isolated Edge workspaces per session — tabs saved and restored automatically |\n| Context-switch between repos by cd-ing around | Git worktree workspaces give each agent its own branch and directory |\n| Lose track of parallel agents after a restart | Window handles, terminals, and Edge tabs all persist across restarts |\n| No idea when an agent finishes | 🔔 Bell notifications with popups when a session is ready |\n\n---\n\n## ✨ Features at a Glance\n\n### 🔦 Spotlight\n\nPress **Win+Alt+X** from anywhere to slide the Booster window up from the taskbar. Click away to dismiss — no window management needed.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/QuickSlide.gif\" alt=\"Quick Slide — window slides up from taskbar\" width=\"700\"\u003e\n\u003c/p\u003e\n\n- **Global hotkey (Win+Alt+X)** — show/hide from anywhere, system-wide via Win32 `RegisterHotKey`\n- **Slide animation** — smooth slide-up from the bottom of the screen (configurable)\n- **Auto-hide on focus loss** — the window dismisses when you click elsewhere (stays visible for dialogs, context menus, and settings)\n- **6 position options** — Bottom Left, Bottom Center, Bottom Right, Top Left, Top Center, Top Right\n- **Per-monitor support** — choose which screen to show the spotlight on, or follow the cursor\n- **Tray/taskbar activation** — clicking the tray icon or taskbar button shows the spotlight on the cursor's screen\n- **Enabled by default** — spotlight mode is on out of the box; configure position and screen in Settings\n\n---\n\n### 📌 Taskbar Jump List\n\nRight-click the pinned icon to access everything:\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/menu-tasks.png\" alt=\"Jump list with tasks\" width=\"300\"\u003e\n\u003c/p\u003e\n\n- **New Copilot Session** — start a new session with a smart directory picker\n- **Existing Sessions** — browse, resume, or open sessions in your IDE\n- **Settings** — configure tools, directories, and IDEs\n\n---\n\n### 🔄 Session Browser \u0026 Active Context Tracking\n\nThe session browser is the central hub. Each session shows **Session**, **CWD** (with ⎇ for Git repos), **Date**, **Running**, and **Ctx.** (context) columns — giving you a live view of what's running where. The **Ctx.** column displays file and Edge tab icons with counts, allowing quick access to session content. Sessions with active processes are automatically sorted to the top.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/session-browser-state.png\" alt=\"Session browser with active tracking, bell notifications, and status indicators\" width=\"700\"\u003e\n\u003c/p\u003e\n\nThe **Running** column tracks running contexts across multiple environments:\n\n| Context | How it's detected |\n|---------|-------------------|\n| **Terminal** | Windows launched via \"Open Terminal\" are tracked by PID and cached across restarts |\n| **Copilot CLI** | Detected via `events.jsonl` content parsing — working (spinner) or idle (bell) |\n| **IDE** | IDEs launched via the Open menu are tracked by window handle and cached across restarts |\n| **Edge** | Browser workspaces tracked via UI Automation anchor-tab detection |\n| **Explorer** | Explorer windows opened via context menu are tracked by HWND |\n| **Files** | Session files folder opened via context menu |\n\nEach active context is a **clickable link** — click to focus the corresponding window instantly. Re-opening an IDE that's already tracked for a session will focus the existing window instead of launching a new instance.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/Focus-Feature-Per-Session.gif\" alt=\"Click-to-focus across Terminal, IDE, and Edge per session\" width=\"700\"\u003e\n\u003c/p\u003e\n\n#### 📑 Custom Session Tabs\n\nOrganize your sessions into custom tabs — up to 10 tabs with full drag-and-drop reordering. Add new tabs directly from the main window with the **+** button, or manage them in Settings.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/organize-your-sessions.png\" alt=\"Session tabs with drag-and-drop reordering\" width=\"700\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/custom-multiple-tabs.png\" alt=\"Multiple custom session tabs for organizing work\" width=\"700\"\u003e\n\u003c/p\u003e\n\n- **Quick add (+) button** — create new tabs directly from the session tab strip without opening Settings\n- **Drag-and-drop columns** — reorder grid columns by dragging headers; column order is persisted across restarts (Status column stays pinned)\n- **Drag-to-tab** — drag selected sessions onto a different tab header to move them between tabs\n- **Move sessions between tabs** — right-click → \"Move to\" to reassign sessions to any tab\n\nOther session browser features:\n- **Multi-select** — hold Ctrl for individual selection or Shift for range selection; batch Pin/Unpin and Move to tab via context menu\n- **Search** — filter sessions by title, folder, or metadata as you type\n- **Pinned sessions** — pin sessions to keep them at the top regardless of sorting\n- **Running-first sorting** — sessions with active processes automatically float to the top\n- **Auto-select on tab switch** — switching tabs immediately selects the first row for quick navigation\n- **Auto-refresh** — the list updates when new sessions appear or names change externally\n- **Auto-cleanup** — empty sessions with no activity are automatically removed\n\n---\n\n### 🔔 Session Status \u0026 Notifications\n\nThe status column shows live session state with animated icons — a **spinning blue indicator** when Copilot CLI is working, and a **🔔 red bell** when it's idle and waiting for input. Bell rows are highlighted with a prominent red background for quick visual scanning.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/session-state-notification.png\" alt=\"Session status column showing bell and spinner icons with red notification rows\" width=\"700\"\u003e\n\u003c/p\u003e\n\nWhen a session finishes work, a **Windows notification** pops up with the session name. Status detection is powered by content-based parsing of `events.jsonl` — it understands assistant turns, tool requests, and `ask_user` pauses.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/toast-notification.png\" alt=\"Notification when session is ready\" width=\"350\"\u003e\n\u003c/p\u003e\n\n- **Content-based detection** — parses event types (assistant.turn_start, tool.execution_start, ask_user) for accurate status\n- **One-shot notifications** — each bell only fires once per idle transition\n- **Staleness threshold** — sessions inactive for 30+ minutes are ignored to prevent false bells\n- **Startup-aware** — existing idle sessions don't trigger false notifications when the app launches\n- **Persistent bell state** — bell notifications survive app restarts\n- **Configurable** — toggle notifications on/off in Settings\n\n---\n\n### 📋 Right-Click Context Menu\n\nRight-click any session row to access all actions in a single context menu with system icons:\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/context-menu.png\" alt=\"Right-click context menu with icons, IDE sub-menus, and all session actions\" width=\"300\"\u003e\n\u003c/p\u003e\n\n| Action | Description |\n|--------|-------------|\n| **Open Files** | Sub-menu listing session files (plan.md, files/ contents) with shell icons; top item opens session folder |\n| **Open Session** | Resume the session in its original working directory |\n| **Edit Session** | Rename the session or change its working directory |\n| **Pin / Unpin** | Pin sessions to keep them at the top of the list |\n| **Move to →** | Move sessions between configurable tabs |\n| **Open as New Copilot Session** | Start a fresh Copilot CLI session in the same directory |\n| **Open as New Copilot Session Workspace** | Create a Git worktree workspace (Git repos only) |\n| **Open Terminal** | Launch a terminal via Windows Terminal (wt.exe) |\n| **Open in Explorer (CWD)** | Open the working directory in Explorer |\n| **Open in {IDE}** | Sub-menu with CWD/Repo Root folders + matched project files |\n| **Open in Edge** | Launch a managed Edge browser workspace |\n| **Save Edge State** | Manually save Edge tabs (visible when Edge is open) |\n| **Delete Session** | Soft-delete a session (last item, separated) |\n\n---\n\n### 🔍 IDE File Pattern Matching\n\nConfigure file patterns per IDE (e.g., `*.sln;*.slnx`) in Settings. When a pattern is set, the IDE context menu becomes a **sub-menu** that searches for matching project files and shows them for quick one-click opening.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/context-menu-ide-submenu.png\" alt=\"IDE sub-menu showing CWD/Repo Root and matched .sln file\" width=\"400\"\u003e\n\u003c/p\u003e\n\n- **Fast search** — uses `git ls-files` for Git repos (respects .gitignore), falls back to directory walk with configurable ignored directories\n- **Depth-sorted** — shallowest matches shown first, up to 5 results\n- **Configurable exclusions** — manage ignored directories (node_modules, bin, obj, etc.) in the IDEs settings tab\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/custom-ide-setup.png\" alt=\"IDE settings with IDEs and search ignored directories\" width=\"400\"\u003e\n\u003c/p\u003e\n\n---\n\n### 🌐 Edge Browser Workspaces\n\nOpen a managed Microsoft Edge window linked to any session. Each workspace gets a unique anchor tab that lets Copilot Booster track, focus, and detect whether the browser window is still open.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/edge-session-tracking.png\" alt=\"Edge browser workspace with session anchor tab\" width=\"700\"\u003e\n\u003c/p\u003e\n\n- **Tab save/restore** — save Edge tabs via \"Save Edge State\" in the context menu; tabs are restored when reopening Edge for the session\n- **Active tracking** — the Edge workspace appears as a clickable link in the Running column\n- **Session name in tab** — the anchor tab title shows the session name; updates live when you change the alias\n- **Manual save** — \"Save Edge State\" context menu button saves all open tabs for the session\n- **Tab-level detection** — uses UI Automation to find the anchor tab across all Edge windows\n- **Auto-cleanup** — when you close the anchor tab or the Edge window, the workspace is automatically removed from tracking\n\n---\n\n### 📂 Smart Directory Picker\n\nThe **New Session** dialog shows your most-used working directories — sorted by frequency across all previous sessions. Non-existent paths are automatically cleaned up.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/new-session-tab.png\" alt=\"New Session dialog with directory picker and session counts\" width=\"700\"\u003e\n\u003c/p\u003e\n\nEach directory shows:\n- **# Sessions created** — how many sessions have used this path\n- **Git** — whether the directory is inside a Git repository (including worktrees)\n\nRight-click any directory to access all actions, or double-click to quickly start a new session with a name prompt.\n\n---\n\n### 🌿 Git Workspace Creation\n\nFor Git-enabled directories, Copilot Booster can create isolated workspaces backed by [git worktrees](https://git-scm.com/docs/git-worktree). Each workspace gets its own branch and directory — perfect for working on multiple features in parallel without stashing or switching branches.\n\nCreate a workspace from two places:\n- **New Session** → right-click a Git directory → **New Copilot Session Workspace**\n- **Existing Sessions** → right-click a session → **Open as New Copilot Session Workspace**\n\nWorkspaces are stored by default in `%APPDATA%\\CopilotBooster\\Workspaces\\` and named after the repository and branch (e.g., `myrepo-feature-xyz`). The workspace directory can be changed in Settings.\n\nThe workspace dialog offers three modes:\n\n#### Existing Branch\n\nCheck out an existing branch into its own worktree. The branch dropdown lists all local and remote branches.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/create-workspace-specific-branch.png\" alt=\"Create workspace from an existing branch\" width=\"450\"\u003e\n\u003c/p\u003e\n\n#### New Branch\n\nCreate a new branch based on any existing branch. Pick a base branch from the dropdown and name your new branch.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/create-workspace-new-based-branch.png\" alt=\"Create workspace with a new branch from a base branch\" width=\"450\"\u003e\n\u003c/p\u003e\n\n#### From PR #\n\nStart a workspace directly from a GitHub PR number. Copilot Booster validates the PR and fetches its title, then checks out the contributor's original branch name — matching what `gh pr checkout` does.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/create-workspace-from-pr.png\" alt=\"Create workspace from a GitHub Pull Request\" width=\"450\"\u003e\n\u003c/p\u003e\n\n#### From Issue #\n\nStart a workspace from a GitHub issue number. Enter the issue number, click **Check** to fetch the title, and optionally use it as the session name. Pick a base branch and Copilot Booster creates a new branch using the issue branch pattern configured in Settings (default: `issues/{number}-{alias}`).\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/create-workspace-from-issue.png\" alt=\"Create workspace from a GitHub Issue\" width=\"450\"\u003e\n\u003c/p\u003e\n\n---\n\n### ⚙️ Settings\n\nAll configuration lives in a tabbed UI with info labels and tooltips — no JSON editing required.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/settings-tab.png\" alt=\"Settings dialog with General, Copilot CLI, IDEs, Spotlight, and other tabs\" width=\"700\"\u003e\n\u003c/p\u003e\n\n- **Theme** — choose between System (default), Light, or Dark theme; persisted across restarts\n- **Date format** — choose between `YYYY-MM-DD HH:mm`, `MM/DD hh:mm AM/PM`, or `DD/MM HH:mm`; the Date column auto-sizes to fit\n- **Notify on bell** — toggle Windows notifications when sessions finish work\n- **Always on top** — keep the window above other windows\n- **Auto-hide on focus** — hide other session windows when focusing one\n- **Max active sessions** — configurable limit (0 = unlimited)\n- **Pinned order** — sort pinned sessions by last updated or alias name\n- **Default Work Dir** — set the default working directory for new sessions\n- **Workspace Dir** — set the directory where Git worktree workspaces are stored (default: `%APPDATA%\\CopilotBooster\\Workspaces\\`)\n- **Spotlight** — enable/disable the spotlight feature and auto-hiding independently, configure position (6 options), target screen (per-monitor), and slide animation\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/settings-spotlight.png\" alt=\"Spotlight settings with enable, position, screen, auto-hide, and animation options\" width=\"700\"\u003e\n\u003c/p\u003e\n\n#### 🛠️ Allowed Tools\n\nWhitelist shell commands and MCP tools that Copilot can use **without prompting for confirmation**. Each entry is passed as `--allow-tool` when launching the Copilot CLI, so matching commands execute immediately — no manual approval needed.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/global-allowed-tools.png\" alt=\"Allowed Tools settings tab\" width=\"500\"\u003e\n\u003c/p\u003e\n\nOn first run, the list is empty. Here are some commonly used tools:\n\n| Tool | Description |\n|------|-------------|\n| `shell(git log:*)` | Git log commands |\n| `shell(git diff:*)` | Git diff commands |\n| `shell(git status:*)` | Git status commands |\n| `shell(Set-Location:*)` | Change directory in PowerShell |\n| `mcp__github-mcp-server` | GitHub MCP server tools |\n\n\u003e **Tip:** Use wildcards (`*`) to allow all sub-commands under a prefix. For example, `shell(git log:*)` covers `git log`, `git log --oneline`, and any other git log variation.\n\n#### 📁 Allowed Directories\n\nGrant Copilot access to specific directories on your machine. Each entry is passed as `--add-dir` when launching the Copilot CLI, expanding the set of paths Copilot can read and write to.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/global-allowed-directories.png\" alt=\"Allowed Directories settings tab\" width=\"500\"\u003e\n\u003c/p\u003e\n\n| Directory | Description |\n|-----------|-------------|\n| `D:\\repo` | Your repository root |\n| `~\\.copilot` | Copilot session state |\n\n\u003e **Tip:** Add your top-level project folders so Copilot can navigate across repositories without being blocked by directory restrictions.\n\n#### 🌐 Allowed URLs\n\nWhitelist URLs that Copilot CLI can access without prompting. These are stored in the Copilot CLI global config (`~/.copilot/config.json`) as `allowed_urls`.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/global-allowed-urls.png\" alt=\"Allowed URLs settings tab\" width=\"500\"\u003e\n\u003c/p\u003e\n\n#### 💻 IDEs\n\nRegister your favorite IDEs — Visual Studio, VS Code, Rider, Eclipse, or any editor with a command-line launcher. Each IDE entry includes a description, executable path, and optional file pattern (e.g., `*.sln;*.slnx`) for automatic project file discovery in the context menu. The IDE Search section lets you manage directories excluded from file pattern search (e.g., `node_modules`, `bin`, `obj`).\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/custom-ide-setup.png\" alt=\"IDE settings with IDEs table and search ignored directories\" width=\"500\"\u003e\n\u003c/p\u003e\n\n#### 📑 Session Tabs\n\nConfigure custom session tabs — add, rename, remove, and reorder tabs. The first tab is the default for new sessions.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/settings-session-tabs.png\" alt=\"Session Tabs settings with add, rename, remove, and reorder\" width=\"500\"\u003e\n\u003c/p\u003e\n\n#### 🔀 Git \u0026 GitHub\n\nConfigure branch naming patterns for issue and PR-based workspaces. Use `{number}` and `{alias}` as placeholders.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/settings-git-github.png\" alt=\"Git \u0026 GitHub settings with issue and PR branch patterns\" width=\"500\"\u003e\n\u003c/p\u003e\n\n#### 🌐 Edge\n\nConfigure Microsoft Edge integration — toggle whether renaming a session automatically updates the Edge anchor tab title.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/settings-edge.png\" alt=\"Edge settings with tab rename sync option\" width=\"500\"\u003e\n\u003c/p\u003e\n\n---\n\n### 🔄 In-App Updates\n\nCopilot Booster checks for new versions on startup by scanning the GitHub releases page. When an update is available, a banner appears at the bottom of the window — click to download and install the latest version automatically.\n\n---\n\n### 🔔 System Tray\n\nCopilot Booster lives in your system tray for instant access. Closing the window minimizes to tray instead of exiting — only **Quit** from the tray menu exits the application.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/tray-menu.png\" alt=\"System tray context menu with Show, Settings, and Quit\" width=\"150\"\u003e\n\u003c/p\u003e\n\n- **Double-click** the tray icon to show/restore the window\n- **Right-click** for quick access to Show, Settings, or Quit\n- The tray icon is always visible while the app is running\n\n---\n\n## 🚀 Getting Started\n\n### Prerequisites\n\n- [.NET 10 Runtime](https://dotnet.microsoft.com/download/dotnet/10.0) (or SDK for building from source)\n- [GitHub Copilot CLI](https://docs.github.com/en/copilot/github-copilot-in-the-cli) — install via `winget install GitHub.Copilot` or `GitHub.Copilot.Prerelease`\n\n### Install\n\n#### Option A: Installer (Recommended)\n\nDownload **`CopilotBooster-Setup.exe`** from the [latest release](../../releases/latest) and run it.\n\n- Installs to `%APPDATA%\\CopilotBooster\\` — no admin required\n- Creates Start Menu and optional desktop shortcuts\n- Includes uninstaller (Add/Remove Programs)\n\n#### Option B: Portable EXE\n\nDownload **`CopilotBooster-win-x64.zip`** from the [latest release](../../releases/latest), extract it anywhere, and run `CopilotBooster.exe`.\n\n#### Option C: Build from Source\n\n```powershell\ngit clone \u003crepo-url\u003e copilot-booster\ncd copilot-booster\n.\\install.ps1\n```\n\n### Pin to Taskbar\n\n1. Run `CopilotBooster.exe` from the publish folder\n2. Right-click the icon in the taskbar → **Pin to taskbar**\n3. Right-click the pinned icon → **Settings** to configure your tools and directories\n\n### Manual Build\n\n```powershell\ncd src\ndotnet publish -c Release -o ..\\publish\n```\n\n### Build Installer (requires [Inno Setup](https://jrsoftware.org/isdownload.php))\n\n```powershell\ndotnet publish src/CopilotBooster.csproj -c Release -o publish\niscc installer.iss\n# Output: installer-output\\CopilotBooster-Setup.exe\n```\n\n---\n\n## 💻 Command Line\n\n```powershell\nCopilotBooster.exe                        # Open New Session tab\nCopilotBooster.exe \"C:\\my\\project\"        # New session in a specific directory\nCopilotBooster.exe --resume \u003csessionId\u003e   # Resume a session in its original CWD\nCopilotBooster.exe --open-existing        # Open the session browser\nCopilotBooster.exe --open-ide \u003csessionId\u003e # Open IDE picker for a session\nCopilotBooster.exe --settings             # Open settings\n```\n\n---\n\n## 🏗️ Architecture\n\n```\nCopilotBooster.exe (WinForms .NET 10, persistent taskbar window)\n├── System tray icon (always visible, minimize-to-tray on close)\n├── Sets AppUserModelID for taskbar/JumpList/notification association\n├── Registers PID → session mapping in %APPDATA%\\CopilotBooster\\active-pids.json\n├── Launches copilot.exe with --allow-tool and --add-dir from settings\n├── Creates session workspace.yaml + events.jsonl for new sessions\n├── Active context tracking (Terminal, Copilot CLI, IDE, Edge, Explorer)\n│   ├── PID registry + process scanning for terminals\n│   ├── events.jsonl content parsing for Copilot CLI status (working/idle/bell)\n│   ├── HWND tracking for IDE instances (persisted across restarts)\n│   ├── UI Automation for Edge anchor-tab detection\n│   └── HWND tracking for Explorer windows\n├── Per-session state (Edge tabs, session-specific data)\n├── IDE file pattern search (git ls-files / directory walk)\n├── Window handle cache persistence (unified for all window types)\n├── Terminal cache persistence across restarts\n├── Updates jump list on launch + every 5 min (background, coordinated)\n└── Cleans up on exit (unregisters PID, refreshes jump list)\n```\n\n### Key Services\n\n| Service | Purpose |\n|---------|---------|\n| `ActiveStatusTracker` | Aggregates active status across all context types with HWND persistence |\n| `EventsJournalService` | Content-based Copilot CLI status detection via events.jsonl parsing |\n| `BellNotificationService` | Notifications and bell state management |\n| `GlobalHotkeyService` | System-wide Win+Alt+X hotkey via Win32 `RegisterHotKey` |\n| `SessionDataService` | Unified session loading with Git detection caching |\n| `CopilotSessionCreatorService` | Creates new sessions with workspace.yaml and events.jsonl |\n| `EdgeWorkspaceService` | Edge browser workspace lifecycle and UI Automation |\n| `EdgeTabPersistenceService` | Save/restore Edge tabs per session |\n| `IdeFileSearchService` | Fast project file search (git ls-files / directory walk) |\n| `SessionStateService` | Per-session state directory management |\n| `WindowHandleCacheService` | Unified window handle persistence across restarts |\n| `TerminalCacheService` | Persists terminal sessions across app restarts |\n| `WindowFocusService` | HWND-based window focusing with P/Invoke |\n| `SessionService` | Session CRUD, search, and Git root detection |\n| `SessionArchiveService` | Archive and pin state persistence |\n| `CopilotLocator` | Finds the Copilot CLI executable |\n| `CopilotConfigService` | Reads/writes Copilot CLI global config (allowed_urls, trusted_folders) |\n\n### Files\n\n| Path | Purpose |\n|------|---------|\n| `%APPDATA%\\CopilotBooster\\launcher-settings.json` | Tools, directories, IDEs, file patterns, ignored dirs |\n| `%APPDATA%\\CopilotBooster\\active-pids.json` | PID → session ID mapping |\n| `%APPDATA%\\CopilotBooster\\terminal-cache.json` | Cached terminal sessions for restart persistence |\n| `%APPDATA%\\CopilotBooster\\window-handles.json` | Unified window handle cache (IDE, Explorer, Edge) |\n| `%APPDATA%\\CopilotBooster\\session-states.json` | Archive and pin states per session |\n| `%APPDATA%\\CopilotBooster\\sessions\\{id}\\` | Per-session state directory |\n| `%APPDATA%\\CopilotBooster\\sessions\\{id}\\edge-tabs.json` | Saved Edge tab URLs |\n| `%APPDATA%\\CopilotBooster\\jumplist-lastupdate.txt` | Update coordination timestamp |\n| `%APPDATA%\\CopilotBooster\\launcher.log` | Debug log |\n| `%APPDATA%\\CopilotBooster\\pinned-directories.json` | Manually-added directories for New Session |\n| `~/.copilot/session-state/` | Session metadata (managed by Copilot CLI) |\n\n---\n\n## 📄 License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frogerbarreto%2Fcopilot-booster","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frogerbarreto%2Fcopilot-booster","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frogerbarreto%2Fcopilot-booster/lists"}