一个ChatGPT 超级省额度方案!用 TaskQuay 连接网页 ChatGPT 和本地 Codex

一个ChatGPT 超级省额度方案!用 TaskQuay 连接网页 ChatGPT 和本地 Codex

一个超级省额度的方案,利用网页 ChatGPT 聊天的独立额度在网页 ChatGPT 里讨论需求,调用 Mac 上的 Codex 写代码,再回到同一段对话检查改动。通过 TaskQuay,可以继续使用本地项目、依赖和调试环境,不必把整个开发环境搬到服务器。

注意不要使用 Work 模式
如果担心有风险,会被封号的,建议观望

一、先确定连接方式

采用 ngrok 时,连接路径如下:

text 复制代码
网页 ChatGPT
    ↓ MCP 请求,经 OAuth 授权
ngrok 公网 HTTPS 地址
    ↓ 转发到 Mac
TaskQuay(127.0.0.1:7676)
    ├── 直接读取、搜索已授权项目
    └── 调用 Codex CLI 执行开发任务
            ↓
        本地文件、命令和测试
            ↓
        进度与结果返回 ChatGPT

虽然浏览器和服务都在 Mac 上,但远程 MCP 请求来自 ChatGPT 云端,不能直接访问这台 Mac 的 localhost。因此,需要一个云端可访问的入口。

这套方案只需在 Mac 上运行 TaskQuay 和 ngrok,不必额外购买 VPS。把 TaskQuay 搬到服务器后,文件读写和命令执行也会转到服务器;仅用服务器转发入口,则还需要一条连接到 Mac 的隧道。

另有 OpenAI 官方 Secure MCP Tunnel 路线,但项目文档中的"全私网 OAuth + 官方 Tunnel"完整流程仍待验证,这里只展开 ngrok 接法。

TaskQuay 是 DevSpace 的独立二开分支,部分命名仍沿用 devspace,后面的 bin/devspace.js~/.devspace 都属于正常命名。安装使用 TaskQuay 仓库,不与上游 npm 包混用。

二、准备环境并安装

先确认 ChatGPT 账号能开启开发者模式、创建自定义连接。组织账号可能需要管理员授权。

本地需要 Git 和 Node.js。Node.js 版本要求为 >=22.19 <27,包管理器为 pnpm@11.25.0

sh 复制代码
node --version
npm --version
git --version

缺少工具时,先完成安装。全新 Mac 可安装符合范围的 Node.js 版本,例如 Node 24;Apple Silicon 选择 ARM64,Intel 选择 x64。后面的 ngrok 安装会用到 Homebrew,也需提前准备。

安装并登录 Codex CLI

已有则跳过

安装 Codex CLI,执行前先检查安装脚本的来源和内容:

sh 复制代码
curl -fsSL https://chatgpt.com/codex/install.sh | sh

检查 CLI 和 app-server 子命令:

sh 复制代码
codex --version
codex app-server --help

再运行 codex 完成登录。安装、登录和启动 TaskQuay 使用同一个系统用户,避免 PATH 或认证状态不一致。

后续调用的是 codex app-server,不是桌面聊天窗口。完成登录后可退出交互界面,由 TaskQuay 管理对应进程。

项目本身的工具链也要准备好。例如 PHP 项目仍需 PHP、Composer 和依赖;构建、测试涉及的数据库及其他服务,也需在本机可用。

从源码安装 TaskQuay

在准备存放工具源码的目录执行:

sh 复制代码
git clone https://github.com/wrfgup/taskquay.git
cd taskquay

npm install --global pnpm@11.25.0
pnpm install --frozen-lockfile
pnpm build

不要跳过 pnpm build。服务端能够启动,不代表管理台已经构建;管理页面依赖 dist/ui 下的产物,缺失时可能出现服务正常、页面打不开的情况。

已有同名目录时,先检查现有仓库和未提交修改。升级重建会替换 dist,应在任务结束、相关服务停止后执行。

三、启动 ngrok,取得 HTTPS 地址

安装 ngrok:

sh 复制代码
brew install ngrok
ngrok version

在 ngrok 控制台取得 Authtoken,完成账号绑定:

sh 复制代码
ngrok config add-authtoken YOUR_NGROK_AUTHTOKEN

真实令牌只在本机填写,注意终端历史、截图和日志中的泄露风险。

使用控制台分配的域名启动隧道:

sh 复制代码
ngrok http 7676 --url https://YOUR_DOMAIN.ngrok-free.dev

