NOirBRight/dsh-llm-commandcode ↗★ 2
dsh-llm-commandcode
Command Code Provider API LLM plugin for DeepSeek Harness
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:NOirBRight/dsh-llm-commandcode说明文档
阅读完整 README ↗Web configuration
Install dsh-llm-providers-ui alongside this plugin, then open Settings → LLM Providers → Command Code. This plugin contributes the keyed card; the owner supplies the page, navigation, and shared order store. Without the owner, the Host route still works but the Web page and card are absent, with a console diagnostic. The card stores the API key through the DSH credentials service under COMMANDCODE_API_KEY (set apiKeyEnv to CMD_API_KEY if needed). The Host never returns the stored literal.
The only visible Provider API URL is the fixed, read-only official https://api.commandcode.ai/provider/v1. Discovery is a public GET and carries neither an endpoint nor a key. Quota uses the same official origin on the Host; the custom browser RPC never carries the secret.
Zero data retention is a request-level switch. When checked, chat requests add x-cmd-zdr: 1. No model requires it; an unavailable ZDR upstream can return HTTP 422.

The catalog starts collapsed. Fetch models opens an overlay grouped by Go / Pro / Provider+ access, then adds the selection. Each row can expand for context, max output, and official effort options; drag reorders, trash removes. The capability overlay is sourced from the live Provider API plus the official CLI model table (command-code@1.53.0 for DeepSeek V4.1 Flash). Ids that table does not describe are filled from models.dev same-id rows, preferring OpenRouter; an id neither source describes stays unknown rather than guessed. Saved defaults: GLM-5.3 Flash and all DeepSeek models use max; Fable 5.1 uses high; the new Qwen, Hy4, and Gemini entries use their highest listed level; Muse Spark 1.3 uses the forward max level; GPT follows the local Codex policy (Sol high, Terra xhigh, Luna max, other GPT prefer xhigh with a valid-level fallback). A saved valid override wins. Models without selectable efforts, such as LongCat 2.0, keep provider-native reasoning without a fabricated selector.

The default catalog is empty. Press Fetch models before selecting a model; the plugin does not invent startup capacities. contextWindowOverride wins over the live context_length; the default context is only a fallback for hand-added rows.
Cordis config (the card writes the same fields):
- id: llm-commandcode
name: dsh-llm-commandcode
config:
apiKeyEnv: COMMANDCODE_API_KEY
usageEnabled: true
zeroDataRetention: false