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.
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:HackForJoy/dsh-openai-siwc说明文档
阅读完整 README ↗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(onlyvisibility: "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 parameter | Behavior | Why |
|---|---|---|
temperature | Error UNSUPPORTED_PARAMETER | Forbidden by the docs; silently dropping it would change the output |
stop | Error UNSUPPORTED_PARAMETER | The Responses API has no stop sequences |
reasoningEffort | Sent as reasoning.effort | Levels 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 |
maxTokens | Not sent, logged once | The 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 input | Image-capable models (per catalog): inline data URLs, including images in tool results. Text-only models: text placeholders | At most 20 MiB of base64 images per request by default (maxRequestImageBytes); beyond that DSH offloads the oldest images |
| Reasoning replay | Not replayed | store: false, and no encrypted reasoning content is available |