Skip to content

rogerbarreto/copilot-booster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

296 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Copilot Booster

Copilot Booster Logo

Run multiple Copilot agents in parallel. One taskbar icon to manage them all.

Modern 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.

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.

Latest Release

πŸ“¦ Download Installer Β |Β  πŸ“ Download Portable ZIP

Why Copilot Booster?

Without Copilot Booster With Copilot Booster
Alt-Tab through dozens of windows to find the right terminal Click the session β†’ focus the exact terminal, IDE, or browser
Manually track which agent is working on what Live Running column shows Terminal, Copilot CLI, IDE, Edge, and Explorer status per session
One shared browser for all research Isolated Edge workspaces per session β€” tabs saved and restored automatically
Context-switch between repos by cd-ing around Git worktree workspaces give each agent its own branch and directory
Lose track of parallel agents after a restart Window handles, terminals, and Edge tabs all persist across restarts
No idea when an agent finishes πŸ”” Bell notifications with popups when a session is ready

✨ Features at a Glance

πŸ”¦ Spotlight

Press Win+Alt+X from anywhere to slide the Booster window up from the taskbar. Click away to dismiss β€” no window management needed.

Quick Slide β€” window slides up from taskbar

  • Global hotkey (Win+Alt+X) β€” show/hide from anywhere, system-wide via Win32 RegisterHotKey
  • Slide animation β€” smooth slide-up from the bottom of the screen (configurable)
  • Auto-hide on focus loss β€” the window dismisses when you click elsewhere (stays visible for dialogs, context menus, and settings)
  • 6 position options β€” Bottom Left, Bottom Center, Bottom Right, Top Left, Top Center, Top Right
  • Per-monitor support β€” choose which screen to show the spotlight on, or follow the cursor
  • Tray/taskbar activation β€” clicking the tray icon or taskbar button shows the spotlight on the cursor's screen
  • Enabled by default β€” spotlight mode is on out of the box; configure position and screen in Settings

πŸ“Œ Taskbar Jump List

Right-click the pinned icon to access everything:

Jump list with tasks

  • New Copilot Session β€” start a new session with a smart directory picker
  • Existing Sessions β€” browse, resume, or open sessions in your IDE
  • Settings β€” configure tools, directories, and IDEs

πŸ”„ Session Browser & Active Context Tracking

The 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.

Session browser with active tracking, bell notifications, and status indicators

The Running column tracks running contexts across multiple environments:

Context How it's detected
Terminal Windows launched via "Open Terminal" are tracked by PID and cached across restarts
Copilot CLI Detected via events.jsonl content parsing β€” working (spinner) or idle (bell)
IDE IDEs launched via the Open menu are tracked by window handle and cached across restarts
Edge Browser workspaces tracked via UI Automation anchor-tab detection
Explorer Explorer windows opened via context menu are tracked by HWND
Files Session files folder opened via context menu

Each 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.

Click-to-focus across Terminal, IDE, and Edge per session

πŸ“‘ Custom Session Tabs

Organize 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.

Session tabs with drag-and-drop reordering

Multiple custom session tabs for organizing work

  • Quick add (+) button β€” create new tabs directly from the session tab strip without opening Settings
  • Drag-and-drop columns β€” reorder grid columns by dragging headers; column order is persisted across restarts (Status column stays pinned)
  • Drag-to-tab β€” drag selected sessions onto a different tab header to move them between tabs
  • Move sessions between tabs β€” right-click β†’ "Move to" to reassign sessions to any tab

Other session browser features:

  • Multi-select β€” hold Ctrl for individual selection or Shift for range selection; batch Pin/Unpin and Move to tab via context menu
  • Search β€” filter sessions by title, folder, or metadata as you type
  • Pinned sessions β€” pin sessions to keep them at the top regardless of sorting
  • Running-first sorting β€” sessions with active processes automatically float to the top
  • Auto-select on tab switch β€” switching tabs immediately selects the first row for quick navigation
  • Auto-refresh β€” the list updates when new sessions appear or names change externally
  • Auto-cleanup β€” empty sessions with no activity are automatically removed

πŸ”” Session Status & Notifications

The 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.

