dsh-commandcode-provider README

The project's README from github.com/Mars-Sea/dsh-commandcode-provider. As one markdown file: README.md.

dsh-commandcode-provider

English | 简体中文

Awesome GitHub Repo stars DeepSeek Harness PRs Welcome CI License: MIT npm

Unofficial DeepSeek Harness LLM provider plugin for Command Code, ported from pi-commandcode-provider (MIT).

This is a community integration. You need your own Command Code account and API key or subscription, and Command Code's terms apply. This project is not affiliated with Command Code, Inc.

What you get

See Screenshots below for what the UI looks like.

Install

Pick the release line that matches your DeepSeek Harness version:

The latest tag now always points at the current 0.1.2-line plugin release, so a plain @latest install gets the newest stable release for dsh 0.1.2+. Users on the old 0.5.0-era Harness line must pin @0.9.1 explicitly.

Fresh pnpm 10 marketplace generations are supported directly. Do not add a separate @deepseek-ai/dsh-invariants dependency; the plugin declares it as a Host peer so the active dsh profile remains the owner of Harness packages.

Updating

Update with the same tag you installed with:

dsh plugin --profile web update @mars-sea/dsh-commandcode-provider@latest     # dsh 0.1.2-rc.1+
dsh plugin --profile web update @mars-sea/[email protected]      # older dsh (0.5.0 line, unmaintained)

Then restart the web app.

Getting an API key

The easiest path is the official CLI (Node.js 22+):

npm i -g command-code@latest
cmd login        # macOS/Linux; native Windows: cmdc login

Or skip the CLI: click Sign in to Command Code under Settings → Command Code — your browser opens the commandcode.ai authorization page (the same flow cmd login uses) and the key is stored in the local credential service when you approve. You can still create a key on the Keys settings page and paste it into Settings → Command Code, or export COMMANDCODE_API_KEY="user_...".

The sign-in flow needs the Host and your browser on the same machine (loopback callback). With a remote Host, paste the key manually; a literal composition-level apiKey, if set, still takes precedence over a signed-in credential.

Verify it works

After restart, enter your API key in Settings → Command Code and save; Settings → Models shows a Command Code card, and the model picker lists the live catalog under commandcode. Send a message with a model your plan includes.

Usage dashboard

The plugin registers a /commandcode slash command showing per-account usage:

/commandcode        (or /commandcode status)

The command's user-facing copy follows the shell's locale: explicit lang: 'en' | 'zh' in the llm-commandcode plugin config wins, otherwise LC_ALL/LANG is read, otherwise it falls back to zh. The web settings page is independent — it follows the browser's language preference on its own.

Account rotation

With several Command Code subscriptions, the plugin switches to the next account automatically when one hits its usage limit:

The equivalent YAML ($DSH_HOME/settings.yaml or composition config):

llm-commandcode:
  apiKeyEnv: COMMANDCODE_API_KEY        # first (default) account
  activeAccount: COMMANDCODE_API_KEY_2   # optional: pin the active account (`default` or an account's credential ref)
  accounts:                              # rotation order after it
    - label: Go #2
      apiKeyEnv: COMMANDCODE_API_KEY_2
    - label: Go #3
      apiKeyEnv: COMMANDCODE_API_KEY_3
  modelAccountRules:                     # optional: route models to accounts (first match wins)
    - models:                            # catalog model ids (multi-select)
        - deepseek/deepseek-v4-pro
        - deepseek/deepseek-v4-flash-vision-exp
      account: COMMANDCODE_API_KEY_2
    - models:
        - tencent/hy4-preview
      account: default
  visibleModels:                       # optional: show only these models in pickers (catalog model ids); unset shows all
    - deepseek/deepseek-v4-pro
    - tencent/hy4-preview

Configure

Settings → Command Code covers the API key, API base URL, working directory, and request/stream timeouts; once a key is saved, a live Account usage card appears at the top of the page.

The same options live in $DSH_HOME/settings.yaml (changes apply immediately, no restart):

llm-commandcode:
  apiKeyEnv: COMMANDCODE_API_KEY   # credential reference
  apiBase: https://api.commandcode.ai
  workingDir: /path/to/project     # optional
  modelsCachePath: ~/.commandcode/models-cache.json
  requestTimeoutMs: 60000          # default 60s
  streamIdleTimeoutMs: 300000      # default 300s

