DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Anthropic Oauth — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins

dsh-anthropic-oauth

Anthropic Oauth

将 Claude Code OAuth(Pro/Max/Team)接入 DSH — 复用 ~/.claude/.credentials.json,自动刷新,同步 ANTHROPIC_OAUTH_TOKEN,从 /v1/models 实时获取模型目录,并显示实时订阅配额面板(5h/7d 使用量 + 重置时间)— 无需硬编码

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add dsh-anthropic-oauth@0.3.1
README兼容性版本

兼容性与来源证明

Anthropic Oauth 以 dsh-anthropic-oauth 发布,当前版本为 0.3.1。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
npm
Registry 更新时间
2026/9/2

版本

0.3.1stable
2026/9/2
0.3.0stable
2026/9/2

相关插件

正在加载相关插件…

最新版
0.3.1
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
39.8 kB
文件数
6
Surface
web
许可证
MIT
发布源
npm
GitHub
★ 2
周下载
0
最近提交
2026/9/9
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 integrations-communication 分类下经过校验的插件。

Remote Web Ui@linxin666/dsh-remote-web-ui通过扫码配对访问 dsh Web GUI,共享一个官方界面:设置按钮旁的二维码可将手机和 PC 配对到同一个 Web GUI(手机采用竖屏触控适配层,PC 使用完整桌面界面),通过一次性令牌和 rIm@xmanrui/dsh-im将十一种 IM 渠道和一个公网 AI Office 接入本地 DeepSeek Harness。DSCODE@toddzheng024/dscode-bundle完整的 DeepSeek 编码代理,支持持久化 shell、Ultra 协作和自动权限审查。Acp App@deepseek-ai/dsh-acp-appdsh ACP 配置文件包:基于 dsh-base 的仅限自动化的 JSON-RPC stdio 和进程生命周期管理

README

dsh-anthropic-oauth

Bridge your existing Claude Code OAuth session (Pro / Max / Team) into DeepSeek Harness (DSH) — with zero hardcoding.

  • Reads ~/.claude/.credentials.json claudeAiOauth live (same file Claude Code writes)
  • Auto-refreshes accessToken via https://platform.claude.com/v1/oauth/token when <5 min remains
  • Syncs ANTHROPIC_OAUTH_TOKEN (+ CLAUDE_CODE_OAUTH_TOKEN alias) into ~/.dsh/.credentials.yaml — the credential seam dsh-llm-pi-ai already resolves
  • Ensures llm-pi-ai.providers.anthropic (api: anthropic-messages) exists in ~/.dsh/settings.yaml
  • Pulls the model catalog live from GET /v1/models (id, display name, context window, max output, thinking/effort capabilities) — no hardcoded model list; new Claude releases appear automatically
  • Sends the current Claude Code request identity (up-to-date OAuth beta set + claude-cli impersonation headers) with no real user identifier — cch is a zeroed placeholder
  • Billed to your subscription, not a console API key (Bearer + oauth-2025-04-20)
  • Live quota panel: shows your subscription's 5-hour and 7-day usage with a reset countdown, read from the anthropic-ratelimit-unified-* headers on a cheap max_tokens:1 probe (these headers ride only on /v1/messages, never /v1/models)

This does not embed or persist your tokens beyond the two standard DSH/Claude files.

Quota display

In the DSH web UI, the plugin's client half docks a themed quota panel in the composer's ambient readout slot (conversation.composer.dock) — non-invasive (touches no shell chrome) and theme-aware (uses --dsw-* tokens, so it adapts to light/dark):

  • 5h / 7d bars with per-window utilization (green → amber ≥70% → red ≥90%)
  • live reset countdown to the representative (usually 5-hour) window
  • Check quota button forcing a fresh probe (also refreshes after every completed Anthropic turn, with a 60s fallback poll)
  • model-aware: the panel only appears while the session's active model routes through the Anthropic provider. Switch to a non-Anthropic model (Qwen, DeepSeek, GLM, …) and it hides itself; switch back and it returns — read live from the shared model-selection directory, so it reacts immediately. If the model-selection service is unavailable, the gate is skipped (panel shown) rather than hidden forever.

