dsh-gpt-oauth
其他 活跃维护

dsh-gpt-oauth

jiangliuhong/dsh-gpt-oauth

轻量级OAuth认证工具,无需额外申请OpenAI API密钥,通过ChatGPT账号授权即可直接调用OpenAI系列模型,配置流程极简,开箱即用,适配开发调用需求

1
Stars 标星
0
Forks 分支
1
Watchers 关注
0
Open Issues
JavaScript
主要语言
None
开源协议
83 KB
仓库大小
1 个月前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:jiangliuhong/dsh-gpt-oauth
git clone https://github.com/jiangliuhong/dsh-gpt-oauth.git
git clone git@github.com:jiangliuhong/dsh-gpt-oauth.git
README.md main

dsh-login-chatgpt

English | 中文

DeepSeek Harness plugin that adds an openai-codex-gptoauth provider route and
an independent ChatGPT Login settings page. The route mirrors the installed
openai-codex catalog and uses Pi's official ChatGPT OAuth device-code flow; no
OpenAI API key is requested.

Install

Install from npm (recommended)

dsh plugin --profile web add dsh-login-chatgpt

To install a specific version:

dsh plugin --profile web add dsh-login-chatgpt@0.2.5

Package: https://www.npmjs.com/package/dsh-login-chatgpt

Install from a local checkout (development)

git clone git@github.com:jiangliuhong/dsh-gpt-oauth.git
cd dsh-gpt-oauth
npm install
dsh plugin --profile web add "$PWD"

The bundle installs the authorization service and uses the llm and
credentials services supplied by the standard web profile.

Start Harness:

dsh web

Use

  1. Open Settings → ChatGPT Login.
  2. Select Login with ChatGPT.
  3. Open the displayed OpenAI authorization URL and enter the one-time code.
  4. Wait until the settings page reports Connected.
  5. In the conversation composer click Select model.
  6. Click the Model / Select model row to open the full catalog.
  7. Scroll to openai-codex-gptoauth and choose one of its GPT models.

The route appears in the conversation model selector, not on the Models
settings page.

The login grant is stored by the DSH credentials service under
llm-pi-ai/openai-codex-gptoauth. Model requests reuse that grant and its
refresh flow automatically. OAuth tokens are never returned to the browser;
only login status, the verification URL, and the one-time device code are
shown.

Local login endpoint

The client bundle talks to a loopback-only helper on 127.0.0.1:3091. The
helper accepts browser requests only from loopback origins. A port conflict
fails plugin startup rather than silently disabling login.

Development checks

node --check index.js
node --check login-manager.js
node --check client.js
node --test login-manager.test.js

Release

Set the version in package.json and package-lock.json, commit it, then push a
matching tag. Both 0.2.0 and v0.2.0 tag forms are accepted:

npm version 0.2.1 --no-git-tag-version
git add package.json package-lock.json
git commit -m "release: v0.2.1"
git tag v0.2.1
git push origin main v0.2.1

The tag workflow runs checks, publishes the exact package.json version to npm
with provenance, and creates a GitHub Release through npm Trusted Publishing
(OIDC). After the initial package bootstrap, no npm token or local publish is
needed for subsequent releases.

Acknowledgements

Thanks to the LINUX DO community for its continued support.