When your deployment's dsh shell mounts the web capability (@deepseek-ai/dsh-web + @deepseek-ai/dsh-tool-web), the model's web_search tool is served by this plugin's commandcode search provider — it calls the Command Code Provider API's /alpha/web-search endpoint with the same API key and base URL as chat. You do not configure a separate search key, endpoint, or model.

On by default. The plugin's Settings → Command Code page has a "Serve dsh web search with Command Code" toggle (webSearch, default on). When on, the plugin selects commandcode as the active search backend automatically; turn it off to hand the selection back to whichever backend was there before (a sibling search plugin such as modsearch keeps working — it is never forced back to dsh's shipped DeepSeek search). The toggle takes effect on the next search — no restart needed.

This reuses the Command Code Provider API directly (like the official CLI's built-in web_search), so it is distinct from a DeepSeek-native search backend.

Notes & limitations

Permissions & privacy

The plugin only communicates between your local dsh profile and your Command Code account: locally it touches only the credential store and the models cache (plus ~/.commandcode/auth.json as a last-resort fallback); on the network it calls only the Command Code API. No telemetry.

Disabling / uninstalling

Development

npm install
npm run typecheck   # tsc --noEmit
npm run build       # tsdown -> lib/

To try a local build in a profile:

dsh plugin --profile web add /path/to/dsh-commandcode-provider

After changing src/, re-run npm run build and restart the app.

Community & feedback

License

MIT — see LICENSE. Portions ported from pi-commandcode-provider (MIT).

Screenshots

Model picker — plan tier, deal/FREE, peak/off-peak, Image and context annotations:

Model picker with plan, deal, image and context annotations

Usage dashboard — /commandcode per-account report:

Usage dashboard

Settings page — API key, connection knobs, account rotation and the live account-usage card:

Command Code settings page with the account usage card

dsh-commandcode-provider (Mars-Sea/dsh-commandcode-provider)

Searching Database…

Что это?Это неофициальный плагин, добавляющий Command Code как провайдера LLM внутри DeepSeek Harness (dsh): dsh получает доступ к живому каталогу моделей Command Code, выбору моделей с учётом тарифа, управлению усилием рассуждения, вводу изображений, веб-поиску и поддержке нескольких аккаунтов.
Как установить его в мой профиль dsh?Установите его в любой профиль dsh командой 'dsh plugin add', выбрав линию релизов, соответствующую вашей версии dsh: обычная установка @latest для dsh 0.1.2+ или явная фиксация @0.9.1 для более старой линии Harness эпохи 0.5.0.
Нужен ли мой собственный аккаунт Command Code перед использованием?Да — нужен собственный аккаунт Command Code с API-ключом или подпиской, существующая установка dsh для размещения плагина, а также Node.js 22+, если используете официальный CLI для получения ключа.
Чего этот плагин не умеет?Stop-последовательности не поддерживаются вовсе (запросы с ними завершаются ошибкой), ввод изображений работает только с моделями, помеченными Vision, а на легаси-транспорте /alpha/generate рассуждения из предыдущих ходов не воспроизводятся в последующих.
Куда уходят мой API-ключ и данные чата?Плагин общается только между вашим локальным профилем dsh и API Command Code: локально он затрагивает хранилище учётных данных, кэш моделей и резервный ~/.commandcode/auth.json, а телеметрию не отправляет.
Как работает ротация нескольких аккаунтов?Вы добавляете несколько аккаунтов Command Code с метками и API-ключами в карточке настроек Account rotation; когда активный аккаунт упирается в лимит использования, запросы автоматически переключаются на следующий аккаунт и возвращаются на исходный, когда его окно использования сбрасывается.
Он заменяет встроенный веб-поиск dsh?Когда возможность веба в dsh смонтирована, переключатель поиска плагина (включён по умолчанию) переводит инструмент websearch на эндпоинт /alpha/web-search от Command Code с тем же API-ключом вместо штатного поискового бэкенда DeepSeek, поставляемого с dsh.
Можно управлять усилием рассуждения или отправлять изображение моделям?Модели с выбираемыми уровнями усилия рассуждения показывают их в выборе модели, а модели с поддержкой Vision принимают изображения прямо в чате; текстовые модели изображения отклоняют.
Зачем README упоминает фиксацию точной старой версии?dsh 0.5.0 и более ранние использовали другие Host/браузерные API эпохи rc, поэтому пользователям этой старой линии нужно устанавливать плагин строго версии @0.9.1 вместо @latest, которая теперь нацелена только на dsh 0.1.2+.
Creator
Mars-Sea
Size
11.1 MB
Stars
405
Age
2mo
Commits · 90 Days