Copilot 登录 lujianjun19/dsh-llm-github-copilot
DeepSeek Harnessv0.4.11为 DeepSeek Harness 提供 GitHub Copilot 登录。
42.7/100
综合分
12
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/25 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查未通过:engines.node 要求 >=24,不满足 Node 22.19.0。以下命令仍可尝试,但可能失败。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add lujianjun19/dsh-llm-github-copilot该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · platform
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 9 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装engines.node 要求 >=24,不满足 Node 22.19.0
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包@lujianjun19/dsh-llm-github-copilot @ 0.4.11
✗Node 引擎要求 >=24 · 基线 Node 22.19 不满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/31 22:57:43
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 6 处,展示前 6 条)
- 发起网络请求lib/index.js:80
const ProxyAgent = undici.ProxyAgent; - 发起网络请求lib/index.js:117
if (dispatcher === void 0) return fetch(url, init); - 发起网络请求lib/index.js:118
return fetch(url, { ...init, dispatcher }); - 发起网络请求lib/client.js:144
const response = await fetch(`${API}${path}`, { - 写入剪贴板lib/client.js:237
const copy = async () => { if (await writeClipboard(state.userCode)) setCopied(true); }; - 写入剪贴板lib/client.js:325
if (await writeClipboard(status?.userCode ?? "")) setCopied(true);
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cosmokit@deepseek-ai/schemastery@deepseek-ai/dsh-atomic-write@deepseek-ai/dsh-home-paths@deepseek-ai/dsh-credentials@deepseek-ai/dsh-credentials-local@deepseek-ai/dsh-settings@deepseek-ai/dsh-launch-environment@deepseek-ai/dsh-commands@deepseek-ai/dsh-api-remotes@deepseek-ai/dsh-api-session-controller@deepseek-ai/dsh-client-connection给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
README
由 DeepSeek 最新模型翻译生成dsh-llm-github-copilot
为 DeepSeek Harness 提供 GitHub Copilot 登录。
本插件提供 GitHub OAuth 设备流登录页面和斜杠命令,并写入 Harness 内置 github-copilot 提供方使用的凭据。它不注册 LLM 适配器,也不维护模型目录:token 交换与刷新、模型可用性、请求、图片和流式处理均由 Harness 的 @deepseek-ai/dsh-llm-pi-ai 路由负责。可用模型取决于该路由的目录和账号权限,而不只取决于 Copilot 订阅。参见 ADR-0002。
依赖要求
- 支持的 Harness 版本: 0.1.7-rc.1 至 0.1.7-rc.2、0.2.0-rc.1 至 0.2.0-rc.2,以及 0.2.1-rc.2 至 0.2.1-rc.3,搭配 @deepseek-ai/cordis ^4.0.4。开发基线为 0.2.1-rc.3。
- 声明的 Harness peer 范围: ^0.1.7-rc.1 || ^0.2.0-rc.1 || ^0.2.1-rc.2(见 package.json)。不能把 npm 持续变化的 latest/next 标签当成支持承诺。验证范围见 0.2.1 兼容性评估。
展开完整文档(README 剩余 1 节)
dsh-llm-github-copilot
为 DeepSeek Harness 提供 GitHub Copilot 登录。
本插件提供 GitHub OAuth 设备流登录页面和斜杠命令,并写入 Harness 内置 github-copilot 提供方使用的凭据。它不注册 LLM 适配器,也不维护模型目录:token 交换与刷新、模型可用性、请求、图片和流式处理均由 Harness 的 @deepseek-ai/dsh-llm-pi-ai 路由负责。可用模型取决于该路由的目录和账号权限,而不只取决于 Copilot 订阅。参见 ADR-0002。
依赖要求
- 支持的 Harness 版本: 0.1.7-rc.1 至 0.1.7-rc.2、0.2.0-rc.1 至 0.2.0-rc.2,以及 0.2.1-rc.2 至 0.2.1-rc.3,搭配 @deepseek-ai/cordis ^4.0.4。开发基线为 0.2.1-rc.3。
- 声明的 Harness peer 范围: ^0.1.7-rc.1 || ^0.2.0-rc.1 || ^0.2.1-rc.2(见 package.json)。不能把 npm 持续变化的 latest/next 标签当成支持承诺。验证范围见 0.2.1 兼容性评估。
- Harness 自带的 @deepseek-ai/dsh-llm-pi-ai 路由,以及 dsh-credentials-local 等凭据服务。默认 Web profile 已提供这些组件,自定义组合需自行挂载。
- 一个有 Copilot 使用权限的 GitHub 账号。
- Node.js ≥ 24;执行 dsh plugin 命令时,PATH 中须有 pnpm ≥ 9。
安装
以下命令均针对 web profile。其默认目录是 ~/.dsh/profiles/web;设置了 DSH_HOME 时则为 $DSH_HOME/profiles/web。
从 npm 安装(推荐)
dsh plugin --profile web add @lujianjun19/dsh-llm-github-copilot -w
从 GitHub 安装
dsh plugin --profile web add github:lujianjun19/dsh-llm-github-copilot -w
这会安装仓库默认分支,可能包含尚未发布的变更。如果 pnpm 提示需要批准构建,请将提示中的精确键名加入 profile 的 pnpm-workspace.yaml 中的 allowBuilds,然后重新执行安装命令。不要根据仓库名猜测键名。
dsh plugin 会将本包注册到 profile 的 dsh.profile.bundles,并加载包内的 cordis.patch.yml。不要再向 profile patch 添加本插件的 insert 条目。 如果旧安装保留了手动注册,请在采用 bundle 安装时移除重复条目。
停止正在运行的实例,然后重新启动该 profile:
dsh web
更新插件的客户端 bundle 后,对已打开的浏览器标签页执行硬刷新。
更新
通过 Harness 的包管理入口更新,以保持 profile 的 pnpm lockfile 和 bundle 列表同步:
dsh plugin --profile web update @lujianjun19/dsh-llm-github-copilot --latest -w
如需指定版本,将 X.Y.Z 替换为目标版本号:
dsh plugin --profile web add @lujianjun19/dsh-llm-github-copilot@X.Y.Z -w
profile 的 pnpm minimumReleaseAge 策略可能延迟新版本的安装。如果实际安装版本偏旧,请检查该策略;确需放行时,仅将目标包和版本加入 minimumReleaseAgeExclude,再按精确版本安装。不要假设 @latest 一定选中了目标版本,也不要在 pnpm 管理的 profile 中混用 npm install。
重启 DSH 并硬刷新浏览器。在 设置 → GitHub Copilot 页面底部确认安装版本,或执行:
dsh plugin --profile web list @lujianjun19/dsh-llm-github-copilot
登录
打开 设置 → GitHub Copilot 并点击登录,也可以在 Harness 对话框中运行:
/copilot-login
在浏览器中打开提示的 GitHub 验证链接,输入设备码,并授权 GitHub App(VS Code)。Host 会在后台持续轮询,授权完成后自动保存凭据。Web 登录界面会自动更新,聊天命令弹出的登录对话框会在检测到登录成功后关闭。
查看已保存的凭据状态:
/copilot-status
authenticated 仅表示存在长期 token,不代表已通过实际 API 请求验证。只有下游路由已记录 availableModelIds 时,该命令才报告模型数量;它不会请求或列出模型。路由首次交换 token 前,可能没有数量信息。
删除本机凭据:
/copilot-logout
Web 界面会要求确认。退出登录会删除 grant 和可写的 token 引用,但不会撤销 GitHub 上的授权,也不会删除已配置的模型提供方。如果只读引用或环境变量/.env fallback 仍提供 token,界面和命令会明确提示退出尚未完成,需要移除外部 token 并重启。此时状态 API 返回 credentialRemaining: true,不会返回 token 本身。
使用已有 OAuth token
可以用长期 GitHub OAuth token 代替设备流登录:
export GITHUB_COPILOT_OAUTH_TOKEN='<your-github-oauth-token>'
dsh web
凭据服务就绪后,插件仅在 grant 尚不存在时将该 token 写入 grant。已有 grant 的优先级高于环境变量或凭据引用。在将环境变量引用视为只读的 Harness 版本中,沿用过程只写入 grant,不尝试覆盖环境变量。
应使用兼容 Copilot OAuth 流程取得的 token,而不是短期 Copilot API token。本插件不校验 token 前缀,也不保证任意 PAT 或 gh auth login 取得的 token 都有 Copilot 权限。
使用环境变量 token 时,如需退出登录,请先从启动环境移除该变量,在没有它的环境中重启 DSH,再执行 /copilot-logout。否则旧版 Harness 会拒绝清除只读引用;新版虽可删除文件中的覆盖值,仍会回退到环境变量 token。后续启动时还可能被重新沿用。
选择模型
登录只发布凭据,不会添加提供方配置。
1. 打开 设置 → 模型,注意这与本插件的登录页面不同。
2. 如果尚未配置,选择添加提供方,从内置目录选择 github-copilot。使用已保存的 grant 时,无需自定义 endpoint 或粘贴 API key。
3. 保存后重新打开聊天输入框的模型选择器,在 github-copilot 下选择模型。
4. 发起请求。Harness 路由会按需将长期 GitHub token 交换为短期 Copilot token、自动刷新,并推导账号对应的端点。
在已验证的 Harness 基线上,模型选择器来自路由的配置目录。打开选择器不代表已经按账号动态发现模型或验证认证成功;退出登录后,目录条目也可能仍然可见。插件既不会过滤这些条目,也不会补充下游目录中没有的模型。参见模型列表跟踪问题。
如果从旧适配器版本(截至 0.4.5)升级,请把设置和会话中已移除的 github-copilot-official 提供方改为 github-copilot,并选择当前目录中可用的模型。已有 token 引用会被自动沿用;只要 token 仍然有效,就无需再次登录。
配置
本插件无需配置即可使用。唯一选项 oauthTokenEnv 指定读取已有 token 的凭据引用/环境变量名,并在该引用可写时保存一份登录后的 token:
- id: llm-github-copilot
config:
oauthTokenEnv: GITHUB_COPILOT_OAUTH_TOKEN
将这段覆盖配置写入活动 profile 的 cordis.patch.yml,不要再添加 insert。实时设置使用该 profile patch,不使用单独的 settings.yaml 设置段。
路由实际读取的 grant 始终位于 llm-pi-ai/github-copilot;修改 oauthTokenEnv 不会移动它,也不会创建第二个账号或提供方。模型、端点和请求行为均在 Harness 路由的 llm-pi-ai 条目下配置,不在本插件中。
开发
需要 Node.js ≥ 24 和 npm。在仓库根目录操作,修改 src/host/ 和 src/client/,不要编辑生成的 lib/ 文件。
npm ci
npm run build # 合并源码分片 → lib/index.js 和 lib/client.js
npm test # 测试生成产物、凭据交接、i18n、元数据和 README 契约
npm run check # 构建 + 产物测试 + npm pack 演练(prepack 会执行完整测试集)
针对所支持 RC 版本运行打包安装和真实浏览器检查:
npx playwright install chromium
npm run test:harness -- 0.2.1-rc.2
npm run test:harness -- 0.2.1-rc.3
这些检查使用独立临时 DSH_HOME 和模拟 GitHub 响应,不使用你的凭据,也不发起真实 Copilot 请求。CI 还覆盖 0.2.0-rc.2。测试选项以及分支、PR、发布规则见开发工作流。
全部检查通过后,可选择部署到本地 Web profile:
npm run deploy # 构建 → 产物测试 → 原子部署,保留回滚备份
该命令直接复制发布文件和运行时依赖,不执行 npm install,也不会替 profile 注册尚未存在的 bundle。首次安装当前 checkout 时,先构建,再执行:
dsh plugin --profile web add . -w
修改 Host 代码后需重启 DSH;仅修改 Client 代码时,硬刷新(Ctrl+Shift+R)通常就足够了。
回滚本地部署
npm run deploy 会将已有安装备份到 ${DSH_HOME:-$HOME/.dsh}/plugin-backups/dsh-llm-github-copilot/,最多保留五份备份。目录名包含版本号和时间戳。
停止 DSH,选定备份后替换安装目录,不要将备份复制到一个已存在的插件目录内部:
PLUGIN="${DSH_HOME:-$HOME/.dsh}/profiles/web/node_modules/@lujianjun19/dsh-llm-github-copilot"
BACKUP="${DSH_HOME:-$HOME/.dsh}/plugin-backups/dsh-llm-github-copilot/<backup-directory>"
执行以下命令前,先替换上面的 <backup-directory>。
test -d "$BACKUP" && mv "$PLUGIN" "${PLUGIN}.before-rollback-$(date +%Y%m%d%H%M%S)" && cp -a "$BACKUP" "$PLUGIN"
dsh web
这只恢复本地部署的包文件,不恢复 profile manifest 或 lockfile。对于 npm/GitHub 管理的安装,应改用 dsh plugin --profile web add …@X.Y.Z -w 安装目标版本。
常见问题
已登录,但没有 GitHub Copilot 模型
确认已在 设置 → 模型 中配置 github-copilot(见选择模型)。如果连插件设置页都没有,请检查安装版本和 bundle 注册,重启 DSH 并硬刷新。反复登录不会添加提供方。
缺少某个模型,或可见模型无法请求
检查 Harness 路由的目录/配置、账号及组织的模型策略,以及实际请求错误。选择器不是实时权限校验。本插件无法扩展目录,也不能将所有模型缺失都归因于 IP 限制。
/copilot-login 报网络错误或一直等待
检查能否访问 GitHub。设备流请求读取 https_proxy/HTTPS_PROXY/http_proxy/HTTP_PROXY(HTTP(S) 代理 URL)以及按主机名匹配的 no_proxy/NO_PROXY。这只适用于本插件的设备流,不是 Harness 模型请求的代理配置。轮询会对临时失败持续重试,直到设备码过期。流程尚在等待时,重复执行 /copilot-login 会复用同一设备码;过期或拒绝后再重新发起登录。关闭对话框不会取消 Host 轮询。
token 交换失败,或 token 已被吊销
/copilot-status 只检查 token 是否已保存。短期 Copilot token 由 Harness 路由刷新;长期 GitHub token 被吊销或不可用时,需要重新登录。先按上文移除环境变量 token,退出登录,再执行 /copilot-login。
启动时报 configurable provider "github-copilot" is already declared
本插件不注册模型提供方。请检查重复的提供方配置、旧适配器注册,以及 bundle 之外遗留的手动插件 insert。本插件只保留一份 bundle 注册,内置提供方也只配置一次。
退出登录后模型仍出现在选择器中
删除凭据不会删除提供方配置。目录可见性和基于凭据的过滤属于 Harness 路由,见跟踪问题。
许可证
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
lujianjun19/dsh-llm-github-copilot
为 DeepSeek Harness 提供 GitHub Copilot 登录。
相关插件 · 平台集成
智能体工程课walkinglabs/learn-harness-engineering
一门项目制课程,教你搭建环境、管理状态、做验证、加控制机制,让 AI 编程智能体稳定干活。
★ 21,155已汉化DSH
71.7
视频翻译配音liuzhao1225/YouDub-webui
开源视频本地化工作台:导入视频,识别、翻译并逐句克隆原声,生成字幕和配音成片。
★ 5,778已汉化Cordis
71.4
失败经验库Ikalus1988/MisakaNet
📚 零依赖、由 git 支撑的微课程库,让 AI 智能体异步分享并检索经过验证的调试经验。| https://misakanet.org
★ 550已汉化DSH
71.2
桌面智能体工作区freestylefly/wesight
WeSight 是开源桌面控制台,面向本地 AI 智能体。它帮你安装或复用 Claude…
★ 933已汉化MCP
71
IM 机器人接入xmanrui/dsh-im
让 DeepSeek Harness 触手可及 Connecting DeepSeek Harness
★ 3,110已汉化DeepSeek 客户端
70.9
中国平台研究引擎Jesseovo/last30days-skill-cn
给 AI Agent 的中文互联网研究 Skill:检索 8 大平台最近 30…
★ 2,031已汉化DSH
70.7