npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

cortico-provider-chatgpt

v0.1.6

Published

Sign in with ChatGPT for Cortico, with account controls and remote callback completion in WebUI

Readme

cortico-provider-chatgpt — src/index.ts, src/auth.ts, src/client.ts, src/callback.ts, webui/client.ts

普通 Cortico 的 ChatGPT 账号登录扩展。安装后注册 kind: "chatgpt",在模型端点编辑页提供登录、状态、取消和退出。 独立安装即可使用;OAuth 与 Responses 实现改编自 [email protected],请求转换与模型元数据仍依赖该固定版本,无需另外安装或配置 Coo 扩展。

安装与登录

需要 Node.js 22+、provider 扩展契约 API 6 的 Cortico,以及有资格授权套餐用量的 ChatGPT 账号。 账号资格、可用模型和用量由 OpenAI 返回,扩展不保证所有账号可用。 登录、模型请求与 callback 已通过官方 npm Cortico 0.2.2 的本地模拟测试,无需修改宿主。

  1. WebUI → 扩展 → Provider → 手动安装,填写本包目录的绝对路径;npm 发布后可填写 cortico-provider-chatgpt。
  2. 重启 Cortico,在模型提供商页新建端点,类型选 ChatGPT,填写端点名和模型后保存。无需填写 API Key;登录后可以从套餐模型列表重新选择模型。
  3. 在 ChatGPT 账号 区域点击 Continue with ChatGPT,在新开的浏览器页面完成授权。浏览器拦截新窗口时,点击面板中的授权链接。
  4. 状态显示 已登录 后,点击端点编辑页的获取模型列表,选择模型并保存,测试连接后设为当前端点。

地址与 API Key 输入框由官方 Cortico 显示。服务地址固定,无需填写 API Key,认证由账号登录管理。 建议只修改模型;其他配置请保持默认,修改后可能导致请求失败。

不同账号或 workspace 使用不同端点。已注册端点重新登录时沿用原注册;换账号请新建端点。 Coopanion 已注册同名 chatgpt 模块,不需要安装此扩展。

远程运行

callback 监听地址跟随当前部署的 web.host:配置 0.0.0.0 时监听全部 IPv4 接口,配置具体 IP 时只监听该 IP;未配置时使用 127.0.0.1。 扩展按官方命令行启动方式,从部署名参数或 CORTICO_BOT 确定部署,使用 cortico/paths.ts 的 deploymentDir() 定位 config.json,每次登录读取 web.host。--host=<地址> 优先于文件配置。 未指定部署或 web.host 时使用 127.0.0.1;自定义程序内嵌 Cortico 时需要传入部署名或 CORTICO_BOT。此功能无需修改 Cortico。

通过非 127.0.0.1 / localhost 地址访问 WebUI 时,面板显示远程回调提示。 授权后若浏览器无法连接,将地址栏 URL 的 127.0.0.1 改成访问 WebUI 使用的服务器主机名,保留 HTTP、随机端口、/auth/callback 和所有查询参数。 例如访问 https://server.example:7791/,授权后地址为 http://127.0.0.1:45678/auth/callback?code=...&state=..., 则改成 http://server.example:45678/auth/callback?code=...&state=...。面板会显示当前登录所用的服务器 callback 地址。

随机 callback 端口需要能从浏览器直接访问;WebUI 的反向代理端口不会自动转发它。 如果不能直接访问该端口,可把原始完整 URL 粘贴到 完整回调地址,经当前 WebUI 提交;请通过 HTTPS 或 SSH 隧道访问 WebUI。 回调 URL 包含一次性授权码,不要发到聊天、日志或工单中。

OpenAI 授权请求和授权码交换仍使用原始 127.0.0.1 redirect URI;用户改写的地址只影响浏览器如何到达 callback 监听器。 直接回调校验本次登录的端口、Host、路径和 state;粘贴提交仅接受原始回环地址,由服务端转发到配置的监听接口。 授权码仍由服务端使用 PKCE 交换,ID token 仍校验签名、issuer、audience、nonce、有效期和套餐授权 scope。 登录十分钟内有效;取消或重新登录会关闭之前的监听器。关闭面板不会取消登录,重新打开可以继续。

OpenAI 的 远程 VM 文档 另有本地登录后经 SSH 转移凭据的流程。 本扩展提供直接回调和回调提交,无需手动复制令牌文件。

凭据与请求

端点目录 <部署根>/providers/<端点名>/.env 保存 CHATGPT_* 注册信息与令牌,文件权限为 0600,原子替换。 令牌即将过期或请求被拒绝时自动刷新;同一进程内共享端点的刷新请求合并。不要让两个 Cortico 进程同时刷新同一端点的凭据。 退出登录会删除本地令牌并尝试撤销 refresh token,保留 client id、host id 与账号身份供再次登录。

请求固定发送到 https://api.openai.com/v1/responses,使用流式响应和 store: false;端点填写的其他服务地址不会接收令牌。 流中的 response.metadata 不参与正文拼装;终止响应的空 output 由已完成的输出项补齐。 其他 Provider 历史中的 text 片段在发送时按角色转换为 input_text 或 output_text,不改写存档。 获取模型列表会读取套餐公开列出的模型。套餐用量达上限时,普通生成按 Coo 的实现等待五分钟后重试;测试连接仍报告上限错误。

本扩展使用自身面板的数据接口。 参考 OpenAI 登录协议 和 Coo Provider 实现。

开发与校验

pnpm install
pnpm test
pnpm typecheck
pnpm typecheck:webui
pnpm build:webui

在 Cortico 根目录执行:

pnpm describe:extension packages/cortico-provider-chatgpt
pnpm check:extension packages/cortico-provider-chatgpt

测试使用本地 OAuth、JWKS、模型列表与 Responses 服务,不登录真实账号,不访问公网。 许可证:AGPL-3.0-or-later。OAuth 与请求实现改编自 Pal AI Lab 的 Coo Provider 0.3.0,源代码见 src/auth.ts 与 src/client.ts。