Skip to content

dsh-chatgpt-web

Verified

@wlv-zedd/dsh-chatgpt-web · v1.0.4 · MIT · Web UI

DeepSeek Harness Cordis plugin for free ChatGPT Web (GPT 5.6 Luna) pure chat and zero API fees.

Install

dsh plugin add @wlv-zedd/dsh-chatgpt-web

Confirm the layer applied with dsh --profile default --dump-config — see the install guide.

Source

Tags

Readme

dsh-chatgpt-web

English | 中文

license tarball smoke DeepSeek Harness Mode

基于免费 ChatGPT Web(GPT 5.6 Luna)驱动的 DeepSeek Harness 零成本对话 AI 模型提供者。

dsh-chatgpt-web 在 DeepSeek Harness 中

dsh-chatgpt-web 交互演示


目录


概述

dsh-chatgpt-web 将你本地的 ChatGPT 浏览器会话转变为 DeepSeek Harness (DSH) 内部无缝运行的 $0.00 免 API 费用的对话模型提供者。

它通过无头(Headless)或可视的 Chrome/Chromium 浏览器自动化连接至 chatgpt.com,将实时的 Markdown 回答、代码方案、解释以及推理过程直接流式传输回 DSH 对话中,无需消耗任何 API 额度。

为什么选择纯对话模式(Pure Chat)?

轻量级对话网页模型(如 GPT 5.6 Luna)非常擅长解释、对话、问答、头脑风暴、代码片段生成以及侧边助手任务。通过运行在 纯对话模式 下,该桥接器消除了提示词开销、工具幻觉以及自主多工具循环中的语法错误,提供快速、稳定且零成本的 LLM 提供者。

核心功能

  • 100% 完全免费($0.00 成本): 使用你现有的免费 ChatGPT 网页会话,无需 OpenAI API Key 或信用卡。
  • Cordis 插件优先生命周期: 由 DSH 通过 ctx.effect 管理。DeepSeek Harness 在启动时自动拉起后台 Sidecar 进程,并在退出时安全关闭。
  • 动态模型自动检测: 自动检测你的 ChatGPT 账户等级:
    • 免费账户: 默认为 chatgpt-web/luna(gpt-5-6-luna)。
    • Plus / Team 账户: 自动检测并暴露可用的付费模型(如 gpt-4o、o1)。
  • 完整流式 Markdown 与代码块: 实时向 DSH Web UI 或 CLI 投递生成的内容。
  • 可移植且经过校验的发布产物: 发布的 tarball 在到达仓库(registry)之前会由 CI 校验(干净安装、运行时冒烟测试、依赖解析、无构建环境路径污染)。

环境要求

  • 运行时: Node.js >=22.19.0 或 Bun >=1.3.0(两者均受支持,CLI 可在任一运行时上运行)。
  • DeepSeek Harness: >=0.2.0-rc.2。
  • 浏览器: 你机器上的 Chrome 或 Chromium(用于一次性登录与运行服务)。

快速上手

1. 安装插件

直接从本 GitHub 仓库安装:

dsh plugin --profile <profile> add github:lordraiden/dsh-chatgpt-web

这会将插件注册到 profile 的 package.json bundles 中,其 Cordis 条目会被自动组合——无需手动 insert。

2. 一次性浏览器登录

进行一次性的 ChatGPT 账号登录验证。插件可执行文件位于 profile 的 node_modules/.bin 中:

~/.dsh/profiles/<profile>/node_modules/.bin/dsh-chatgpt-web setup --dsh

系统将打开专用的 Chrome/Chromium 窗口。登录你的 OpenAI / ChatGPT 账号。输入框可见且 ChatGPT 会话通过登录验证后,setup 才会捕获会话,并将配置和浏览器状态写入插件的存储目录(默认 ~/.dsh/storages/chatgpt-web/)。仅有游客输入框不会被视为登录成功。

--dsh 不修改 Codex 配置,也不安装操作系统服务,后台 Sidecar 由 DSH 管理。该命令拒绝将已有 Codex 或 DEV 存储改为 DSH 用途;需要并存时,请指定独立的 DSH_CHATGPT_WEB_HOME。再次运行 setup 前,请停止或禁用 Sidecar,确保端口空闲。不带 --dsh 时,保留原有 Codex 配置流程。

如果你的浏览器不在默认路径,请显式传入:

~/.dsh/profiles/<profile>/node_modules/.bin/dsh-chatgpt-web setup --dsh --chrome /path/to/chrome

使用受 snap 沙箱限制的浏览器(例如 snap 版 Chromium)

受 snap 沙箱限制的浏览器只能写入 $HOME 下的非隐藏路径。插件的默认存储目录(~/.dsh/storages/chatgpt-web/)是隐藏目录,因此 snap 浏览器无法在其中创建 profile 锁文件,setup 会失败并报告:

