DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins
C

@djdowbnac/dsh-claude-auth

Claude Auth

LLM provider plugin for the DeepSeek Harness (dsh): streams Claude (Sonnet/Haiku/Opus) through your Claude Code subscription (claude.ai OAuth credentials), no Anthropic API key required.

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:ddowbnac/dsh-claude-auth-proxy#c5a53a8a80e56f9a6c749a7230b2b26cb089384e
READMECompatibilityVersions

Compatibility and provenance

Claude Auth is published as @djdowbnac/dsh-claude-auth and currently resolves to version 0.1.4. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
any
Release source
github
Registry updated
9/29/2026

Versions

0.1.4stable
9/29/2026
0.1.3stable
9/14/2026
0.1.2stable
9/12/2026
Show 1 more versionCollapse versions
0.1.1stable
9/12/2026

Related plugins

Loading related plugins…

Latest
0.1.4
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
any
License
MIT
Source
github
GitHub
★ 0
Weekly downloads
0
Last push
9/29/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

Related plugins

More verified plugins in models-usage.

Experimental Cot Translation Bundle@deepseek-ai/dsh-experimental-cot-translation-bundleExperimental machine translation of expanded reasoningWhale Widgetdsh-whale-widgetDeepSeek balance whale widget in the bottom-right corner of the DSH Web interface: balance/today’s usage/peak-off-peak pricing, customizable bubble click sequence (text/balance/today/peak-off-peak/image/random phrases and parallel weighted selection), per-line styles and fonts, floating quick editinOur Free Model@ebony-vinyl/dsh-our-free-modelOur Free Model — Install this plugin in dsh to use cutting-edge models including DeepSeek V4.1 Flash and Kimi K3, with no login, registration, or API Key required. The desktop version also offers an EAC co-payment channel; starting with 2.0, it supports ten account channels: LobsterAI, Qoder, TRAE, Connect Workbuddydsh-connect-workbuddyConnects locally signed-in WorkBuddy models (domestic and international versions) to DeepSeek Harness, automatically reading each model’s points multiplier from the upstream catalog on every refresh, with per-model image input toggles, multi-account switching, automatic account rotation from an acco

README

@djdowbnac/dsh-claude-auth

dsh model provider that streams Claude through your Claude Code subscription. No Anthropic API key.

Registers a claude-subscription provider on ctx.llm. On the first request the plugin queries GET /v1/models with your OAuth token and serves every model your account can use, with its real context window and output cap. The catalog updates itself when Anthropic ships or retires models, so there is no static model list to maintain.

Requests go to api.anthropic.com/v1/messages with the Claude Code first-party headers. Credentials come from ~/.claude/.credentials.json, the same file the claude CLI writes.

Anthropic reserves subscription tokens for official clients. This is a community workaround, same class as opencode-claude-auth. It draws from your plan limits, not API billing, and may stop working when Anthropic changes its OAuth surface.

How refresh works

The plugin keeps an access token in memory for 30 seconds and only calls the token endpoint when the token is within 60 seconds of expiry, or once per hour as a background pre-refresh. A cross-process lock serializes concurrent instances: the loser waits up to 15 seconds and adopts the winner's token instead of refreshing again. Anthropic rotates refresh tokens on single use, so double refreshes were what broke tokens before.

Install

Prerequisites: dsh on the 0.1.7-rc line, bun, and a one-time claude login.

dsh plugin --profile <name> add @djdowbnac/dsh-claude-auth

That is the whole install. The command registers the package in the profile's dsh.profile.bundles, and dsh mounts the plugin's cordis.patch.yml as an automatic bundle layer on every boot. No manual patch entry, no profile edits.

For a local checkout, add . from inside the checkout directory. Restart dsh and pick a claude-subscription model.

Settings

Namespace claude-auth:

KeyDefaultMeaning
credentialsPath'' (→ ~/.claude/.credentials.json)Override the credentials file path.
disabledModels[]Model ids to stop serving.
streamIdleTimeoutMs600000Abort the stream when SSE goes quiet this long.
requestTimeoutMs900000Per-request budget.

Changes apply on the next request. A missing or invalid credentials file shows as a diagnostic on the provider entry, and requests fail with a typed error.

Web settings

The Models page in the dsh web UI shows a green credential dot next to the provider when your Claude subscription credentials are valid. The plugin mirrors the current access token into the dsh credential store under the CLAUDE_SUBSCRIPTION_API_KEY reference, which is the same reference the page checks. When the token expires or the credentials file disappears, the dot goes away and the provider row shows a diagnostic.

The provider editor card is read-only by design in the dsh web UI. The page renders curated field layouts only for the two first-party provider namespaces (llm-deepseek, llm-pi-ai); every other namespace falls back to the "edit settings.yaml directly" hint. To change streamIdleTimeoutMs or disabledModels, edit the claude-auth section in ~/.dsh/settings.yaml.

Reasoning effort is not a provider setting. Pick it in the model selection popup: the effort selector appears for every model that supports adaptive thinking (all current Opus, Sonnet, Fable, and Haiku 4.5+ models). The chosen effort is sent as output_config.effort on the wire request.

Develop

bun test        # 81 tests, all offline
bun run build
bun run smoke   # one live request, costs a few tokens
FileWhat it does
src/index.tsPlugin entry: config schema, provider registration, settings, disposal.
src/adapter.tsLlmAdapter: headers, fetch, SSE consumption, error mapping, model discovery.
src/serialize.tsHarness Message[] to Anthropic wire request.
src/translate.tsAnthropic SSE to harness StreamChunks.
src/sse.tsSSE framing parser.
src/auth.tsCredential read, refresh, write-back, backoff, cross-process lock.
src/model-config.tsBeta headers, effort support, catalog fallback.

Unit tests inject fetchImpl, so they run offline. The smoke script is the only live path.

Limitations

  • Text only. Image and file content blocks return UNSUPPORTED_CONTENT.
  • One credentials file per provider route. Multi-account is not wired.
  • If the models endpoint is unreachable, the plugin falls back to a static catalog of the current Claude 5 lineup.

References

  • deepseek-ai/deepseek-harness: dsh-llm adapter contract, dsh-settings, dsh-timeout.
  • griffinmartin/opencode-claude-auth: upstream reference for the OAuth surface and refresh strategy.
  • Claude model docs: current lineup and model ids.

License

MIT