端口填 7676,不是 ngrok 入门示例里的 80。也可以先执行 ngrok http 7676,采用终端输出的实际 HTTPS 地址。

保留这个终端,记下公开地址。此时 TaskQuay 尚未启动,访问失败不代表隧道配置有误。

四、初始化项目目录和授权信息

回到 TaskQuay 仓库根目录:

sh 复制代码
node bin/devspace.js init

按向导填写:

配置项 填写内容
使用位置 ChatGPT
授权目录 实际存在的项目绝对路径,多个目录用英文逗号分隔
公开地址 https://YOUR_DOMAIN.ngrok-free.dev
子代理 已准备好的 Codex provider

授权目录例如:

text 复制代码
/Users/YOUR_NAME/Data/taskquay, /project目录/demo

先授权具体项目,不要为了方便放开整个用户目录。这里填写的是允许访问的范围,后续打开具体项目时才建立工作区。

公开地址填写根地址,不带 /mcp 如果 Codex 显示 unavailable,先检查可执行文件、PATHCODEX_COMMAND 配置。

已有配置时,普通 init 会提示配置存在。确需重走向导,可先备份,再执行 node bin/devspace.js init --force;只改少量内容时,直接编辑对应字段即可。

配置和授权口令的位置

默认配置目录:

text 复制代码
~/.devspace/
├── config.jsonc    # 服务地址、授权目录、provider 等
└── auth.json       # ownerToken 等认证信息

在 Finder 按 ⌘⇧G,输入 ~/.devspace,即可打开目录。

授权口令位于 auth.json 顶层的 ownerToken

json 复制代码
{
  "ownerToken": "初始化生成的私有口令"
}

这是字段示例,不要用来覆盖原文件。实际口令用于 TaskQuay 的 OAuth 授权页和本地管理台登录,不是 ngrok Authtoken,也不在 config.jsoncoauth.ownerToken 中。

只复制需要的口令,不要把整份认证文件贴进对话。设置过 DEVSPACE_CONFIG_DIRDEVSPACE_OAUTH_OWNER_TOKEN 时,按启动进程的实际环境查找。

五、启动服务,检查本地和公开入口

在仓库根目录执行:

sh 复制代码
node bin/devspace.js doctor
node bin/devspace.js serve

doctor 用于检查配置、运行环境、目录和 provider。Codex 的可用性提示主要确认命令能被找到,不能替代登录后的一次真实调用。

保持 TaskQuay 和 ngrok 两个终端运行,另开终端检查本地服务:

sh 复制代码
curl --noproxy '*' --fail --show-error \
  http://127.0.0.1:7676/healthz

--noproxy '*' 仅让这条请求绕过环境代理,避免本地检查被转发到其他代理端口。

本地正常后,在浏览器打开公开 OAuth 元数据地址:

text 复制代码
https://YOUR_DOMAIN.ngrok-free.dev/.well-known/oauth-authorization-server

应返回 JSON。检查 issuerauthorization_endpointtoken_endpointregistration_endpoint,确认使用实际的 HTTPS 入口,而不是 localhost。

公开地址填错或发生变化时,执行:

sh 复制代码
node bin/devspace.js config set publicBaseUrl \
  https://YOUR_DOMAIN.ngrok-free.dev

保存后,等活动任务结束,在服务终端按 Ctrl+C,重新运行 node bin/devspace.js serve。保留 ngrok 终端,不要在同一端口重复启动服务。

三个地址不要混用:

用途 地址
TaskQuay 的 publicBaseUrl https://YOUR_DOMAIN.ngrok-free.dev
ChatGPT 的 MCP Server URL https://YOUR_DOMAIN.ngrok-free.dev/mcp
Mac 本地管理台 http://127.0.0.1:7676/console/