Session status column showing bell and spinner icons with red notification rows

When 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.

Notification when session is ready

  • Content-based detection β€” parses event types (assistant.turn_start, tool.execution_start, ask_user) for accurate status
  • One-shot notifications β€” each bell only fires once per idle transition
  • Staleness threshold β€” sessions inactive for 30+ minutes are ignored to prevent false bells
  • Startup-aware β€” existing idle sessions don't trigger false notifications when the app launches
  • Persistent bell state β€” bell notifications survive app restarts
  • Configurable β€” toggle notifications on/off in Settings

πŸ“‹ Right-Click Context Menu

Right-click any session row to access all actions in a single context menu with system icons:

Right-click context menu with icons, IDE sub-menus, and all session actions

Action Description
Open Files Sub-menu listing session files (plan.md, files/ contents) with shell icons; top item opens session folder
Open Session Resume the session in its original working directory
Edit Session Rename the session or change its working directory
Pin / Unpin Pin sessions to keep them at the top of the list
Move to β†’ Move sessions between configurable tabs
Open as New Copilot Session Start a fresh Copilot CLI session in the same directory
Open as New Copilot Session Workspace Create a Git worktree workspace (Git repos only)
Open Terminal Launch a terminal via Windows Terminal (wt.exe)
Open in Explorer (CWD) Open the working directory in Explorer
Open in {IDE} Sub-menu with CWD/Repo Root folders + matched project files
Open in Edge Launch a managed Edge browser workspace
Save Edge State Manually save Edge tabs (visible when Edge is open)
Delete Session Soft-delete a session (last item, separated)

πŸ” IDE File Pattern Matching

Configure 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.

IDE sub-menu showing CWD/Repo Root and matched .sln file

  • Fast search β€” uses git ls-files for Git repos (respects .gitignore), falls back to directory walk with configurable ignored directories
  • Depth-sorted β€” shallowest matches shown first, up to 5 results
  • Configurable exclusions β€” manage ignored directories (node_modules, bin, obj, etc.) in the IDEs settings tab

IDE settings with IDEs and search ignored directories


🌐 Edge Browser Workspaces

Open 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.

Edge browser workspace with session anchor tab

  • Tab save/restore β€” save Edge tabs via "Save Edge State" in the context menu; tabs are restored when reopening Edge for the session
  • Active tracking β€” the Edge workspace appears as a clickable link in the Running column
  • Session name in tab β€” the anchor tab title shows the session name; updates live when you change the alias
  • Manual save β€” "Save Edge State" context menu button saves all open tabs for the session
  • Tab-level detection β€” uses UI Automation to find the anchor tab across all Edge windows
  • Auto-cleanup β€” when you close the anchor tab or the Edge window, the workspace is automatically removed from tracking

πŸ“‚ Smart Directory Picker

The New Session dialog shows your most-used working directories β€” sorted by frequency across all previous sessions. Non-existent paths are automatically cleaned up.

New Session dialog with directory picker and session counts

Each directory shows:

  • # Sessions created β€” how many sessions have used this path
  • Git β€” whether the directory is inside a Git repository (including worktrees)

Right-click any directory to access all actions, or double-click to quickly start a new session with a name prompt.


🌿 Git Workspace Creation

For Git-enabled directories, Copilot Booster can create isolated workspaces backed by git worktrees. Each workspace gets its own branch and directory β€” perfect for working on multiple features in parallel without stashing or switching branches.

Create a workspace from two places:

  • New Session β†’ right-click a Git directory β†’ New Copilot Session Workspace
  • Existing Sessions β†’ right-click a session β†’ Open as New Copilot Session Workspace

Workspaces 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.

The workspace dialog offers three modes:

Existing Branch

Check out an existing branch into its own worktree. The branch dropdown lists all local and remote branches.

Create workspace from an existing branch

New Branch

Create a new branch based on any existing branch. Pick a base branch from the dropdown and name your new branch.

Create workspace with a new branch from a base branch

From PR

Start 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.

Create workspace from a GitHub Pull Request

From Issue

Start 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}).

Create workspace from a GitHub Issue


βš™οΈ Settings

