跳到正文

Noob-stupid/dsh-github-login

60最近提交 2026年8月15日

dsh-github-login DSH 插件

此插件为 DSH 提供图形化 GitHub 登录界面。它打开一个窗口,生成设备码,并在内嵌的 Chromium webview 中执行 OAuth 授权,与浏览器共用同一网络通道。登录成功后,令牌保存在本地并同步到 gh CLI。

如何安装 dsh-github-login DSH 插件

dsh plugin --profile web add github:Noob-stupid/dsh-github-login

复制不会执行命令。安装 dsh-github-login DSH 插件前请核对仓库和版本。

dsh-github-login DSH 插件数据来源

dsh-github-login DSH 插件快照日期:2026年8月16日

discovered

dsh-github-login DSH 插件能做什么

  • 内嵌授权窗口,支持前进、后退、刷新导航按钮
  • 可一键切换到外部浏览器进行授权
  • 令牌持久化存储至 `~/.dsh/github-auth.json`,并同步至 `~/.config/gh/hosts.yml`
  • 系统托盘常驻,显示账号状态并支持一键退出登录
  • 提供宿主端环回接口 `/github-auth/status` 和 `/github-auth/open`,方便集成

dsh-github-login DSH 插件适合哪些场景

  • 快速登录 GitHub 账号,以使用 DSH 生态中需要 GitHub 认证的功能
  • 在没有终端的环境(如 Windows 桌面)下完成 GitHub 授权
  • 为桌面客户端提供统一的 GitHub 登录状态,多个应用共享令牌文件
  • 与 dsh-plugin-hub 配合,登录后提升搜索配额至 30 次/分钟

dsh-github-login DSH 插件适合谁

  • 使用 DSH 的开发者,希望获得便捷的 GitHub 登录体验
  • 偏好图形界面而非命令行 OAuth 流程的用户
  • 需要将 GitHub 认证集成到桌面应用程序中的开发人员

dsh-github-login DSH 插件的限制

  • 仅支持 GitHub 登录(使用固定的 GitHub CLI OAuth client_id)
  • 令牌仅用于命令行工具,不会影响浏览器网页登录状态
  • 目前仅提供 Windows 平台的预打包 exe 文件,其他平台需自行构建
  • 如果系统 keyring 中存在旧凭证,gh 可能会忽略同步的 hosts.yml 文件,需先清除旧凭证

dsh-github-login DSH 插件的仓库 README 摘录

以下文字摘自 dsh-github-login DSH 插件的上游仓库 Noob-stupid/dsh-github-login 的 README,版权归原作者,仅作引用。

一个零终端的 GitHub 登录小工具:打开窗口 → 生成设备码 → 授权 → 完成。 **设备码流程在窗口内(Chromium 网络栈)执行**,与你的浏览器共用同一网络通道—— 浏览器能打开 GitHub,这里就能完成登录,不受终端/代理配置差异影响。 ## 安装(DSH 插件模式) 一条命令装进 DSH,并自动启用宿主端插件(提供登录状态接口 + 一键唤起登录窗口): ```sh dsh plugin --profile web add github:Noob-stupid/dsh-github-login ``` 宿主端环回接口: - `GET /github-auth/status` → `{ok, loggedIn, login}`(只含账号名,绝不下发令牌) - `POST /github-auth/open` → 唤起登录工具窗口(本机存在 exe 时直接启动) 独立工具用法(不带 DSH 也行): ## 功能 - **窗口内授权**:授权页直接内嵌在窗口里(`<webview>`),带 **前进 / 后退 / 刷新** 按钮, 也可以一键改用外部浏览器打开; - 登录成功后令牌保存在 `~/.dsh/github-auth.json`; - 同时同步进 gh CLI 的 `~/.config/gh/hosts.yml`,**gh 命令行立即可用**(keyring 存在时 gh 以 keyring 优先); - 托盘常驻:随时查看账号状态 / 一键退出登录; - 复用 GitHub CLI 的公开 OAuth client_id(`178c6fc778ccc68e1d6a`),权限范围 `repo workflow gist read:org`。 ## 用法 ```sh npm install # 安装 electron(已配置国内镜像) npm start # 直接运行 npm run dist # 打包为便携版单文件 exe(dist/DSH-GitHub-Login.exe) ``` ## 与 dsh-plugin-hub 配套 [dsh-plugin-hub](https://github.com/Noob-stupid/dsh-plugin-hub)(插件管理面板)会读取 本工具写入的同一份令牌文件:登录后面板的 GitHub 市场显示"已登录 GitHub:<账号>", 且服务端回退通道自动带认证(搜索配额 10 → 30 次/分钟)。 ## 集成到其他应用(如桌面客户端) 把它当作一个独立进程调用即可:登录状态通过同一份文件(`~/.dsh/github-auth.json`) 共享,任何 DSH 生态工具都能读取: ```js spawn

阅读完整 README仓库未声明许可,使用前请先与作者确认。

dsh-github-login DSH 插件常见问题

窗口一直显示“等待授权”怎么办?

轮询与内嵌浏览器共用同一网络通道,如果浏览器能打开 GitHub,流程应该能完成。提示行会显示轮询次数,如果卡住,请将次数反馈到 Issue。验证码有效期 15 分钟,短暂的网络抖动不会中断进程。

登录后显示“unknown”账号,是什么原因?

授权已成功且令牌已保存。“unknown”表示用户名查询失败,这是尽力而为的补充步骤。重启程序后,托盘会重试获取用户名;令牌依然有效。

登录后 gh 命令行仍然显示未登录,如何解决?

本工具将令牌写入 `~/.config/gh/hosts.yml`,但 `gh` 优先使用系统 keyring 中的凭证。如果 keyring 中有旧凭证,请先执行 `gh auth logout` 清除,然后 `hosts.yml` 中的令牌才会生效。

为什么使用插件后,浏览器中的 GitHub 仍然未登录?

本工具认证的是 gh 命令行层(令牌写入 `github-auth.json` 和 `hosts.yml`),与浏览器网页登录是两套独立会话。要登录浏览器,请手动访问 github.com 登录,或在授权时选择“改用外部浏览器打开”,完成授权后该浏览器也会登录。

如何退出登录?

点击系统托盘图标,选择账号条目(例如“GitHub: 用户名 (点击退出)”),或在授权窗口中点击“退出登录”。这将删除令牌文件并从 `hosts.yml` 中移除对应条目。