ngrok 在这里转发整个 HTTP 服务。自配代理时,不能只转发 /mcp,还需覆盖 /.well-known/*/register/authorize/token/revoke;启用卡片资源时,还要处理 /mcp-app-assets/*。同时保留认证头和流式响应,避免缓存认证信息与工具结果。

直接在浏览器打开 /mcp,可能返回鉴权或协议错误,不宜据此判断连接失败。完整检查需要在 ChatGPT 中完成授权和工具调用。

六、在 ChatGPT 中创建连接

开启开发者模式,再进入插件或应用页面创建连接。本文对应的界面入口为"设置 → Security and login → Developer mode",部分账号的页面名称可能不同。

创建连接时填写:

字段 内容
名称 TaskQuay
Connection Server URL
MCP Server URL https://YOUR_DOMAIN.ngrok-free.dev/mcp
Authentication OAuth
Client ID / Client Secret 使用动态客户端注册时留空

TaskQuay 支持动态客户端注册(DCR),界面提供自动注册选项时使用该选项。

随后在 TaskQuay 授权页输入 ownerToken。确认域名、申请范围和资源地址无误后完成授权,再回到 ChatGPT 检查发现的工具。

OAuth access token 由认证流程生成,用于客户端访问 MCP,不要与 owner 口令或 Codex 登录状态混用。

管理台仍使用本地地址:

text 复制代码
http://127.0.0.1:7676/console/

默认不开放远程管理台。通过 ngrok 访问 /console/ 被拒绝,不代表公网 MCP 连接有问题;远程管理台需要单独启用 console.allowRemote,并满足 HTTPS、可信代理等条件。

七、分三步验证,再开始改代码

先测试直接读取

新建对话,选中 TaskQuay,发送:

text 复制代码
使用 TaskQuay 打开 /Users/YOUR_NAME/Data/taskquay。

建立工作记录,直接读取 README.md,说明项目结构。
仅执行只读操作,不修改文件,不委派 Codex。

返回实际读取路径、工作回执和 Codex 用量状态。

确认对话里出现了实际工具调用、返回内容与 README 一致,并在管理台查看对应工作记录。刚登录时项目列表为空,可先完成打开工作区和建立记录。

这一步没有调用 Codex,用量应显示"未调用",但网页端读取和处理内容仍有自身的用量口径。

再测试 Codex 委派

直接读取通过后,发送:

text 复制代码
使用 TaskQuay,委派本地 Codex 只读检查
/project目录/demo 的项目结构。

不修改文件,列出主要模块、入口和可执行的测试命令。
返回受管任务状态、Codex 会话标识和本次用量回执。

这一步才开始验证 Codex 的登录、权限和真实推理。失败时保留具体报错,区分命令未找到、账号权限、协议异常和项目任务失败。

最后进入实现与审查

正式任务可按下面的方式约定分工:

text 复制代码
使用 TaskQuay 处理 /project目录/demo。

目标:填写本次功能和验收标准。

先直接读取相关代码和项目规则,确认修改范围。
检查已有未提交变更,保留与本任务无关的内容。

方案明确后,委派本地 Codex 实现并运行相关测试。
完成后,直接读取实际 diff、关联代码和测试输出进行审查。
每个问题给出文件位置、影响和依据。
确认的问题交回 Codex 修复,再复查改动和测试结果。

同一批文件的写入保持串行。
提交、推送、部署、数据库变更和删除操作需要另行确认。

最后返回修改结果、验证范围、剩余风险和 Codex 用量回执。

审查不能只看一段"已完成"的摘要。接口变更要检查调用方,权限变更要检查越权边界,UI 变更还需查看实际页面。

重要要求直接写进任务或项目规则文件,包括允许修改的模块、测试方式和提交约束。网页对话中的背景,也需要整理后传给 Codex,不能默认两边拥有完全相同的上下文。

八、两处常见排错

管理台报 CONSOLE_REQUEST_REJECTED

先区分错误码:CONSOLE_ACCESS 通常与访问限制有关;CONSOLE_REQUEST_REJECTED 来自通用异常处理,不能直接认定为远程访问被拦截。

排查中,本地地址也出现了这个错误,最终发现仓库缺少整个 dist 目录,管理页面无法读取。

先检查页面文件:

sh 复制代码
ls -l dist/ui/console.html

确认缺失后,等任务结束、停止服务,再补建前端页面:

sh 复制代码
pnpm build:app

构建成功后,确认 dist/ui/console.html 已生成,再启动服务并刷新本地管理台。首次安装仍使用完整的 pnpm build

文件存在却继续报错时,还需检查启动目录、运行版本、文件权限和请求路径。这个错误码覆盖多个原因,不能一律按缺少构建文件处理。

项目提示 Path is outside allowed roots

例如:

text 复制代码
Path is outside allowed roots: /project root/demo

表示请求路径不在当前允许范围内,此时尚未读到项目源码,不能继续据此做架构分析或发布判断。

打开 ~/.devspace/config.jsonc,找到 workspaces.allowedRoots,保留已有条目并追加项目路径:

jsonc 复制代码
"workspaces": {
  "allowedRoots": [
    "/目录/taskquay",
    "/目录/demo", // 实际项目地址
    "/目录/demo1" // 实际项目地址
  ]
}

这是配置片段,合并到已有对象中,不要覆盖其他配置。每条路径都应真实存在。

本文对应实现中,空数组会回退到启动工作目录。改成显式列表时,需要继续访问的原目录也要保留。当前 config set 仅专门支持 publicBaseUrl,目录列表直接编辑 JSONC。

修改目录列表不会自动替换已运行的 agentd 子代理后台进程。重启前先检查任务和后台进程状态:

sh 复制代码
node bin/devspace.js agents daemon status
node bin/devspace.js agents ls

agents ls 只列出当前工作区会话;使用过多个工作区时,还应结合管理台和 daemon 状态检查。

若 agentd 正在运行,确认活动任务结束、排队任务已妥善处理后,再停止进程:

sh 复制代码
node bin/devspace.js agents daemon stop

该命令会停止 provider runtime,可能中断活动任务并取消排队任务,不要在任务运行中随手执行。

然后重启 TaskQuay 服务,检查启动输出中的 allowed roots 是否包含新增项目。后续委派会连接或启动后台进程,加载新配置。

回到对话,再发送:

text 复制代码
授权目录已更新,相关服务已重启。

重新打开 /项目目录,继续只读检查。
先确认实际读取路径,再分析代码。

其他连接问题可按下面的顺序检查:

现象 优先检查
ChatGPT 没有创建连接入口 开发者模式、账号及工作区权限
本地健康接口失败 服务进程、监听端口、终端代理
本地正常,公网失败 ngrok 是否运行、转发端口是否正确
OAuth 元数据仍是 localhost 是否修改了当前实例配置、是否重启
授权页打不开或出现 401 公开路径、域名一致性、OAuth 会话和请求端点
文件能读,Codex 委派失败 CLI 登录、provider 配置、协议和模型权限
更新后工具字段报错 服务版本与 ChatGPT 缓存的工具元数据

九、日常使用的注意事项

日常保持 TaskQuay 和 ngrok 运行。Mac 休眠、关机或切换网络会影响连接;关闭网页或停止服务,也不等于后台任务已经结束。断线后先检查任务记录和实际文件状态,尤其不要直接重发写入、部署或数据库操作。

ngrok 域名变化后,同步更新 publicBaseUrl 和 ChatGPT 中的 MCP URL,并完成必要的重新授权。服务更新导致工具定义变化时,还需刷新 ChatGPT 连接元数据。

代码文件留在本地,不等于内容始终不离开本机。文件片段、任务上下文和工具结果可能经过隧道或发送到模型服务。文件工具受授权目录限制,shell 命令则使用当前系统用户的权限;任务中应明确敏感信息范围,尤其注意 .env、私钥、生产配置和备份数据。

真实的 Codex 委派仍会产生对应使用量。用量回执只记录 TaskQuay 管理的任务,不等于订阅剩余额度或最终账单;缺失的统计应保持"未知",不能按零消耗理解。

验证范围:原记录已确认本地服务和 OAuth 接口响应,定位了管理台构建目录缺失,并确认多项目允许列表修改后的配置加载。网页连接由实际操作反馈已建立;管理台修复后的最终页面、完整 Codex 编码与网页复查,以及全私网官方 Tunnel,仍需各自完成实际验收。上面的提示词是验证步骤,不代表这些测试已经全部通过。

ChatGPT 超级省额度方案

相关推荐
万象新讯1 小时前
自筹资金、加速器孵化和获得融资的创业公司,可以分别申请哪些AWS扶持政策?
人工智能
Thomas.Sir1 小时前
第49课:TensorFlow|项目性能调优全方案【训练提速、推理提速、资源占用优化】
人工智能·python·tensorflow
海宇数据1 小时前
零信任架构实战:基于海宇对外投资历史查询服务构建自动化异动企业筛查网关
运维·人工智能·架构·自动化
夜瞬1 小时前
Merge、Ensemble 与 Cooperate:一文读懂大语言模型协同
人工智能·深度学习·语言模型
智慧大脑搬运工1 小时前
美丽蓝天政策申报|CCER方法学适用条件判定与减排量核算要点:以绿氢和林业经营碳汇为例
人工智能
QQ_21696290961 小时前
基于微服务架构的店铺管理系统的设计与实现
大数据·spring boot·后端·spring·微服务·小程序·架构
aneasystone本尊1 小时前
学习大模型推理的输出阶段:从 Token 回到文本
人工智能
yu俞娥宝1 小时前
DeepSeek Harness 开源贡献手记:参与AI智能体框架共建的实战与成长
人工智能·开源