You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Support GitHub Copilot: configure Copilot to use agentgateway #86
MCP entries: ~/.copilot/mcp-config.json and VS Code mcp.json
Note: both take a static API key, there is no credential-helper hook like Claude Code's apiKeyHelper. Inline completions always go to GitHub and are out of scope.
I've prepared an implementation as six stacked PRs; each is reviewable on its own (review its last commit).
Design in short
Why a proxy: the clients take only a static key (see above), so the daemon runs an optional loopback proxy (daemon.llmProxy.listen, user mode only) that adds the device's gateway credential. A per-device pairing value on every request keeps other local users and browser pages out.
Routes: each program gets a fixed route, so the gateway sees a per-tool client ID.
Two model paths:
The gateway's own models, through the clients' bring-your-own-key files: Copilot CLI providers.json, VS Code chatLanguageModels.json.
GitHub's models on the user's Copilot seat: VS Code's overrideCapiUrl points at the proxy, which forwards to a gateway pass-through route with the user's Copilot token kept.
Fleet side: per-program status to the controller, an opt-in reconcile tick, and a fail-closed default when the proxy is down.
Out of scope: the MCP entries from this issue, and inline completions (they always go to GitHub).
Activity
LutzLange commentedon Sep 30, 2026
I've prepared an implementation as six stacked PRs; each is reviewable on its own (review its last commit).
Design in short
daemon.llmProxy.listen, user mode only) that adds the device's gateway credential. A per-device pairing value on every request keeps other local users and browser pages out.providers.json, VS CodechatLanguageModels.json.overrideCapiUrlpoints at the proxy, which forwards to a gateway pass-through route with the user's Copilot token kept.Order
llmGateway.whenProxyUnavailableandexamples/copilot/All six pass CI. They were tested with unit tests and with lab tests on a Linux VM. The listener started on a branch by John Howard and James McShane.
🤖 Generated with Claude Code
feat(agent): local LLM proxy for clients without an API-key helper (#134
feat(agent): manage Copilot CLI and VS Code Copilot Chat (#135)
peterj commentedon Oct 7, 2026
@LutzLange we can close this one, right?