🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

本地订阅转接口 TheCarey/Dsh-gpt-auto-proxy

DeepSeek Harness
TheCarey7 天前有提交已提供中文文档扫描:含敏感能力

把自有订阅凭证在本机转成 OpenAI 兼容接口

30.7/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/28 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add TheCarey/Dsh-gpt-auto-proxy
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · other
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L5 · 运行时冒烟等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 7 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 15 处,展示前 15 条)
  • 发起网络请求
    lib/host.js:237
    const 响应 = await fetch(url, { ...opts, signal: 控制器.signal })
  • 发起网络请求
    lib/host.js:460
    const 响应 = await fetch(`http://127.0.0.1:${配置.port}/v1/responses`, {
  • 发起网络请求
    lib/host.js:621
    请求 = 选.request(请求选项)
  • 执行外部命令来自配置/变量
    lib/host.js:1111
    child = spawn(NODE_BIN, [entry], {
  • 执行外部命令来自配置/变量
    lib/host.js:1342
    child = spawn(NODE_BIN, [用量探针], { env, windowsHide: true, stdio: ['ignore', 'pipe', 'pipe'] })
  • 发起网络请求
    lib/client.js:35
    fetch(B + p, { cache: 'no-store' })
  • 发起网络请求
    lib/client.js:39
    fetch(B + p, {
  • 发起网络请求
    lib/client.js:248
    fetch(url, { mode: 'no-cors', cache: 'no-store', ...(控制器 ? { signal: 控制器.signal } : {}) })
  • 读取密钥环境变量
    bridge/bridge.mjs:144
    tokensFile: overrides.tokensFile ?? process.env.CODEX_BRIDGE_TOKENS ?? path.join(ROOT, 'tokens.json'),
  • 发起网络请求
    bridge/bridge.mjs:221
    response = await fetch(`${config.authBase}/oauth/token`, {
  • 发起网络请求
    bridge/bridge.mjs:485
    upstreamResponse = await fetch(config.upstream, {
  • 发起网络请求
    bridge/bridge.mjs:793
    response = await fetch(config.usageUrl, {
  • 执行外部命令来自配置/变量
    bridge/bridge.mjs:999
    const child = spawn(process.execPath, process.argv.slice(1), {
  • 读取密钥环境变量
    lib/usage-probe.mjs:22
    const TOKENS_FILE = process.env.GPT_PROXY_TOKENS || ''
  • 发起网络请求
    lib/usage-probe.mjs:78
    response = await fetch(USAGE_URL, { method: 'GET', headers, signal: AbortSignal.timeout(20_000) })
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
展开完整介绍(59 字)↓

把自有订阅凭证在本机转成 OpenAI 兼容接口的 DSH 插件;非官方项目,与任何上游服务无关联,仅供个人学习研究。

README

由 DeepSeek 最新模型翻译生成
dsh-gpt-auto-proxy ⚠️ 免责声明(请务必先读) - 本项目是非官方的个人项目,与 OpenAI、ChatGPT、Codex 以及任何上游服务提供方均无任何隶属、合作、授权或背书关系。相关名称与商标归各自所有者。 - 仅供个人学习与技术研究(协议转换、SSE 透传、本地进程托管、配置界面等工程实现)。 - 本项目做的事是:把你自己的订阅凭证在本机转换成一个 OpenAI 兼容的本地接口,供你自己机器上的工具调用。这不是官方支持的能力。 - 使用本项目的一切后果由使用者自行承担,包括但不限于账号被限流、降级、暂停或封禁,以及由此产生的订阅费用与法律责任。 - 禁止商业转售、二次分发接口、对外提供付费/免费服务、批量滥用、账号池、凭证共享,以及任何形式的规避付费与计费。 - 是否遵守上游服务条款(ToS / AUP)完全由使用者自己负责。不确定自己的用法是否合规,就请不要使用。 一句话简介 把自己的 ChatGPT 订阅凭证,在本机转成一个 OpenAI 兼容的本地接口,并交给 DSH 插件托管:自动启停、额度只读展示、以及一次极小真实调用判断「现在到底能不能用」。
展开完整文档(README 剩余 1 节)
dsh-gpt-auto-proxy

⚠️ 免责声明(请务必先读)

- 本项目是非官方的个人项目,与 OpenAI、ChatGPT、Codex 以及任何上游服务提供方均无任何隶属、合作、授权或背书关系。相关名称与商标归各自所有者。
- 仅供个人学习与技术研究(协议转换、SSE 透传、本地进程托管、配置界面等工程实现)。
- 本项目做的事是:把你自己的订阅凭证在本机转换成一个 OpenAI 兼容的本地接口,供你自己机器上的工具调用。这不是官方支持的能力。
- 使用本项目的一切后果由使用者自行承担,包括但不限于账号被限流、降级、暂停或封禁,以及由此产生的订阅费用与法律责任。
- 禁止商业转售、二次分发接口、对外提供付费/免费服务、批量滥用、账号池、凭证共享,以及任何形式的规避付费与计费。
- 是否遵守上游服务条款(ToS / AUP)完全由使用者自己负责。不确定自己的用法是否合规,就请不要使用。

一句话简介

把自己的 ChatGPT 订阅凭证,在本机转成一个 OpenAI 兼容的本地接口,并交给 DSH 插件托管:自动启停、额度只读展示、以及一次极小真实调用判断「现在到底能不能用」。

适合谁用

- 有合法有效订阅、只想在自己这台机器上自用的个人开发者;
- 已经习惯本地代理(如 Clash 类工具)与 Node.js,能自己看懂配置文件的人;
- 想顺手在 DSH 设置页里看一眼 5 小时 / 7 天额度窗口的人。

不适合谁用

- 想把它做成对外 API、卖给别人、或给一群人共用的人(本项目不提供这些能力,也不允许这样用);
- 没有自己的订阅、想找一条绕过付费的路子的人;
- 期待「一键装完永久免维护」的人(上游接口是私有的,随时可能变化)。

它做什么 / 它不做什么

它做什么

- 在 127.0.0.1:<LOCAL_PORT> 起一个只监听本机回环地址的 HTTP 服务,把 OpenAI Responses 风格的请求清洗后转发到上游,SSE 原样流回;
- 凭证失效(401)时用 refresh_token 自动刷新,并按文件修改时间重载凭证;
- 提供一个只读的额度查询接口,供设置页显示 5 小时 / 7 天用量;
- 作为 DSH 插件:DSH 启动时拉起本地服务,DSH 退出时一并回收;端口已被占用时只复用、不抢占;
- 可选地发一次极小的真实调用判断链路是否真的通(会消耗极少量额度)。

它不做什么(明确划界)

- ❌ 不做账号池:凭证模型是单文件、单账号,没有多账号轮换、没有池化调度;
- ❌ 不做批量注册:不包含任何注册、验证码、批量开号相关的逻辑;
- ❌ 不提供凭证共享:不导出凭证、不中转他人凭证、没有「分享给别人用」的通道;
- ❌ 不代理他人流量:默认只监听回环地址,设计上不面向局域网/公网提供服务,严禁改成对外监听;
- ❌ 不绕过付费:不修改计费、不伪造用量、不规避额度限制;
- ❌ 不提供凭证获取流程:不包含登录/注册脚本,凭证必须你自己通过官方途径获得。

工作原理

你的客户端(curl / SDK / 编辑器插件 / DSH 模型连接) │ ① 发 OpenAI Responses 风格请求,Authorization: Bearer <任意占位串> ▼ 本机 dsh-gpt-auto-proxy —— 只监听 127.0.0.1:<LOCAL_PORT> │ ② 清洗请求:整理字段、把系统指令提到顶层、剔除上游不认的字段 │ ③ 读 <YOUR_TOKEN_FILE> 里的 access_token(只读,页面不显示内容) ▼ 可选的本机 HTTP 代理(默认 http://127.0.0.1:<PROXY_PORT>,可关闭) ▼ 上游服务(订阅所属的对话服务后端) │ ④ 鉴权、限流、生成 ▼ ▲ ⑤ SSE 分片原样流回客户端

要点:

- 凭证始终留在本机,不经过任何第三方服务器;
- 服务的入站请求只接受本机回环地址;
- 日志里的凭证一律打码(只留首尾若干位),不落明文。

安装与配置

环境要求

- Node.js ≥ 22(用到内置 fetch、AbortSignal.timeout);
- DSH(可选:bridge/bridge.mjs 也能脱离 DSH 单独运行);
- 你自己的订阅账号与对应的凭证文件;
- 能访问上游的网络环境;如需代理,自备本机 HTTP 代理。

一、准备凭证文件

本项目不提供登录流程。请按官方客户端的方式自行完成一次登录,得到一个形如下面的文件:

{
"access_token": "<ACCESS_TOKEN>",
"refresh_token": "<REFRESH_TOKEN>",
"account_id": "<ACCOUNT_ID>",
"expires_at": 0
}

- 路径建议:<YOUR_TOKEN_FILE>(例如放在你的用户目录下,不要放进任何代码仓库);
- 文件权限建议设为「仅本人可读」,因为它可以直接调用你的账号;
- 绝对不要公开、截图、贴进 issue 或聊天记录。

二、装进 DSH(插件形态)

1. 把本目录放到你的 DSH profile 下:

<DSH_HOME>/profiles/<PROFILE>/node_modules/dsh-gpt-auto-proxy

2. 在 profile 的 package.json 里登记两处:

"dependencies": {
"dsh-gpt-auto-proxy": "file:node_modules/dsh-gpt-auto-proxy"
},
"dsh": {
"profile": {
"bundles": ["dsh-gpt-auto-proxy"]
}
}

dsh.profile.bundles 才是真正的启用入口;组合包自带的 cordis.patch.yml 会在组合时被应用,因此不要再往 profile 的 cordis.patch.yml 里手写 insert(会重复注册)。
3. 重启 DSH,设置页出现 「订阅服务 / 用量」 即为成功。

三、配置文件

复制 config.example.json 为 <DSH_HOME>/gpt-auto-proxy.json,按需修改(缺省字段自动使用默认值):

| 字段 | 默认 | 说明 |
| autoStart | true | DSH 启动时是否自动拉起本地服务 |
| port | <LOCAL_PORT>(默认 8787) | 本地监听端口;被占用则复用,不抢 |
| proxy | http://127.0.0.1:<PROXY_PORT> | 出网代理;空字符串 = 不走代理 |
| tokensFile | <DSH_HOME>/gpt-auto-proxy/tokens.json | 凭证文件路径(只读,界面只显示路径) |
| bridgeEntry | 插件自带实现 | 想接外部实现时指过去 |
| usageUrl | 上游额度接口 | 额度查询地址 |
| usageCacheSeconds | 60 | 额度缓存秒数 |
| canaryModel | gpt-6-sol | 真实调用探活用的模型;账号不支持时换一个可用的 |
| canaryTimeoutMs | 20000 | 探活超时 |
| probeUrl / probeCacheSeconds | 上游首页 / 6 | 连通性探测,仅作辅助信息 |

外部路径也可用环境变量覆盖:GPT_PROXY_BRIDGE_ENTRY、GPT_PROXY_TOKENS_FILE(留空即不启用)。

四、独立运行(不装 DSH)

CODEX_BRIDGE_PORT=<LOCAL_PORT> \
CODEX_BRIDGE_PROXY=http://127.0.0.1:<PROXY_PORT> \
CODEX_BRIDGE_TOKENS=<YOUR_TOKEN_FILE> \
node bridge/bridge.mjs

可用端点:

| 方法 | 路径 | 说明 |
| POST | /v1/responses | 转发到上游,SSE 流回 |
| GET | /v1/models | 可用模型列表 |
| GET | /v1/usage | 账号额度(5 小时 / 7 天窗口) |
| GET | /health | 健康检查与凭证状态(不含凭证原文) |

使用示例

以下 sk-local-dummy 是假 token,仅用于占位——本地服务不校验它,真正的凭证由服务自己去读 <YOUR_TOKEN_FILE>。

curl

curl http://127.0.0.1:<LOCAL_PORT>/v1/responses \
-H "Authorization: Bearer sk-local-dummy" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6-sol",
"input": "用一句话解释什么是 SSE。", "stream": false }'

流式:

curl -N http://127.0.0.1:<LOCAL_PORT>/v1/responses \
-H "Authorization: Bearer sk-local-dummy" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-6-sol","input":"写一个三行的 Python 循环","stream":true}'

OpenAI 兼容客户端(任意语言)

from openai import OpenAI

client = OpenAI(
base_url="http://127.0.0.1:<LOCAL_PORT>/v1",
api_key="sk-local-dummy", # 占位串,随便填
)

resp = client.responses.create(model="gpt-6-sol", input="你好")
print(resp.output_text)

import OpenAI from 'openai'

const client = new OpenAI({
baseURL: 'http://127.0.0.1:<LOCAL_PORT>/v1',
apiKey: 'sk-local-dummy', // 占位串 })

const res = await client.responses.create({ model: 'gpt-6-sol', input: '你好' })
console.log(res.output_text)

在 DSH 里用

1. 确保插件已启用、本地服务在跑;
2. 在模型设置里添加一个自定义连接,地址填 http://127.0.0.1:<LOCAL_PORT>/v1;
3. 打开设置页「订阅服务 / 用量」看额度与主灯状态。

常见问题(FAQ)

为什么需要我自己准备凭证?

因为本项目不包含登录、注册或凭证获取流程——这是有意的设计。凭证代表你账号的授权,任何「自动帮你搞到凭证」的东西都意味着凭证经过第三方。本项目只做「拿到凭证之后的协议转换」,凭证从哪来、归谁所有,由你自己负责。

有没有被限流或封号的风险?

有,而且不小。 上游对这类非官方接入通常有明确条款限制,检测到异常调用模式(高频、异常 UA、多来源共用、超量并发)可能直接限流或封号。本项目无法、也不会替你规避这些检测。请自行评估风险,不要用重要账号尝试。

为什么不能公开分享 token?

tokens.json(或你的 <YOUR_TOKEN_FILE>)里的 access_token / refresh_token 等同于你账号的登录态。一旦泄露:别人可以用你的账号、消耗你的额度、看你的历史对话,且你无法分辨是谁在用。刷新令牌还可能让你自己的会话被踢下线。所以:不进仓库、不进截图、不进聊天记录、不放进同步盘。

支持哪些请求字段?

实现了 OpenAI Responses 风格的子集:
- 支持:model、input(字符串或消息数组)、instructions、stream、reasoning.effort、tools / 工具调用回传、图片输入(取决于账号与模型能力);
- 会被丢弃:max_output_tokens 等上游不接受的字段(不报错,直接剔除);
- 不保证支持:temperature 等采样参数、后台任务、文件上传等更冷门的字段——上游是否接受以实际返回为准。

模型清单是内置的静态列表,上游随时可能增删模型;遇到 400/404 说明该模型当前不可用,换一个即可。

端口被占用了怎么办?

设计上「不抢端口」:如果 <LOCAL_PORT> 上已经有一个同类服务,插件只复用它;如果被其它程序占用,会进入冲突状态并保持不动,不会去杀别人进程。改 port 即可。

界面上的「现在能不能用」是怎么判断的?

不是看端口通不通,而是真的发一次极小调用(约 20 多个 token),按返回结果分类成「可用 / 凭证失效 / 额度用尽 / 网络不通 / 本地服务未运行 / 上游故障 / 请求被拒」。结果缓存 60 秒,页面可见时最多每 5 分钟一次。这会消耗极少量额度,介意就别点。

许可证与致谢

本项目自有代码以 MIT 许可证发布,见 LICENSE。

第三方来源(详见 NOTICE):

- bridge/bridge.mjs 里的模型目录字段取自 pi-ai(@mariozechner/pi-ai,作者 Mario Zechner)的 openai-codex provider 数据;仅复制事实性字段,未复制其实现。使用/再分发前请自行核对其许可证。
- 请求头中的 OAuth 客户端标识与 originator / User-Agent 约定,来自 OpenAI 官方开源的 Codex CLI(Apache-2.0)及公开 API 行为;这些是公开常量,不构成任何授权。
- 本项目是 DSH 的第三方插件,依赖其 webServer 与客户端注入槽;本仓库不含 DSH 代码。

本仓库不包含上游服务提供方的任何源代码。

再次提醒:合规使用、封号风险、以及上游服务条款的责任,都在使用者本人。
预览分享卡片长什么样 ↓TheCarey/Dsh-gpt-auto-proxy
分享 · DeepSeek Harness Hub
TheCarey/Dsh-gpt-auto-proxy

把自有订阅凭证在本机转成 OpenAI 兼容接口

这是你的仓库?认领条目

回到顶部