DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Oauth Copilot — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins

dsh-oauth-copilot

Oauth Copilot

用于 DeepSeek Harness 的 GitHub Copilot OAuth 提供程序和模型适配器

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add dsh-oauth-copilot@0.2.0
README兼容性版本

兼容性与来源证明

Oauth Copilot 以 dsh-oauth-copilot 发布,当前版本为 0.2.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
any
发布来源
npm
Registry 更新时间
2026/9/10

版本

0.2.0stable
2026/9/10
0.1.1stable
2026/9/7
0.1.0stable
2026/8/23

相关插件

正在加载相关插件…

最新版
0.2.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
73.9 kB
文件数
26
Surface
any
许可证
MIT
发布源
npm
GitHub
★ 0
周下载
0
最近提交
2026/9/10
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 models-usage 分类下经过校验的插件。

Usage Stats@ychris12138/dsh-usage-statsdsh Web GUI 的令牌使用热力图、提供商余额和订阅配额Codex Connectdsh-codex-connect用于 DeepSeek Harness 的 ChatGPT OAuth 和 Codex 模型。Damage Pulsedsh-damage-pulseDeepSeek Harness 余额监控器,配有鲸鱼女孩伙伴,并为每次令牌消耗提供感知缓存的伤害动画。Agy Linkdsh-agy-link适用于 DeepSeek Harness 的 Google Antigravity(agy CLI)模型——将 Gemini/Claude/GPT-OSS 订阅流式接入 DSH,并支持思考过程、工具活动、令牌使用量以及在 GUI 中通过 Google OAuth 登录。

README

dsh-oauth-copilot

· GitHub

GitHub Copilot sign-in and model route for DeepSeek Harness.

Sign in to GitHub via the device-code flow, store the Copilot grant through the harness credential records, and register a github-copilot LLM route backed by pi-ai's Copilot model catalog — all on official dsh seams, with no third-party OAuth base required.

Status: 0.2.0 — built and verified against dsh 0.1.5-rc.1 / pi-ai 0.85.1 (typecheck/build/14 tests green, including a compose-level catalog-resolution regression for the rc.1 modelErrors contract). 中文版见 README.zh-CN.md.

Why not the community dsh-oauth base

The current dsh-oauth release (0.2.0) is built against the 0.1.0-rc.6/rc.8 package line and its peers are semver-incompatible with the shipped dsh 0.1.x line — npm refuses to install both in one profile. This plugin therefore targets the official seams directly (ctx.credentials records, ctx.authorization flows, ctx.llm adapters), which also keeps the login working when dsh-llm-pi-ai's registered Copilot flow is present.

Install

Published form (no clone or build needed):

dsh plugin --profile web add dsh-oauth-copilot

Restart dsh web. The package's cordis.patch.yml (llm-github-copilot) is loaded from dsh.bundle.patch; the authorization service entry in the profile patch activates the login machinery (see Compatibility note).

Development form (from a checkout of this repo):

npm install && npm run build
dsh plugin --profile web add /path/to/dsh-oauth-copilot

Use — manual CLI is the primary path

Sign-in is a human-only terminal operation; no LLM involvement, so prompt injection in a non-official model cannot start or drop an authorization.

# The CLI ships with the npm package. Either install it globally...
npm install -g dsh-oauth-copilot
dsh-copilot-auth login          # prints device-code URL + code; authorize in the browser
# ...or run it through npx without installing anything:
npx -y dsh-oauth-copilot login

dsh-copilot-auth status         # grant expiry + available models
dsh-copilot-auth refresh        # re-fetch the account-enabled model list into the grant
dsh-copilot-auth logout         # remove the local grant

Only github.com is supported (GitHub Enterprise is not; see Known limitations). Tokens are never printed; provider errors are redacted; the credential file is written atomically with 0600 perms.

Model picker notes

The picker lists the advisory pi-ai catalog (29 Copilot models). Not every model is enabled for your account: an unavailable pick returns HTTP 400 "model not supported". dsh-copilot-auth refresh stores the account-enabled list (policy=enabled) into the grant, so the picker then shows only those; a failed/empty refresh leaves the full advisory list visible — retry refresh or pick a model from the status output.

Opt-in model tools

