HackForJoy/dsh-openai-siwc ↗★ 2

@hackforjoy/dsh-openai-siwc

Community DeepSeek Harness (DSH) LLM provider using OpenAI Sign in with ChatGPT (ChatGPT plan usage for open-source clients). Not affiliated with OpenAI or DeepSeek.

Package
@hackforjoy/dsh-openai-siwc
Compatibility
Unverified
Harness peer range
0.2.1-rc.3
Cordis peer range
~4.0.5
Version
0.1.2
License
MIT
Last updated
Oct 28, 2026

Install

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:HackForJoy/dsh-openai-siwc

Configuration (optional)

Override by id in the profile's cordis.patch.yml:

- id: openai-siwc
  name: '@hackforjoy/dsh-openai-siwc'
  config:
    defaultContextWindow: 128000     # only for models whose catalog entry has no context_window
    models:
      some-model-slug:
        contextWindow: 200000        # per-model override
    streamIdleTimeoutMs: 300000      # longest silence tolerated on an open stream
    maxRequestImageBytes: 20971520   # base64 image budget per request; DSH offloads the oldest images beyond it

The OpenAI endpoints are not configurable, so a tampered configuration cannot send tokens elsewhere.

Usage

  • Pick a model under ChatGPT plan (Sign in with ChatGPT) in the model picker. The list comes from your account's GET /v1/models (only visibility: "list" entries) and refreshes when you switch accounts.
  • Supported: text, streaming, multi-turn conversations, tool calls (wrapped in a namespace named dsh, as the docs require), image input, and reasoning effort. Model capabilities — input types, context window, reasoning levels — come from the account's model catalog; nothing is guessed.
  • Slash commands (when DSH mounts the commands service):
    • /siwc login [new] — sign in (see above);
    • /siwc status — sign-in state, plan usage, granted scopes, token lifetime, the last sign-in failure and model-list error (never any token);
    • /siwc models — fetch the current account's model list;
    • /siwc logout — sign out (see below).

Differences from other providers

DSH parameterBehaviorWhy
temperatureError UNSUPPORTED_PARAMETERForbidden by the docs; silently dropping it would change the output
stopError UNSUPPORTED_PARAMETERThe Responses API has no stop sequences
reasoningEffortSent as reasoning.effortLevels come from the account catalog, intersected with the values the API accepts (the catalog's ultra is rejected by the API and therefore dropped). "Default" leaves the server's own default
maxTokensNot sent, logged onceThe docs forbid max_output_tokens. DSH's compaction and session titles always pass it; it is only a cap, so omitting it does not affect correctness
Image inputImage-capable models (per catalog): inline data URLs, including images in tool results. Text-only models: text placeholdersAt most 20 MiB of base64 images per request by default (maxRequestImageBytes); beyond that DSH offloads the oldest images
Reasoning replayNot replayedstore: false, and no encrypted reasoning content is available