DeepSeek Harness Plugin Hub

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

探索

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

社区

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

相关链接

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

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

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

dsh-commandcode-provider

Commandcode Provider

适用于 DeepSeek Harness (dsh) 的 Command Code provider 插件——支持所有 Command Code 套餐,包括 $1 Go plan;通过 /alpha/generate 使用 Studio authentication API key,而非 Provider API

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

npx -y @deepseek-ai/dsh plugin --profile web add dsh-commandcode-provider@0.1.3
README兼容性版本

兼容性与来源证明

Commandcode Provider 以 dsh-commandcode-provider 发布,当前版本为 0.1.3。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

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

版本

0.1.3stable
2026/8/14
0.1.2stable
2026/8/14
0.1.1stable
2026/8/14
最新版
0.1.3
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
399.3 kB
文件数
56
Surface
any
许可证
MIT
发布源
npm
GitHub
★ 0
周下载
167
安全扫描
✓ v0.1.3 扫描通过
查看源码 ↗项目主页 ↗
README Badge

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

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

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

认领这个 Plugin →
报告问题

README

dsh-commandcode-provider

A custom LLM provider plugin for DeepSeek Harness (dsh) that connects dsh to Command Code — a faithful port of pi-commandcode-provider onto dsh's LLM seam.

Works with every Command Code plan, including the $1/month Go plan. Even the Go plan — the only one without Provider API access — gives you an API key in the Studio; that key authenticates the CLI/agent login. This plugin uses that same key against Command Code's own /alpha/generate endpoint, not the traditional Provider API protocol, so it works even when a plan has no Provider API access.

Disclaimer: This is an unofficial, community-maintained integration. It is not affiliated with, endorsed by, or supported by Command Code. You need your own Command Code account. Command Code's terms, availability, and pricing apply.

Quick Start

小白友好:安装只要一条命令,插件会自动挂载,不用改任何配置文件。

1. Install

dsh plugin --profile <name> add dsh-commandcode-provider

The package declares dsh.bundle, so dsh plugin add installs it AND automatically joins it to the profile's bundle layers — the shipped cordis.patch.yml mounts the provider row for you.

Do not also add a manual cordis.patch.yml row for this plugin — the bundle patch already mounts it; a second row would double-register the provider.

2. Restart dsh

The provider then appears in the web UI automatically.

3. Get your API key

Even on the Go plan, Command Code gives you an API key used for authentication:

  1. Open commandcode.ai and sign in.
  2. Go to Studio → API Keys (in the sidebar).
  3. Click Generate API key and copy it.

This key is an authentication key for using Command Code — it is not a "Provider API" key. The plugin speaks Command Code's own /alpha/generate protocol with it, so no Provider API access is required, and the Go plan works.

4. Configure the API key (either way)

Option A — Web UI (recommended): Open Settings → Models → Command Code → Edit in dsh, paste the key into the single API key field, and click Apply. No YAML, no browser OAuth, no API address to configure — the default endpoint https://api.commandcode.ai is used automatically.

Option B — Command: In a dsh chat, run:

/commandcode-setkey

and paste the key when prompted.

That's it — pick a Command Code model from the model picker and start chatting.

How it works

This plugin is not a traditional API-protocol provider:

  • It talks to Command Code's own streaming endpoint https://api.commandcode.ai/alpha/generate with the same wire protocol the official CLI uses (x-command-code-version, x-cli-environment, x-project-slug, … headers).
  • The API key from Studio is an authentication credential for that endpoint — the same one cmd login writes to ~/.commandcode/auth.json.
  • Because it rides the CLI protocol instead of the Provider API, it works on every plan, including Go, and even models the Provider API cannot serve.
  • Model discovery still uses the public Provider API catalog endpoint when reachable, with an offline cache at <dsh home>/commandcode/commandcode-models.json; if that endpoint is unreachable (e.g. a Go plan), the last cached catalog keeps serving.

Functionality

