Connects Qoder subscriptions to DeepSeek Harness, supporting Global and China regions, multimodal input, and tool calls.
Install
# from npm (prebuilt)
dsh plugin --profile web add dsh-provider-qoder
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:mo-n/dsh-provider-qoder
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
English | 简体中文
dsh-provider-qoder integrates your Qoder subscription into DeepSeek Harness (DSH), supporting text and image input, streaming text, reasoning content, and tool calls across Global and China Qoder services.
The plugin handles authentication and model communication, while tool execution, workspace operations, and permission management are handled by DSH. This project is a community adapter plugin.
Features
- Configure subscription access via Qoder Personal Access Token (PAT).
- Supports both Global (
global) and China (china) services. - Discovers available models for your account, allows selecting enabled models, and displays pricing multipliers and reasoning effort options when reported by the service.
- Supports streaming responses, reasoning content, multimodality, search, tool calls, and multi-turn interactions.
- View account information, quota, and reset dates in Settings.
Installation
Prerequisites
You will need a running DSH Web environment, an active Qoder subscription, and a PAT matching the selected service region. The DSH profile running the plugin must provide a managed credentials service; when configuring via the settings page, the credential storage must also be writable.
This package's dependency ranges are DSH packages >=0.1.2-rc.1 <0.2, Cordis >=4.0.2 <5, and React ^18.2.0. The settings UI also depends on the host providing remote credential endpoints and settings slots—please use a DSH version equipped with these interfaces; the ranges above do not imply that every version has been tested.
Install from npm
Run in your terminal:
dsh plugin --profile web add dsh-provider-qoder
Configuration & Usage
1. Save Service Region and PAT
Open DSH Web, navigate to Settings → Models, locate the Qoder Credentials card at the bottom of the page, and click Edit.
| Service Region | Account Domain |
|---|---|
| Global (default) | qoder.com |
| China (CN) | qoder.com.cn |
Select the region matching your account, enter your Qoder PAT into the input box labeled API Key, and click Save.
2. Fetch and Select Models
- After saving the PAT and service region, click Edit again.
- Expand Custom Settings and click Fetch Available Models.
- Select the models you want to enable (keep at least one), then click Save.
- Select a Qoder model in the DSH model picker to start chatting.
Fetching models uses the saved PAT and service region. If you switch accounts or regions, you need to fetch models again. The initial model catalog is only a candidate reference; actual available models are subject to account query results. Model multipliers, reasoning effort options, and image-input capability are provided by Qoder and may not be available for all models.
The model picker refreshes Qoder metadata for enabled models when opened, with a five-minute cache after a successful fetch. When settings are writable, refreshed multipliers and capabilities are also synchronized to the saved catalog shown in Custom Settings, without enabling additional models. Failed refreshes retain the last known metadata.
3. View Account & Quota
Open Settings → Qoder to view account and quota details.
FAQ
The plugin fails to start, or credentials cannot be saved
Ensure you have restarted the profile where the plugin was installed, and that the profile provides the DSH managed credentials service. If prompted that the storage is not writable, a writable credential store needs to be configured on the host side. The plugin does not read PATs from environment variables.
PAT is saved, but model fetching or requests fail
Verify that the PAT is valid and matches the saved service region. If modified, save first before fetching models. The save action itself does not validate the token. If your account quota is exhausted, you will need to resolve your subscription quota first.
Models remain unavailable after switching regions
Global and China model catalogs are stored separately. Switching regions does not automatically update your PAT or refetch that region's models; after saving the matching PAT, fetch and save the models for the selected region.
Are requests automatically retried?
Model-generation retries are managed by DSH. To enable them, the running profile should include @deepseek-ai/dsh-llm-retry. The plugin reports empty responses, rate limits, server errors, timeouts, and transport errors using DSH's default retry policy; authentication, invalid requests, cancellations, quota issues, and protocol formatting errors are not retried by default. The Qoder transport may independently retry an idempotent model-catalog, subscriber-profile, or quota read once, but never retries a model-generation POST internally.
Install from Source & Development
Run in an environment with Git, Node.js, and pnpm installed. Node.js must support the --experimental-strip-types and --test-isolation=none flags used by the project's test scripts.
git clone https://github.com/mo-n/dsh-provider-qoder.git
cd dsh-provider-qoder
pnpm install --frozen-lockfile
pnpm run build
Install the built repository directory into your DSH profile. The path below is a placeholder example; replace it with the actual absolute path:
dsh plugin --profile web add /absolute/path/to/dsh-provider-qoder
After restarting the profile, follow the configuration steps above. If running the CLI within a DSH source workspace, you can use pnpm dsh from that workspace.
For development, run watch mode in the plugin directory:
pnpm run dev
Before committing changes, run:
pnpm run check
This command runs non-UI mocked tests, builds the ESM package and type declarations, checks build artifacts, and previews the package tarball without sending real Qoder model requests or publishing npm packages.
References
- pi-provider-qoder - Reference implementation for Qoder authentication, API communication, and protocol handling.
Feedback
Please report issues via GitHub Issues with the plugin and DSH versions, selected service region, reproduction steps, and sanitized error messages. Do not submit PATs, short-lived tokens, or personal account information.
This project is licensed under the MIT License.
Links
More in this category
V1ki/dsh-plugin-subscriptions★ 375
Use ChatGPT (Codex), Claude, and Grok subscriptions as DeepSeek Harness LLM providers, with Settings login, model catalogs, usage, plus image_generate, video_generate, and x_search tools.
Mars-Sea/dsh-commandcode-provider★ 298
Unofficial Command Code LLM provider: registers a `commandcode` route with a live model catalog and reasoning-effort support.
corrinehu/dsh-workbuddy-connect★ 158
Brings the models in the WorkBuddy desktop app straight into DeepSeek Harness — zero configuration in the DSH chat.
volcengine/ark-cli#ark-plan-api★ 133
Registers Ark Agent Plan, Coding Plan and postpaid model routes in the native DSH model picker.
franksong2702/dsh-codex-connect★ 113
Connect ChatGPT OAuth and OpenAI Codex models to DeepSeek Harness, with opt-in search and image tools.
cv-superding/dsh-deepseek-web-login★ 108
Adds a deepseek-web provider that uses chat.deepseek.com web models in DSH, with browser login capture, PoW request signing, SSE streaming, and prompting-based tool calls.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.