All configuration lives in a tabbed UI with info labels and tooltips β€” no JSON editing required.

Settings dialog with General, Copilot CLI, IDEs, Spotlight, and other tabs

  • Theme β€” choose between System (default), Light, or Dark theme; persisted across restarts
  • 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
  • Notify on bell β€” toggle Windows notifications when sessions finish work
  • Always on top β€” keep the window above other windows
  • Auto-hide on focus β€” hide other session windows when focusing one
  • Max active sessions β€” configurable limit (0 = unlimited)
  • Pinned order β€” sort pinned sessions by last updated or alias name
  • Default Work Dir β€” set the default working directory for new sessions
  • Workspace Dir β€” set the directory where Git worktree workspaces are stored (default: %APPDATA%\CopilotBooster\Workspaces\)
  • Spotlight β€” enable/disable the spotlight feature and auto-hiding independently, configure position (6 options), target screen (per-monitor), and slide animation

Spotlight settings with enable, position, screen, auto-hide, and animation options

πŸ› οΈ Allowed Tools

Whitelist 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.

Allowed Tools settings tab

On first run, the list is empty. Here are some commonly used tools:

Tool Description
shell(git log:*) Git log commands
shell(git diff:*) Git diff commands
shell(git status:*) Git status commands
shell(Set-Location:*) Change directory in PowerShell
mcp__github-mcp-server GitHub MCP server tools

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.

πŸ“ Allowed Directories

Grant 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.

Allowed Directories settings tab

Directory Description
D:\repo Your repository root
~\.copilot Copilot session state

Tip: Add your top-level project folders so Copilot can navigate across repositories without being blocked by directory restrictions.

🌐 Allowed URLs

Whitelist URLs that Copilot CLI can access without prompting. These are stored in the Copilot CLI global config (~/.copilot/config.json) as allowed_urls.

Allowed URLs settings tab

πŸ’» IDEs

Register 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).

IDE settings with IDEs table and search ignored directories

πŸ“‘ Session Tabs

Configure custom session tabs β€” add, rename, remove, and reorder tabs. The first tab is the default for new sessions.

Session Tabs settings with add, rename, remove, and reorder

πŸ”€ Git & GitHub

Configure branch naming patterns for issue and PR-based workspaces. Use {number} and {alias} as placeholders.

Git & GitHub settings with issue and PR branch patterns

🌐 Edge

Configure Microsoft Edge integration β€” toggle whether renaming a session automatically updates the Edge anchor tab title.

Edge settings with tab rename sync option


πŸ”„ In-App Updates

Copilot 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.


πŸ”” System Tray

Copilot 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.

System tray context menu with Show, Settings, and Quit

  • Double-click the tray icon to show/restore the window
  • Right-click for quick access to Show, Settings, or Quit
  • The tray icon is always visible while the app is running

πŸš€ Getting Started

Prerequisites

Install

Option A: Installer (Recommended)

Download CopilotBooster-Setup.exe from the latest release and run it.

  • Installs to %APPDATA%\CopilotBooster\ β€” no admin required
  • Creates Start Menu and optional desktop shortcuts
  • Includes uninstaller (Add/Remove Programs)

Option B: Portable EXE

Download CopilotBooster-win-x64.zip from the latest release, extract it anywhere, and run CopilotBooster.exe.

Option C: Build from Source

git clone <repo-url> copilot-booster
cd copilot-booster
.\install.ps1

Pin to Taskbar

  1. Run CopilotBooster.exe from the publish folder
  2. Right-click the icon in the taskbar β†’ Pin to taskbar
  3. Right-click the pinned icon β†’ Settings to configure your tools and directories

Manual Build

cd src
dotnet publish -c Release -o ..\publish

Build Installer (requires Inno Setup)

dotnet publish src/CopilotBooster.csproj -c Release -o publish
iscc installer.iss
# Output: installer-output\CopilotBooster-Setup.exe

πŸ’» Command Line

CopilotBooster.exe                        # Open New Session tab
CopilotBooster.exe "C:\my\project"        # New session in a specific directory
CopilotBooster.exe --resume <sessionId>   # Resume a session in its original CWD
CopilotBooster.exe --open-existing        # Open the session browser
CopilotBooster.exe --open-ide <sessionId> # Open IDE picker for a session
CopilotBooster.exe --settings             # Open settings