Everything the pi plugin does, on the dsh host plane:

  • Provider registration — registers the commandcode provider route on ctx.llm with the same /alpha/generate streaming protocol, retry/timeout/abort semantics, and message/tool conversion as the pi plugin (paired tool-call filtering, data-URL image forwarding, legacy schema normalization).

  • Model discovery with offline cache — fetches the catalog from https://api.commandcode.ai/provider/v1/models and caches it locally (versioned, atomic writes); offline, the last cached catalog keeps serving.

  • Reasoning metadata — models with known Command Code effort support advertise their thinking levels through the LLM seam; a selected level is sent as params.reasoning_effort.

  • Image input — models marked image in the catalog accept image blocks (resolved through dsh's durable attachment service); text-only models reject images before any network request.

  • Authentication — credentials resolve per request through, in order:

    1. the Harness credential seam (ctx.credentials, what the web Models page writes),
    2. the trusted launch environment (COMMANDCODE_API_KEY),
    3. existing Command Code auth files: ~/.commandcode/auth.json, ~/.pi/agent/auth.json, ~/.omp/agent/auth.json.

    No browser OAuth flow — the key is entered in the web UI (Settings → Models → Command Code → Edit) or via /commandcode-setkey.

  • Commands — /commandcode-refresh (re-fetch + re-register the catalog), /commandcode-status (redacted diagnostics), /commandcode-setkey (store an API key).

  • Pricing display — the static per-model cost table from the pi plugin (USD per million tokens).

  • Error hygiene — context-overflow wording is normalized to CONTEXT_WINDOW_EXCEEDED, and every error/diagnostic text is redacted.

Configuration

The commandcode-provider settings section accepts (all optional):

FieldDefaultMeaning
apiKeyEnvCOMMANDCODE_API_KEYCredential reference resolved per request
displayNameCommand CodeName shown by selectors
baseURLCOMMANDCODE_API_BASE env → https://api.commandcode.aiAPI base for /alpha/generate (usually leave at default)
modelsUrlCOMMANDCODE_MODELS_URL env → Provider APIModel discovery endpoint
modelsTimeoutMsCOMMANDCODE_MODELS_TIMEOUT_MS env → 10000Discovery timeout
modelsCachePathCOMMANDCODE_MODELS_CACHE env → <dsh home>/commandcode/commandcode-models.jsonCatalog cache path
models—Optional explicit catalog entries; each overrides (or adds to) the discovered model by id
defaultContextWindow262144Context capacity for models neither the catalog nor an override sizes
defaultMaxTokens32768Output capability for models neither the catalog nor an override sizes
timeoutMs—Per-attempt HTTP request timeout
streamIdleTimeoutMs300000Max idle time while one stream read is outstanding
retryPolicynormal defaultsProvider-owned model-request retry policy
# $DSH_HOME/settings.yaml
commandcode-provider:
  apiKeyEnv: COMMANDCODE_API_KEY   # credential reference the Models page writes

Changelog

0.1.2

  • Removed the browser OAuth flow (and the local callback server): no more /commandcode-login, no browser pop-up. The API key is entered directly in Settings → Models → Command Code → Edit (single API key field) or via /commandcode-setkey.
  • Models-page card for Command Code shows only the API key field; no API address to configure.

0.1.0 / 0.1.1

  • Initial port of pi-commandcode-provider: /alpha/generate streaming, model discovery + cache, reasoning efforts, image input, pricing display.

Development

npm install        # dev + test dependencies
npm run typecheck  # strict tsc against the harness seam sources
npm run build      # emit lib/ (ESM + declarations)
npm test           # vitest suite (wire protocol, discovery, cost, adapter, plugin entry)

The typecheck and vitest resolve the @deepseek-ai/* seam packages from a local D:/1codeprojects/deepseek-harness checkout via tsconfig.json paths / vitest.config.ts aliases; a published build only needs the peerDependencies a dsh host already provides.

License

MIT


中文文档: README.zh.md