The client half is authored directly in the DSH client-bundle format (window.__ModuleLoader__.load) and served verbatim — no bundler or build step. It reads two JSON endpoints the host half serves:

EndpointPurpose
GET /api/anthropic-oauth/statusBridge state + last rateLimit snapshot (folded into lastAuthState)
GET /api/anthropic-oauth/quotaLive quota (60s TTL); ?force=1 or POST bypasses the cache

The quota probe spends a negligible amount (Haiku, 1 output token) and is throttled to 60s + manual refresh.

Install

# stable — from npm (once published):
dsh plugin --profile headless add dsh-anthropic-oauth
dsh plugin --profile web add dsh-anthropic-oauth   # optional; bridge is headless but harmless in web

# bleeding edge — from GitHub:
dsh plugin --profile headless add github:TrueNix/dsh-anthropic-oauth

Prerequisites

  • Claude Code logged in: claude login or claude setup-token at least once — ~/.claude/.credentials.json must contain claudeAiOauth
  • DSH ~0.1.0-rc.6+ (has dsh-llm-pi-ai, credentials, settings, fs)

How it works

~/.claude/.credentials.json  --watch-->  dsh-anthropic-oauth Host plugin
   claudeAiOauth {accessToken, refreshToken, expiresAt}
                                         │
                               refreshIfNeeded() if expiry <5m
                               POST https://platform.claude.com/v1/oauth/token
                               {grant_type: refresh_token, client_id: 9d1c25…f5e}
                                         │
                                         ├─► ~/.claude/.credentials.json (updated expiry)
                                         └─► ~/.dsh/.credentials.yaml
                                              ANTHROPIC_OAUTH_TOKEN: sk-ant-oat01-…
                                              CLAUDE_CODE_OAUTH_TOKEN: sk-ant-oat01-…

                                          └─► GET /v1/models  (live catalog)
                                               → llm-pi-ai.providers.anthropic.models
                                                 [{id, name, contextWindow, maxTokens,
                                                   reasoning, effortLevels}, …]

~/.dsh/settings.yaml llm-pi-ai.providers.anthropic {apiKeyEnv: ANTHROPIC_OAUTH_TOKEN}
         │
         └─► pi-ai anthropicMessagesApi — Authorization: Bearer sk-ant-oat01-…
             anthropic-beta: oauth-2025-04-20,claude-code-20250219,…

The model catalog is refreshed from GET /v1/models (≤6h TTL, or on demand via POST /api/anthropic-oauth/sync); if discovery fails the provider keeps a minimal Sonnet-4.5 seed so it still resolves offline. Quota is probed from POST /v1/messages (max_tokens:1, Haiku — fractions of a cent, 60s TTL) and exposed at /api/anthropic-oauth/quota.

Set as default model

# ~/.dsh/settings.yaml
agent-default-model:
  provider: anthropic
  model: claude-sonnet-4-5

Or pick per-session in Settings → Models after a reload.

Logs & manual sync

# DSH console (bridge + quota probe):
# [anthropic-oauth] pulled N models from /v1/models
# [anthropic-oauth] refreshed, new expiry …

# Force-refresh the model catalog (also syncs quota):
curl -X POST http://127.0.0.1:3080/api/anthropic-oauth/sync

# Live quota (60s TTL; ?force=1 bypasses cache):
curl http://127.0.0.1:3080/api/anthropic-oauth/quota
curl "http://127.0.0.1:3080/api/anthropic-oauth/quota?force=1"

Troubleshooting

  • MISSING_CREDENTIAL llm-pi-ai: no credential for provider route "anthropic" — bridge hasn't synced yet; re-login with claude login.
  • 401 from Anthropic — token expired and refresh failed; claude login again.
  • Quota ok:false with a refresh error — subscription may have changed; re-login, then check /api/anthropic-oauth/quota?force=1.

Security

  • Never commits tokens — .gitignore excludes *.oat*, *.credentials.*.
  • Tokens live only in 0600 files owned by you: ~/.claude/.credentials.json and ~/.dsh/.credentials.yaml.
  • A Feb-2026 Anthropic docs note declares Pro/Max OAuth for official clients only — personal use at your own risk; use a console ANTHROPIC_API_KEY for production.

License

MIT