Foreword

When running conversation and tool loops in DeepSeek Harness (DSH), models typically come from built-in or self-built providers. If you already hold a Qoder subscription and want to use the same model service as Qoder CLI without maintaining a separate forwarding layer, you need a way to mount Qoder’s PAT directly into DSH’s plugin system.

The community plugin dsh-qoder-plugin (maintainer: road-kid, category: model inference) does exactly this: it connects to Qoder using a personal access token, with the China and international editions configured independently. The conversation loop, compression, and permissions remain handled by DSH itself.

What Is This

dsh-qoder-plugin is a DSH community plugin with package name dsh-qoder-plugin, profile line id qoder-plugin, data directory <profile>/.dsh-qoder-plugin/, HTTP route prefix /plugins/dsh-qoder-plugin/*, and CLI command dsh-qoder-plugin.

The same plugin serves both Qoder product lines without mixing them:

Variant Provider ID PAT Generation Site
China edition qoder qoder.com.cn
International edition qoder-global qoder.com

Streaming output, reasoning content, and tool calls go through the plugin’s built-in Qoder transport layer. Variants without a configured PAT will not show the corresponding model group; the other edition remains unaffected.

Repository: https://github.com/road-kid/dsh-qoder-plugin
Plugin directory page: https://www.skillhub.cn/plugins/road-kid/dsh-qoder-plugin

Core Features

Summarized below according to the capabilities documented in the README; nothing beyond the documentation scope is included.

Credentials and Dual Regions

  • Paste the PAT into the settings card and click “Save”; the plugin validates the variant region in real time first, only persists upon success, the model group appears immediately, and no DSH restart is required.
  • Supports “Change PAT” and “Clear PAT”; failed validation is not persisted, with network errors and invalid tokens shown separately.
  • The China and international editions each have their own credential files, routes, and saved directories; only configure the edition you need.

Model Catalog and Toggles

  • The model list has three levels of sources: live fetch → the catalog last successfully saved for this account → the plugin’s built-in fallback list; the card indicates the current source and supports manual “Refresh Model List”.
  • Lists all models for the variant in Qoder’s official order; each can be toggled on or off individually; disabled models are hidden from the DSH model selector.
  • Each row has a draggable context window slider that snaps to Qoder’s declared tiers (e.g., 200K / 400K / 1M) upon release; changes are staged first and committed in bulk by “Save Settings”. A price multiplier x<priceFactor> can be shown next to the model name (display only; does not affect requests).

Daily Check-in and Quota

  • 100 Credits can be claimed daily; the claiming window is 10:00 → 10:00 the next day (UTC+8); automatic check-in is disabled by default and can be enabled in “Advanced Settings”; the check-in time is shared between the China and international editions.
  • The account card provides remaining credits, check-in status, and “One-click Check-in”. The international edition’s check-in requires the Qoder desktop client to be installed locally (device risk-control identity); the China edition has no such requirement.
  • When a Qoder model is selected, the input box toolbar shows a Qoder · Remaining Quota reading; clicking it expands a read-only quota panel (plan, remaining/total, expiry time, etc.). The reading can be collapsed via the “Show credits in the chat box” toggle.

Environment Variable Fallback

When no credential file has been saved, the plugin can read:

Variant Environment Variable
qoder (china) QODER_CN_PERSONAL_ACCESS_TOKEN
qoder-global QODER_PERSONAL_ACCESS_TOKEN

File takes precedence over environment variables.

Installation and Activation

Prerequisites (based on package.json and the README):

  • DSH core >=0.1.7-rc.1 <0.3.0 (the peerDependencies range; on 0.1.5 / 0.1.6 the host capability is usable but the settings card will not appear).
  • Node.js ^22.19.0 || >=24.0.0.
  • A Qoder account and at least one PAT.

Install from GitHub (replace web according to your profile):

dsh plugin --profile web add github:road-kid/dsh-qoder-plugin

Alternatively, install from npm:

dsh plugin --profile web add dsh-qoder-plugin

After installation, go to the DSH “Plugins” page, enter the package details under the “Installed” group; since DSH 0.1.7, the settings body is inlined below the package description rather than in a separate entry under the old “Settings”.

The plugin runs with the permissions of the current DSH process; before installing, please review the repository source code and MIT license to confirm it meets your environment and compliance requirements.

Typical Usage

1. Generate a PAT

2. Save on the card

Open the plugin’s configuration interface on the “Plugins” page, paste the PAT into the password field, and click “Save”. Both editions can be filled separately; the two sets of providers can coexist.

3. Select a model and start a session

Select an enabled Qoder model in the DSH model selector to start a conversation; if needed, adjust toggles and the context window in the “Models” card and save first.

4. Optional: environment variables

When you cannot fill in credentials in the UI, set the environment variables in the table above, provided the credential file for that variant does not already exist.

Your data and credentials are concentrated in <profile>/.dsh-qoder-plugin/; the data directory can be overridden with DSH_QODER_DATA_DIR. See the “Data and Privacy” section of the repository README for details.

Use Cases and Notes

Who It’s For

  • Users who already develop or use DSH daily, hold a Qoder subscription, and want to connect to the Qoder model service directly via PAT.
  • Scenarios that require separate credential and model catalog management for the China and international editions while retaining DSH-side conversation and tool permission control.

Points to Note

  • The DSH version must fall within the peer range declared in the README; the plugin configuration slot is available only from 0.1.7 onward.
  • The international edition’s daily check-in depends on the device identity generated by the local Qoder client; when it is not installed, the plugin will prompt and will not misreport as “no activity today”.
  • It can coexist with other Qoder-based plugins (package name, line id, routes, and data directory are independent); the same plugin line id should not be installed twice within the same profile.
  • Users upgrading from the old package name dsh-connect-qoder-x need to reinstall according to the README; since 0.6.0 the profile line id is qoder-plugin, and providers and selected models are generally unaffected provided they are preserved in place in the data directory.

Conclusion

dsh-qoder-plugin integrates Qoder’s dual-region subscription into the DSH plugin ecosystem via PAT: validation before persistence, model catalog fallback strategy, per-model toggles and context windows, check-in and read-only quota display, all completed in the three settings cards on the “Plugins” page. For implementation details and update history, see the GitHub repository and CHANGELOG; the SkillHub plugin directory provides the catalog listing and classification (model inference).