Skip to content

Latest commit

 

History

History
95 lines (64 loc) · 2.68 KB

File metadata and controls

95 lines (64 loc) · 2.68 KB

Remote SDK Host

Host application that exposes the GitHub Copilot SDK over Microsoft Dev Tunnels, enabling browser-based clients to interact with Copilot.

Installation

npm install -g github:avanderhoorn/tunnel-proxy-release

Prerequisites:

  • Node.js 20+

  • macOS: No extra dependencies are needed.

  • Linux: The following system packages are required:

    • libsecret-1-0 — for secure credential storage (keytar)
    • make, gcc/g++, python3 — for building node-pty if prebuilt binaries are not available (used for remote terminal support)

    On Ubuntu/Debian:

    sudo apt-get install -y libsecret-1-0 make gcc g++ python3

Codespaces / Dev Containers

Running in a container requires additional setup — see the appendix for instructions.

Usage

Start the host:

remote-sdk-host

Note: In Codespaces/containers, use the dbus-run-session wrapper shown in the appendix.

On first run, you'll be prompted to authenticate with GitHub via device flow. The tunnel ID and cluster will be displayed — use these to connect from the web client.

Commands

remote-sdk-host              # Start the tunnel host
remote-sdk-host logout       # Clear stored GitHub credentials
remote-sdk-host tunnel       # Show stored tunnel configuration
remote-sdk-host tunnel clear # Clear stored tunnel configuration

Options

-d, --debug    Enable verbose debug logging
-p, --port     Port for local SDK connection (default: auto)
-V, --version  Show version number
-h, --help     Show help

Web Client

Connect to your running host using the web client:

https://gh.io/copilot-tunnel

Enter the tunnel ID and cluster displayed by the host to establish a connection.

Updating

To update to the latest version:

npm install -g github:avanderhoorn/tunnel-proxy-release

Appendix: Codespaces / Dev Containers

Running in a container (e.g. GitHub Codespaces) requires additional setup because there is no D-Bus session bus or secret service available by default.

  1. Install dependencies:

    sudo apt-get install -y libsecret-1-0 dbus gnome-keyring make gcc g++ python3
  2. Generate a machine ID and start the D-Bus system daemon:

    sudo bash -c 'dbus-uuidgen > /etc/machine-id'
    sudo mkdir -p /run/dbus
    sudo dbus-daemon --system --fork
  3. Run remote-sdk-host inside a D-Bus session with an unlocked keyring:

    dbus-run-session -- bash -c 'echo "" | gnome-keyring-daemon --unlock && remote-sdk-host'