Preface

The core philosophy of DeepSeek Harness (DSH) is “everything is a plugin.” When using a local agent or performing large model inference, obtaining an OpenAI API key usually requires binding a credit card and paying for the service. The dsh-chatgpt-web plugin uses local browser automation to convert the free ChatGPT Web conversation experience into a model interface that DSH can directly call, eliminating the need for API key application and billing steps, and enabling zero-cost integration.

Plugin Introduction

This plugin is maintained by WLV-ZEDD and is a Cordis plugin. It uses Playwright to launch a local browser session connected to chatgpt.com, and synchronizes the ChatGPT Web conversation stream back to DeepSeek Harness in real time. The plugin is uniformly managed by DSH through ctx.effect as a background Sidecar process, ensuring that session state is automatically handled when the Harness starts and stops.

Core Features

  • Zero-Cost Integration: Reuses the existing free ChatGPT Web conversation without requiring an OpenAI API key or additional fees.
  • Automatic Model Detection: Automatically detects available models based on account tier. Free users use chatgpt-web/luna by default, while Plus/Team users can access paid models.
  • Real-Time Streaming Transfer: Supports real-time token output for Markdown and code blocks.
  • Lifecycle Management: As a Sidecar plugin, it is automatically managed alongside the start and exit of DSH processes.

Installation and Enablement

Install the dependency and complete a one-time login authentication:

pnpm add @wlv-zedd/dsh-chatgpt-web
npx @wlv-zedd/dsh-chatgpt-web login

After running the login command, a browser window will open. Log in with your OpenAI account. The authentication state will be securely stored locally in ~/.dsh/storages/chatgpt-web/.

Add the Provider configuration in ~/.dsh/settings.yaml:

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:
  provider: chatgpt-web
  model: chatgpt-web/luna

Register the plugin in ~/.dsh/cordis.patch.yml (or cordis.yml):

- insert:
    - id: dsh-chatgpt-web
      name: '@wlv-zedd/dsh-chatgpt-web'

Diagnostics and Verification

You can use the built-in diagnostic command to verify whether the environment configuration is correct:

npx @wlv-zedd/dsh-chatgpt-web doctor

Applicable Scenarios and Cautions

  • Applicable Scenarios: Pure text conversation, code explanation, Markdown rendering, Q&A, and brainstorming.
  • Cautions:
    • The plugin operates via local Playwright browser automation and is not an official OpenAI product.
    • It runs in a single browser tab and does not support concurrent multi-agent sequential calls.
    • It only generates pure conversational content and does not support file system operations or terminal execution.
    • It is subject to the hourly usage limits of the OpenAI free tier.

This plugin provides the DSH ecosystem with a pure conversational model source without API fees. For more details, refer to GitHub.