Model-executable tools (github_copilot_login / github_copilot_status / github_copilot_logout) are off by default and only register when the authorization service is mounted and enableModelTools: true is set. Tool errors are redacted before they reach the model context.

- id: llm-github-copilot
  config:
    enableModelTools: true       # opt in; default false
    loginWindowMs: 180000        # how long a login tool call waits before cancelling
    streamIdleTimeoutMs: 300000

Known limitations

  • GitHub Enterprise is not supported. The grant whitelist accepts only the official endpoint (proxy.individual.githubcopilot.com), and the model login tool and the CLI reject enterprise domains explicitly. This is a security decision: a forged enterpriseUrl would redirect pi-ai's automatic token refresh to an attacker server.
  • Tied to the 0.1.5-rc.1 package line. Peer ranges are ^0.1.5-rc.1 and the pi-ai dependency is ^0.85.1; a future dsh 0.2.0 upgrade will extend them along with the adapter contract. The modelErrors member is additive, so hosts that do not read it ignore it.
  • The CLI prints zh-CN messages (bilingual PRs welcome).
  • Do not run dsh-copilot-auth login/logout while another process is actively writing the credentials file; the CLI uses atomic 0600 writes but does not take dsh's cross-process write lock.

FAQ

  • dsh-copilot-auth: command not found — install the package with npm (npm install -g dsh-oauth-copilot) or invoke npx -y dsh-oauth-copilot login.
  • Model request returns HTTP 400 "model not supported" — run dsh-copilot-auth refresh, then pick a model from the status output.
  • How do I revoke access completely? dsh-copilot-auth logout removes the local grant; on GitHub, Settings → Applications → revoke the Copilot authorization.
  • Where is the login button in the web UI? There isn't one (dsh 0.1.5-rc.1 exposes no OAuth surface in the Models page); the CLI is the sign-in path.
  • How do I update the plugin? npm install -g dsh-oauth-copilot@latest && dsh plugin --profile web add dsh-oauth-copilot (or bump the version in the profile package.json), then restart dsh web.

Security posture

Reviewed against the community implementations (dsh-oauth / dsh-oauth-openai) with adversarial review passes; decisions in place:

  • Grant validation (src/credential-store.ts, CLI): stored payloads are schema-checked; the proxy-ep endpoint must be the official host ONLY, and any non-empty enterpriseUrl rejects the record — closing both the traffic-redirection and the refresh-token exfiltration paths.
  • Device flow stays on github.com; no redirect URI, no local callback port, scope fixed at read:user, one authorization attempt per key.
  • Redaction: provider errors are JWT/token-pattern redacted and truncated before display.
  • Model-side authority: sign-in/out tools default off; the CLI path needs no model at all.
  • Credentials are stored 0600, outside settings/describe/environment, never echoed by the CLI.

How it works

PieceFileResponsibility
Routesrc/adapter.tsRegisters github-copilot via PiAiAdapter; request-level apiKey stays undefined so pi-ai's native OAuth auth takes over
Grant bridgesrc/credential-store.tsStrictly validated mapping of the harness record llm-pi-ai/github-copilot (kind grant) to a pi-ai CredentialStore + ambient AuthContext
Manual CLIscripts/dsh-copilot-auth.mjsHuman-driven device-code login/status/refresh/logout writing the same record
Login toolssrc/login-tool.tsOptional model tools driving the ctx.authorization flow (opt-in only)

Development

npm install
npm run typecheck
npm test          # unit + composition + grant validation
npm run build
# scripts/ ship with the repo, not the npm tarball: run them from a checkout
node scripts/smoke.mjs           # mounts the built plugin on real seams in a temp DSH_HOME
node scripts/smoke-noauth.mjs    # verifies the tree still boots without the authorization service
node scripts/verify-live.mjs     # real-grant end-to-end probe (uses the real grant; sends one tiny request)
node scripts/verify-vision.mjs   # opencode-go vision route probe (REASONING_EFFORT=low|high|max|off)

Compatibility note

The model route always activates; login tools need the authorization service mounted and the opt-in flag. The shipped dsh-base profile does not mount that service by default — the profile patch adds it. A missing service must never take the whole plugin tree down.

License

MIT