Skip to content

Support GitHub Copilot: configure Copilot to use agentgateway #86

Open

Description

@LutzLange

Copilot is not supported today; agentdesktop only inventories ~/.copilot/mcp-config.json.

Copilot can be pointed at a gateway through its BYOK config, so it fits the existing programs.* reconcilers:

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.

Activity

  1. LutzLange commented on Sep 30, 2026

    @LutzLange
    ContributorAuthor

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

    Order

    1. fix(oidc): open the authorization page without waiting for the launcher #133 fix(oidc): open the authorization page without waiting for the launcher (independent)
    2. feat(agent): local LLM proxy for clients without an API-key helper #134 local LLM proxy
    3. feat(agent): manage Copilot CLI and VS Code Copilot Chat #135 Copilot CLI and VS Code Copilot Chat programs
    4. feat: report per-program configuration status to the controller #136 per-program configuration status
    5. feat(agent): opt-in reconcile tick; skip identical writes #137 opt-in reconcile tick; skip identical writes
    6. feat: llmGateway.whenProxyUnavailable and a GitHub Copilot example #138 llmGateway.whenProxyUnavailable and examples/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

  2. peterj commented on Oct 7, 2026

    @peterj
    Collaborator

    @LutzLange we can close this one, right?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions