{"id":48569321,"url":"https://github.com/bommerts/copilotclicontextmenu","last_synced_at":"2026-04-08T14:00:40.192Z","repository":{"id":349874790,"uuid":"1204320348","full_name":"bommerts/CopilotCLIContextMenu","owner":"bommerts","description":"Windows 11 Explorer shell extension that adds 'Open GitHub Copilot CLI' to the top-level right-click context menu. Launches copilot --yolo as administrator in the selected folder. Built as a COM DLL (IExplorerCommand) with MSIX sparse packaging. Includes a single-file Inno Setup installer.","archived":false,"fork":false,"pushed_at":"2026-04-07T22:51:35.000Z","size":1859,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-04-08T00:26:25.933Z","etag":null,"topics":["context-menu","copilot-cli","explorer","github-copilot","msix","shell-extension","windows-11"],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bommerts.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2026-04-07T22:44:27.000Z","updated_at":"2026-04-07T22:51:39.000Z","dependencies_parsed_at":"2026-04-08T14:00:23.539Z","dependency_job_id":null,"html_url":"https://github.com/bommerts/CopilotCLIContextMenu","commit_stats":null,"previous_names":["bommerts/copilotclicontextmenu"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/bommerts/CopilotCLIContextMenu","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bommerts%2FCopilotCLIContextMenu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bommerts%2FCopilotCLIContextMenu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bommerts%2FCopilotCLIContextMenu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bommerts%2FCopilotCLIContextMenu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bommerts","download_url":"https://codeload.github.com/bommerts/CopilotCLIContextMenu/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bommerts%2FCopilotCLIContextMenu/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31558386,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T10:21:54.569Z","status":"ssl_error","status_checked_at":"2026-04-08T10:21:38.171Z","response_time":54,"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":["context-menu","copilot-cli","explorer","github-copilot","msix","shell-extension","windows-11"],"created_at":"2026-04-08T14:00:20.216Z","updated_at":"2026-04-08T14:00:40.182Z","avatar_url":"https://github.com/bommerts.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Copilot CLI Context Menu for Windows 11\n\nAdds **\"Open GitHub Copilot CLI\"** to the Windows 11 **top-level** right-click\ncontext menu in Explorer. No need to click \"Show more options\".\n\nClicking the entry opens an **elevated** PowerShell window in the selected\nfolder with Copilot CLI running in **yolo mode** (`--yolo`, all permissions\nenabled).\n\n![Screenshot](cli.png)\n\n## How It Works\n\n| Action | Result |\n|--------|--------|\n| Right-click **inside** a folder (background) | Opens Copilot CLI in that folder |\n| Right-click **on** a folder | Opens Copilot CLI in the clicked folder |\n\n## Prerequisites\n\n- **Windows 11** (21H2+)\n- **PowerShell 7+**: [Install](https://aka.ms/powershell)\n- **GitHub Copilot CLI**: `winget install GitHub.Copilot` or `npm install -g @github/copilot`\n\n---\n\n## Quick Install (Recommended)\n\n**Just want it to work? Download and run the installer. No build tools needed.**\n\n1. Download **[CopilotCLIContextMenu-Setup.exe](https://github.com/bommerts/CopilotCLIContextMenu/releases/latest/download/CopilotCLIContextMenu-Setup.exe)**\n   from the [Releases](https://github.com/bommerts/CopilotCLIContextMenu/releases) page\n2. Run it as **Administrator**\n3. Click through the setup wizard\n4. Right-click in any folder. **\"Open GitHub Copilot CLI\"** is in the\n   top-level context menu\n\nThe installer handles everything automatically:\n- Installs a code-signing certificate into Trusted People\n- Deploys the signed MSIX sparse package\n- Registers the COM shell extension with Explorer\n\nTo **uninstall**, use **Add or Remove Programs** in Windows Settings. It\ncleanly removes the COM registration, MSIX package, and certificate.\n\n---\n\n## Build From Source\n\nIf you prefer to build it yourself, or want to modify the code, follow these\nsteps. This requires Visual Studio and the Windows SDK.\n\n### Additional Prerequisites\n\n- **Visual Studio 2022** with:\n  - \"Desktop development with C++\" workload\n  - \".NET desktop development\" workload → \"Windows app development tools\" component\n- **Inno Setup 6** (optional, only if you want to rebuild the installer)\n\n### 1. Create a code-signing certificate\n\n```powershell\n# Run as Administrator\n.\\scripts\\Create-Certificate.ps1\n```\n\nThis generates a self-signed certificate. Install it into Trusted People:\n\n```powershell\nImport-Certificate -FilePath certificates\\CopilotCLIContextMenu.cer `\n    -CertStoreLocation Cert:\\LocalMachine\\TrustedPeople\n```\n\n### 2. Configure Visual Studio to sign with your certificate\n\nIn Visual Studio, right-click the **Package** project → Properties → Signing,\nand select the certificate you just created. Alternatively, set the\n`PackageCertificateThumbprint` in `Package.wapproj`.\n\n### 3. Build the solution\n\nOpen `CopilotCliContextMenu.sln` in Visual Studio 2022 and build\n**Release | x64** (or **ARM64** for ARM devices).\n\n### 4. Deploy the MSIX package\n\nThe packaging project produces an `.msix` file. Either:\n\n- **Right-click → Deploy** the Package project in Visual Studio, or\n- Use PowerShell:\n  ```powershell\n  Add-AppxPackage -Path .\\Package\\AppPackages\\*.msix\n  ```\n\n### 5. Register the shell extension\n\n```powershell\n# Run as Administrator\n.\\scripts\\Register-ShellExtension.ps1\n```\n\n### 6. Test it\n\nRight-click inside any folder in Explorer. You should see **\"Open GitHub\nCopilot CLI\"** in the top-level context menu.\n\n### Uninstall (manual build)\n\n```powershell\n# Run as Administrator\n.\\scripts\\Register-ShellExtension.ps1 -Unregister\n\n# Remove the MSIX package\nGet-AppxPackage CopilotCLIContextMenu | Remove-AppxPackage\n```\n\n### Developer Mode Alternative\n\nIf you don't want to deal with certificates during development, enable\n[Windows Developer Mode](https://learn.microsoft.com/en-us/windows/apps/get-started/enable-your-device-for-development)\nand install the package with:\n\n```powershell\nAdd-AppxPackage -Register .\\Package\\Package.appxmanifest -AllowUnsigned\n```\n\n---\n\n## Architecture\n\n```\nCopilotCLIContextMenu/\n├── CopilotCliContextMenu.sln\n├── ShellExtension/                  # COM DLL (IExplorerCommand)\n│   ├── CopilotCommand.cpp/h        # Menu title, icon, and Invoke()\n│   ├── CopilotCommandFactory.*      # IClassFactory\n│   ├── dllmain.cpp                  # DllGetClassObject / DllCanUnloadNow\n│   ├── guid.h/cpp                   # COM CLSIDs\n│   ├── framework.h                  # Common headers\n│   └── exports.def                  # DLL exports\n├── Stub/                            # No-op .exe (MSIX requirement)\n├── Package/                         # MSIX sparse package\n│   ├── Package.appxmanifest         # COM + context menu declarations\n│   └── Images/                      # Package icons\n├── installer.iss                    # Inno Setup script\n└── scripts/\n    ├── Create-Certificate.ps1       # Self-signed cert for signing\n    ├── Register-ShellExtension.ps1  # Manual COM DLL registration\n    ├── PostInstall.ps1              # Called by installer\n    └── PreUninstall.ps1             # Called by uninstaller\n```\n\n## Why This Is So Complex\n\nWindows 11's modern context menu only shows entries from shell extensions that:\n\n1. Implement `IExplorerCommand` (not the legacy `IContextMenu`)\n2. Are packaged in an MSIX package with `desktop4:FileExplorerContextMenus`\n3. Are registered as a COM server in the manifest\n4. The package is signed with a trusted certificate\n\nSimple registry entries (the Windows 10 approach) only appear under \"Show more\noptions\" on Windows 11. This project satisfies all four requirements so the\nentry appears in the **top-level** context menu.\n\n## Credits\n\nArchitecture inspired by [spakov/GenericShellEx](https://github.com/spakov/GenericShellEx) (MIT).\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbommerts%2Fcopilotclicontextmenu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbommerts%2Fcopilotclicontextmenu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbommerts%2Fcopilotclicontextmenu/lists"}