Failed to create .../login-profile-XXXX/SingletonLock: Permission denied (13)

解决方法是通过环境变量 DSH_CHATGPT_WEB_HOME 将插件的存储主目录指向一个非隐藏目录。

该变量的工作原理: VAR=value command 是标准的 shell 语法——它只为那一条命令设置环境变量,不会持久化。插件在启动时读取 DSH_CHATGPT_WEB_HOME;一旦设置,它拥有的所有文件(配置、浏览器 profile、存储状态)都会放在该目录下,而不是 ~/.dsh/storages/chatgpt-web/。

逐步操作:

  1. 在命令上附加该变量,运行一次性 setup:

    DSH_CHATGPT_WEB_HOME="$HOME/dsh-chatgpt-web" \
      ~/.dsh/profiles/<profile>/node_modules/.bin/dsh-chatgpt-web setup --dsh --chrome /snap/bin/chromium
    

    浏览器窗口会打开;登录 ChatGPT。会话将保存在 ~/dsh-chatgpt-web/ 下。

  2. 为启动 DSH 的 shell 持久化该变量。 后台 Sidecar 进程由 DeepSeek Harness 启动,继承的是 DSH 的环境——它不会继承你在终端里一次性使用的 VAR=value 前缀。因此请在你的 shell 配置文件(例如 ~/.bashrc)中导出该变量,然后从该 shell 启动 DSH:

    # 添加到 ~/.bashrc(或 ~/.zshrc):
    export DSH_CHATGPT_WEB_HOME="$HOME/dsh-chatgpt-web"
    
    # 重新加载,然后在该 shell 中启动 DSH:
    source ~/.bashrc
    dsh --profile <profile> web
    

    这样 Sidecar 就能找到 setup 创建的同一份 config.json 和浏览器状态。

  3. 用 doctor 验证(在相同的环境中运行):

    ~/.dsh/profiles/<profile>/node_modules/.bin/dsh-chatgpt-web doctor
    

重要: 所有接触插件状态的命令——setup、login、doctor,以及运行 Sidecar 的 DSH 进程——必须看到同一个 DSH_CHATGPT_WEB_HOME。如果一部分使用隐藏默认路径、另一部分使用非隐藏路径,Sidecar 会报告 Configuration is missing。

3. 在 DeepSeek Harness 中启用

提供者配置位于 profile 的 Cordis 补丁层(~/.dsh/profiles/<profile>/cordis.patch.yml)中,而不是某个全局配置文件里。在 llm-pi-ai 条目的现有 providers 映射下添加 chatgpt-web 提供者:

- id: llm-pi-ai
  name: "@deepseek-ai/dsh-llm-pi-ai"
  config:
    providers:
      # ...你现有的 providers...
      chatgpt-web:
        displayName: "ChatGPT Web (Free)"
        api: openai-responses
        baseURL: http://127.0.0.1:17841/v1
        headers:
          Authorization: "Bearer chatgpt-web-free"
        streamIdleTimeoutMs: 300000
        models:
          - id: chatgpt-web/luna
            name: "ChatGPT Web — Luna (Free)"
            contextWindow: 1050000
            maxTokens: 32768
            input:
              - text
              - image

可选地,在 agent-default-model 条目中将其设为智能体的默认模型:

- id: agent-default-model
  name: "@deepseek-ai/dsh-agent-default-model"
  config:
    provider: chatgpt-web
    model: chatgpt-web/luna

现在使用你的 profile 启动 DeepSeek Harness:

dsh --profile <profile> web

DSH 将自动启动后台 Sidecar 进程,连接已登录的 ChatGPT 会话并开始处理提问!


诊断与健康检查

随时使用内置的诊断工具检查环境配置:

~/.dsh/profiles/<profile>/node_modules/.bin/dsh-chatgpt-web doctor

正常输出示例:

✓ Configuration is valid (~/.dsh/storages/chatgpt-web/config.json)
✓ Chrome executable found
✓ ChatGPT login state has authenticated browser evidence
✓ Responses proxy is healthy on 127.0.0.1:17841
Doctor result: ready

故障排查

常见问题请参见 TROUBLESHOOTING.md:浏览器可执行文件路径、snap 沙箱限制、缺失的配置,以及运行时(Node/Bun)说明。


注意事项与使用限制

  1. 非官方桥接: 通过本地 Playwright 自动化驱动 chatgpt.com 网页。与 OpenAI 官方无隶属或背书关系。
  2. 单会话并发: 运行在单个浏览器标签页中。顺序查询和正常的 DSH 智能体对话完全顺畅;请避免同时对同一标签页发起多个高并发子智能体任务。
  3. 纯对话支持: 该提供者专注于纯对话回复、解释、推理以及代码块生成。不支持执行本地文件系统、终端命令或自主工具循环。
  4. 免费额度频率限制: 遵循 OpenAI 官方网页免费版的小时级调用频次限制。

相关文档