πŸ—οΈ Architecture

CopilotBooster.exe (WinForms .NET 10, persistent taskbar window)
β”œβ”€β”€ System tray icon (always visible, minimize-to-tray on close)
β”œβ”€β”€ Sets AppUserModelID for taskbar/JumpList/notification association
β”œβ”€β”€ Registers PID β†’ session mapping in %APPDATA%\CopilotBooster\active-pids.json
β”œβ”€β”€ Launches copilot.exe with --allow-tool and --add-dir from settings
β”œβ”€β”€ Creates session workspace.yaml + events.jsonl for new sessions
β”œβ”€β”€ Active context tracking (Terminal, Copilot CLI, IDE, Edge, Explorer)
β”‚   β”œβ”€β”€ PID registry + process scanning for terminals
β”‚   β”œβ”€β”€ events.jsonl content parsing for Copilot CLI status (working/idle/bell)
β”‚   β”œβ”€β”€ HWND tracking for IDE instances (persisted across restarts)
β”‚   β”œβ”€β”€ UI Automation for Edge anchor-tab detection
β”‚   └── HWND tracking for Explorer windows
β”œβ”€β”€ Per-session state (Edge tabs, session-specific data)
β”œβ”€β”€ IDE file pattern search (git ls-files / directory walk)
β”œβ”€β”€ Window handle cache persistence (unified for all window types)
β”œβ”€β”€ Terminal cache persistence across restarts
β”œβ”€β”€ Updates jump list on launch + every 5 min (background, coordinated)
└── Cleans up on exit (unregisters PID, refreshes jump list)

Key Services

Service Purpose
ActiveStatusTracker Aggregates active status across all context types with HWND persistence
EventsJournalService Content-based Copilot CLI status detection via events.jsonl parsing
BellNotificationService Notifications and bell state management
GlobalHotkeyService System-wide Win+Alt+X hotkey via Win32 RegisterHotKey
SessionDataService Unified session loading with Git detection caching
CopilotSessionCreatorService Creates new sessions with workspace.yaml and events.jsonl
EdgeWorkspaceService Edge browser workspace lifecycle and UI Automation
EdgeTabPersistenceService Save/restore Edge tabs per session
IdeFileSearchService Fast project file search (git ls-files / directory walk)
SessionStateService Per-session state directory management
WindowHandleCacheService Unified window handle persistence across restarts
TerminalCacheService Persists terminal sessions across app restarts
WindowFocusService HWND-based window focusing with P/Invoke
SessionService Session CRUD, search, and Git root detection
SessionArchiveService Archive and pin state persistence
CopilotLocator Finds the Copilot CLI executable
CopilotConfigService Reads/writes Copilot CLI global config (allowed_urls, trusted_folders)

Files

Path Purpose
%APPDATA%\CopilotBooster\launcher-settings.json Tools, directories, IDEs, file patterns, ignored dirs
%APPDATA%\CopilotBooster\active-pids.json PID β†’ session ID mapping
%APPDATA%\CopilotBooster\terminal-cache.json Cached terminal sessions for restart persistence
%APPDATA%\CopilotBooster\window-handles.json Unified window handle cache (IDE, Explorer, Edge)
%APPDATA%\CopilotBooster\session-states.json Archive and pin states per session
%APPDATA%\CopilotBooster\sessions\{id}\ Per-session state directory
%APPDATA%\CopilotBooster\sessions\{id}\edge-tabs.json Saved Edge tab URLs
%APPDATA%\CopilotBooster\jumplist-lastupdate.txt Update coordination timestamp
%APPDATA%\CopilotBooster\launcher.log Debug log
%APPDATA%\CopilotBooster\pinned-directories.json Manually-added directories for New Session
~/.copilot/session-state/ Session metadata (managed by Copilot CLI)

πŸ“„ License

MIT

About

Copilot Booster - Modern AI-assisted development isn't one task at a time. It's multiple Copilot agents running simultaneously!

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

Packages

 
 
 

Contributors

Languages