Releases: damnthonyy/vscode
v0.54.0 — Main chat requests now intercepted by headroom
What's new
Fix: Main chat requests now routed through headroom
Previous versions only compressed inline completions (the ghost-text suggestions). Main chat requests (everything in the Copilot Chat panel) were silently falling back to WebSocket transport, bypassing the HTTP proxy interceptor entirely — resulting in 0% token savings for chat.
This release forces HTTP transport whenever github.copilot.chat.proxy.url is configured, ensuring all chat traffic flows through headroom.
Huge thanks to @boston008 for identifying the root cause — WebSocket transport in chatMLFetcher.ts bypassing the HTTP interceptor — and providing the fix.
Install
Quick install (macOS)
bash <(curl -fsSL https://raw.githubusercontent.com/damnthonyy/vscode/main/scripts/install-macos.sh)Quick install (WSL / Linux)
bash <(curl -fsSL https://raw.githubusercontent.com/damnthonyy/vscode/main/scripts/install-wsl.sh)Manual install
Download copilot-proxy.vsix below, then:
code --install-extension copilot-proxy.vsix --forceRequired VS Code settings
Open Ctrl/Cmd+Shift+P → Open User Settings (JSON) and add:
{
"github.copilot.chat.proxy.url": "http://localhost:8787/v1",
"extensions.autoUpdate": "off"
"extensions.autoCheckUpdates": "off"
}Note:
extensions.autoUpdate: falseandextensions.autoCheckUpdates: falseprevent the VS Code marketplace from silently replacing this patched extension with the official one.
Start headroom (Copilot mode)
export GITHUB_TOKEN=$(gh auth token)
docker compose -f docker-compose.yml -f docker-compose.copilot.yml up headroom-proxyChangelog
- v0.54.0 — Force HTTP transport when headroom proxy URL is set, fixing 0% savings on main chat (credit: @boston008)
- v0.53.3 — WSL remote install fix + macOS install script
- v0.53.2 — Initial release with
ProxyInterceptingFetcherServiceand Docker VSIX build pipeline
v0.53.3 — WSL Remote + macOS install fix
What's fixed
WSL Remote install (scripts/install-wsl.sh)
VS Code Remote WSL runs two separate extension hosts: one on Windows and one on the WSL Linux server. Previously the script only installed on the Windows side, so the remote server kept picking up the official marketplace extension.
The script now installs on both sides automatically:
code --install-extension copilot-proxy.vsix --force # Windows side
code --remote "wsl+${WSL_DISTRO_NAME}" --install-extension ... --force # WSL remote sidemacOS install (scripts/install-macos.sh) — new
On macOS, Copilot Chat is bundled as a built-in extension inside the app. After a first install attempt, VS Code writes a "pending restart" state that blocks reinstalls — even after Cmd+Q — because Code Helper processes linger in the background, causing:
"Please restart VS Code before reinstalling GitHub Copilot Chat."
install-macos.sh kills all VS Code processes before installing to clear that state.
Auto-update settings
Both extensions.autoUpdate: false and extensions.autoCheckUpdates: false must be set. One alone is not enough.
Installation
macOS:
bash scripts/install-macos.shWSL:
bash scripts/install-wsl.shThen in VS Code settings (Ctrl/Cmd+Shift+P → Open User Settings JSON):
{
"github.copilot.chat.proxy.url": "http://localhost:8787/v1",
"extensions.autoUpdate": "off",
"extensions.autoCheckUpdates": "off"
}Previous releases
v0.53.2— Addedgithub.copilot.chat.proxy.urlVS Code setting, Docker VSIX builder, WSL install script
v0.53.2 — Headroom proxy integration for Copilot Chat
Overview
This release patches the GitHub Copilot Chat VS Code extension to route all LLM requests through Headroom, a context-compression proxy, without requiring TLS interception or any OS-level certificate installation.
It is a drop-in replacement for the official GitHub.copilot-chat marketplace extension.
What's new in v0.53.2
Core: proxy interception layer
All requests to GitHub Copilot LLM endpoints (api.githubcopilot.com and variants) are transparently rewritten to target the Headroom proxy. The original destination is preserved via X-Original-Host and X-Original-Url headers so Headroom knows where to forward after compression.
Before: POST https://api.githubcopilot.com/v1/chat/completions
After: POST http://localhost:8787/v1/chat/completions
X-Original-Host: api.githubcopilot.com
X-Original-Url: https://api.githubcopilot.com/v1/chat/completions
Interception covers both request paths inside the extension:
- Direct fetch path — BYOK / custom endpoints via
networking.ts - CAPI path — standard Copilot chat completions via
ProxyInterceptingFetcherServiceincapiClient.ts
New VS Code setting: github.copilot.chat.proxy.url
Previously, the only way to configure the proxy was via the COPILOT_PROXY_URL environment variable, which only works when VS Code is launched from a terminal where that variable is exported.
The new VS Code setting persists independently of how VS Code is launched:
| Launch method | COPILOT_PROXY_URL env var |
github.copilot.chat.proxy.url setting |
|---|---|---|
Terminal (./scripts/code.sh) |
✅ | ✅ |
| Dock / Start Menu / Spotlight | ❌ | ✅ |
| Remote-WSL / after reboot | ❌ | ✅ |
Improved WSL host IP detection (scripts/install-wsl.sh)
The install script now uses a 4-level fallback strategy to reliably detect the Windows host IP in any WSL2 networking configuration:
- Mirrored networking mode — detected via
.wslconfig, uses127.0.0.1directly ip routedefault gateway — reliable in standard NAT mode/etc/resolv.conf— filtered to exclude loopback addresses (127.x) set bysystemd-resolved/etc/resolv.confunfiltered — last resort
Installation
Requirements
- VS Code 1.125.0 or later
- Headroom running on your machine or network
Step 1 — Download and install the extension
Download copilot-proxy.vsix from the assets below, then:
code --install-extension copilot-proxy.vsix --forceWindows / WSL users: use the automated install script instead:
git clone https://github.com/damnthonyy/vscode cd vscode bash scripts/install-wsl.sh
Step 2 — Configure VS Code
Open Ctrl/Cmd+Shift+P → Open User Settings (JSON) and add:
"github.copilot.chat.proxy.url": "http://localhost:8787/v1",
"extensions.autoUpdate": "off"Replace localhost with your Headroom host IP if running remotely.
extensions.autoUpdate: false prevents VS Code from overwriting the patched extension with the marketplace version.
Step 3 — Start Headroom and test
headroom proxy --port 8787Open Copilot Chat in VS Code and send a message. Headroom should receive the request and compress the context before forwarding to GitHub Copilot.
Compatibility
| Version | |
|---|---|
| Base extension | github.copilot-chat@0.53.0 |
| VS Code engine | ^1.125.0 |
| Headroom | Compatible with X-Original-Host header support (see PR #1192) |