Introduction

The plugin ecosystem of DeepSeek Harness revolves around the concept of “everything is a plugin”: model providers, login flows, and settings pages can all be supplemented by plugins. The community directory is an independent site with no official affiliation to DeepSeek or Hyperbolic, and should not be understood as an official app store.

Harness itself provides the github-copilot provider for accessing models within the GitHub Copilot plan; however, it is not responsible for completing the login. lujianjun19/dsh-llm-github-copilot fills this gap: it executes the GitHub Copilot login and hands the credentials over to Harness’s existing github-copilot provider.

What is this

lujianjun19/dsh-llm-github-copilot is a DeepSeek Harness plugin designed to provide GitHub Copilot login capabilities to Harness. It is maintained by lujianjun19 and is licensed under the MIT License.

It primarily addresses a specific gap: Harness can consume GitHub Copilot models, but it needs a place to complete the login and save credentials. Once logged in, the plugin hands the credentials to Harness’s existing @deepseek-ai/dsh-llm-pi-ai route. Model requests, endpoints, images, streaming output, and other behaviors are handled by the Harness route and are not reimplemented within the plugin.

Core Capabilities

Below are the verified main capabilities.

  • GitHub Copilot device flow login: Login can be done via /copilot-login or the Harness settings page; credentials are saved automatically.
  • Automatic refresh: The refresh of short-lived Copilot tokens is handled by Harness’s downstream process.
  • Compatible with existing tokens: Existing GITHUB_COPILOT_OAUTH_TOKEN can be used at startup to avoid repeated login.
  • Settings page: There is a dedicated GitHub Copilot section in the Harness Web settings for login, status checking, and logout.
  • Slash commands: Provides /copilot-login, /copilot-status, and /copilot-logout.
  • Use models within the Copilot plan: Can access models like the GPT-5 family, Claude, Gemini, etc., subject to the currently available models in the GitHub Copilot plan.

Installation & Enablement

Prerequisites

Before use, the following conditions must be met:

  • DeepSeek Harness 0.1.2-alpha.1 or higher, including the bundled @deepseek-ai/dsh-llm-pi-ai route.
  • A GitHub account with a GitHub Copilot subscription.
  • Node.js ≥ 24.

Installation

The following command is used to install the plugin to the web profile:

dsh plugin --profile web add @lujianjun19/dsh-llm-github-copilot

If using pnpm 10 or higher and the installation process prompts for build approval, add the following to the profile’s pnpm-workspace.yaml as instructed:

allowBuilds:
  dsh-llm-github-copilot: true

Then re-execute the installation command.

Register Plugin

After installation, register the plugin in the profile’s cordis.patch.yml:

- insert:
    - id: llm-github-copilot
      name: '@lujianjun19/dsh-llm-github-copilot'

Start

After registration, restart DSH:

dsh web

Pre-installation Checks

The plugin runs under the permissions of the current dsh process. Before installing, it is recommended to review the source code, confirm the MIT license, and ensure you are willing to let this plugin access the credentials and configuration of the current profile.

Source code directory page:

https://www.skillhub.cn/plugins/lujianjun19/dsh-llm-github-copilot

GitHub repository:

https://github.com/lujianjun19/dsh-llm-github-copilot

Login & Status

Run in the Harness chat interface:

/copilot-login

Follow the prompts: open the verification URL in a browser, enter the displayed device code, and complete the GitHub App authorization. After authorization is complete, the token is saved automatically.

To confirm the login status, you can run:

/copilot-status

To logout, run:

/copilot-logout

The Harness settings page also provides a GitHub Copilot section where you can login, check status, and logout.

Using Existing Tokens

If you already have a GitHub OAuth token, you can also provide it via an environment variable:

export GITHUB_COPILOT_OAUTH_TOKEN=<your-github-oauth-token>

The plugin supports the following token types:

Prefix Source
gho_ OAuth token, e.g., from gh auth login
github_pat_ Fine-grained PAT, requires Copilot permissions
ghu_ GitHub App user token, e.g., from VS Code client

Classic ghp_ PATs are not accepted by the Copilot API.

Select Model

Login is only responsible for publishing credentials, not for selecting the model. After login is complete, you need to select the model in Harness settings:

  1. Open Settings → Models.
  2. Add the github-copilot provider.
  3. Select the desired model under the provider.

The specific available models depend on the current GitHub Copilot plan.

Update Plugin

DSH profiles use pnpm internally, and the lockfile locks the exact version of installed packages. Re-running dsh plugin add may not fetch the new version.

When updating, you can execute:

npm install --prefix ~/.dsh/profiles/web @lujianjun19/dsh-llm-github-copilot@latest

Or use pnpm:

pnpm add --dir ~/.dsh/profiles/web @lujianjun19/dsh-llm-github-copilot@latest --no-frozen-lockfile

Then restart:

dsh web

To confirm the version, open Settings → GitHub Copilot; the version information will be displayed at the bottom of the panel.

Configuration

The plugin does not require configuration by default. The only configurable item is oauthTokenEnv, used to specify the environment variable name or credential reference where the GitHub OAuth token is saved:

- id: llm-github-copilot
  config:
    oauthTokenEnv: GITHUB_COPILOT_OAUTH_TOKEN

Models, endpoints, and request behaviors are not configured in this plugin but in the llm-pi-ai settings section of the Harness route.

Upgrade from 0.4.x

Versions 0.4.5 and earlier registered their own github-copilot-official provider. This provider no longer exists.

If github-copilot-official is still used in existing configurations or sessions, switch to the github-copilot provider. Model IDs remain the same. Existing credentials will be adopted automatically, and no re-login is required.

Common Issues

Below are several points that have been addressed.

Model selector does not show GitHub Copilot group

The plugin might still be running in an old process that hasn’t loaded the new package. Restart:

dsh web

Saved tokens will be retained, and no re-login is needed.

Models exist but Claude is missing

The exit IP might be restricted. You can set a proxy and restart:

export HTTPS_PROXY=<proxy-url>
dsh web

/copilot-login timeout or network error

This usually happens during device code polling. Simply run the login command again to get a new code; the old code will automatically become invalid:

/copilot-login

Prompt configurable provider "github-copilot" is already declared

This plugin does not register its own provider; it simply publishes credentials to Harness’s github-copilot provider. If there is no model, first confirm:

  1. /copilot-status shows that you are logged in.
  2. github-copilot provider has been added in Settings → Models.
  3. Used in cordis.patch.yml:
- id: llm-github-copilot
  name: '@lujianjun19/dsh-llm-github-copilot'

Token Expiration

No manual handling is required. The plugin saves a long-lived GitHub OAuth token, and Harness’s downstream process will refresh it before the short-lived Copilot token expires. Only after an explicit logout or token revocation will it be necessary to run /copilot-login again.

Conclusion

The scope of lujianjun19/dsh-llm-github-copilot is relatively narrow: it does not reimplement model requests; it only handles GitHub Copilot login and hands credentials to Harness’s existing github-copilot provider. For scenarios where you are already using DeepSeek Harness and want to expand model selection via models available within the GitHub Copilot plan, this plugin can integrate login, status checking, token usage, and settings page operations into a single workflow.