Introduction¶
In the plugin system of DeepSeek Harness, deciding which backend a session uses and at what priority is usually left to the provider’s own configuration. When you only want to temporarily switch the current session to a more specific path—for example, forwarding a certain Responses request to a trusted Codex Responses target and adding service_tier: "priority"—modifying the global configuration is often overkill and impacts other sessions in the profile.
delthin/dsh-fast solves this: it makes the tier switching session-level and provides a model selector with reasoning effort adjustment. Below is an introduction to what this plugin can do, how to install it, and what you need to confirm yourself.
What is This¶
dsh-fast is maintained by Delthin and falls under model inference. It provides two things for DeepSeek Harness (DSH):
- “Standard / Fast” mode switching for the current session, which can be read/written per session, without needing to restart or change global configuration.
- Reasoning effort slider in the model selector.
When the session is in Fast mode, the plugin sends requests from a clearly configured provider to a complete Responses URL to be forwarded to a specified Codex Responses URL, setting service_tier: "priority".
Please note the positioning: This is a targeted Responses-to-Codex forwarding, not a generic vendor accelerator. Standard vendors, Chat Completions, and custom protocols cannot be considered supported based on this; whether the vendor actually provides priority, charges, or is faster is decided by the target service.
Compatibility Scope¶
- The host minimum version is DSH
0.2.1-rc.5(>=0.2.1-rc.5, including subsequent pre-release versions). The Web client requires the built-in model selection service@deepseek-ai/dsh-client-ui-model-selection. The Desktop client is not verified. - Currently only supports single provider / single Responses URL → single Codex Responses URL.
- Requires the original adapter to initiate requests via a compatible Undici 7 global dispatcher. Bypassing the global dispatcher HTTP clients, independent dispatchers, and Undici 8 request chains are outside the scope of this version’s verification.
- Fast only affects subsequent requests in the current session and does not inherit to ordinary sub-sessions.
Core Capabilities¶
-
Session-level tier. The tier is saved in DSH’s
dsh_fastdomain and controls the current session; switching the state itself does not prove the request hit the target or received priority processing. -
Model selector. Provides a model UI with reasoning effort adjustment, with the entry acting on the configured provider.
-
Fast forwarding. Requests that satisfy an exact match on
sourceURLare forwarded. Original authentication and business headers generated by the adapter are preserved and converted into the Codex outer payload. Requests without a matchingsourceURLwill still pass through directly. -
Command control. Provides four commands:
/fast on,/fast off,/fast toggle,/fast status. -
Optional role linkage. Can read
runs.jsonsnapshots from existing role plugins, fixing the tier at startup, but does not install or automatically sync role plugins.
Installation and Enablement¶
Environment requirements: DSH 0.2.1-rc.5 and above, Node.js 22.19.0 or newer. The plugin has fixed dependencies undici@7.30.1 and zod@4.6.7; the host peer dependencies are @deepseek-ai/cordis@>=4.0.5, @deepseek-ai/schemastery@>=3.18.5.
The npm package name is @delthin/dsh-fast. The unscoped dsh-fast belongs to another author, not this project, so do not write it incorrectly during installation.
Install using a fixed npm version:
dsh plugin --profile web add @delthin/dsh-fast@0.1.2
You can also use the GitHub Release installation package for the same version:
dsh plugin --profile web add https://github.com/Delthin/dsh-fast/releases/download/v0.1.2/delthin-dsh-fast-0.1.2.tgz
Replace web in the command with your own profile name. You can also install using the URL above in the DSH plugin page.
After installation, check if the bundle and fast entry are enabled in the plugin page. If DSH prompts for a restart, restart that profile and refresh the Web page.
No role plugin or Fast routing is needed to load on first install. Default has no provider, source URL, target URL, local path: standard requests still go through the original adapter, the Fast entry in the model selector is disabled, and /fast on will explicitly prompt that it is not yet configured. Filling in partial routing fields is also treated as not configured.
Configuring Fast Routing¶
In the target profile’s cordis.patch.yml, add overrides for the installed fast entry; or operate via the DSH plugin interface that supports modifying entry configs:
- id: fast
config:
provider: my-provider
sourceURL: https://provider.example/v1/responses
targetURL: https://trusted-target.example/backend-api/codex/responses
The domain in the example above cannot be used directly; you must replace it with your own confirmed address that supports this route.
Meanings of each field:
| Field | Meaning |
|---|---|
provider |
The real ID of the existing vendor in DSH, not the display name. The plugin will not create a vendor or configure credentials. |
sourceURL |
The complete Responses URL actually POSTed by the original adapter, including path and query parameters (if any). Not the API base URL. Only requests matching this address exactly will be forwarded. |
targetURL |
The admin-specified and trusted Codex Responses target URL. Must be HTTP(S), cannot contain username, password, or fragment; an invalid URL will cause the plugin to fail to load. |
roleRunsPath |
Optional. Path to the runs.json snapshot file of an existing role plugin. Default is an empty string, does not read role files. Relative paths are resolved based on the DSH host process working directory. |
After saving the configuration and DSH reloading, open the model selector, switch Fast on the configured provider, or use the commands directly:
/fast on
/fast off
/fast toggle
/fast status
A few common pitfalls:
- When in Fast mode, requests to other providers will get explicit errors; switch back to standard mode first.
lastDeliveryin the status interface is just a record of forwarding attempts within the current process, it does not mean the target has accepted the request or fulfilled the priority.- If you remove the route configuration later, existing Fast sessions will explicitly report “not configured” and will not silently downgrade. In this case, use
/fast offor the model selector to switch back to standard mode.
Role Plugin Linkage (Optional)¶
You can use session-level tiers independently without installing a role plugin. When linkage with existing role plugins is needed, explicitly set roleRunsPath:
- id: fast
config:
provider: my-provider
sourceURL: https://provider.example/v1/responses
targetURL: https://trusted-target.example/backend-api/codex/responses
roleRunsPath: ./agent-roles/runs.json
Also, manually align fastProviders to the same provider ID in the role plugin’s own config, e.g., fastProviders: [my-provider]. This plugin does not install, modify, or automatically sync role plugins.
Role session tier is based on selection.fast === true in the startup snapshot; once fixed, it cannot be modified via /fast or the model selector. If an old snapshot lacks selection.fast, it stays fixed to standard mode; it cannot be reverse-engineered from the current value of the role template. Role setting changes only apply to newly started members. If the file doesn’t exist or the session is not in the snapshot, it is treated as a normal session; if the snapshot file is corrupted or has a format error, an error is reported and existing snapshot rules are not ignored.
Authentication and Security¶
Fast preserves original authentication and business headers generated by the adapter, and only initiates Fast upstream requests to the explicitly configured targetURL. It does not select the target from request headers or body, nor does it automatically follow target HTTP redirects.
This means the request content will be sent to that target, and authentication credentials will be forwarded along with it. Therefore, the target must be trusted and have permission to receive the original vendor’s credentials; production environments should use HTTPS. In other words, whatever targetURL you fill in, your credentials go there; this needs to be confirmed clearly before configuring.
When configured fully, the plugin uses a local loopback forwarding port with a random token, and cleans up internal control headers and connection-level headers. It supports the precise /bili/<sourceURL> form if the original link goes through a local billion forwarder: first preserve its handling, then convert the Codex outer payload. If using a third-party forwarder, you still need to audit its authentication and logging policies yourself.
The plugin works via existing DSH capabilities like llm/stream, storageDomain, sessionController, connection, and commands, does not add a DSH Service, nor does it replace the global fetch or the original adapter. Forward receipts are only stored in memory, with a maximum of 1000 sessions, excluding prompts, request headers, or credentials.
Building and Testing from Source¶
After preparing dependencies from the source repo, execute:
npm install
npm run check
npm test
npm pack
prepack runs syntax checks, JSON/metadata checks, and snapshot tests. Tests only use synthetic data, a local HTTP service, and example URLs that do not go online, and do not call models, nor do they call paid models. The package’s files whitelist only contains runtime files, locale, icons, README, and LICENSE; test/check scripts, screenshot indexes, screenshots, dependency directories, and local artifacts stay in the source repo, not in the package.
Who is it for, and Prerequisites¶
Suitable for scenarios where you have a clearly trusted Codex Responses target, want a certain session to run on this path with priority, but don’t want to change the global provider configuration or affect other sessions or sub-sessions.
Please confirm three things before use:
- The target actually supports this Responses-to-Codex route and has permission to receive credentials generated by the original vendor. The example domains cannot be used directly.
- The plugin runs with the permissions of the current DSH process; check the source code and license before installing and configuring. This plugin is under the MIT License, copyright Delthin.
- This plugin has only verified the Undici 7 global dispatcher request chain and has not done real end-to-end verification for all vendors; Fast does not guarantee the target service will fulfill priority or be faster.
Summary¶
dsh-fast does session-level tiers: a configured provider, an exact matching Responses URL, forwarded to a trusted Codex Responses URL with service_tier: "priority"; by default it does not touch standard requests, nor does it silently downgrade. Directory page and source code below.
- Directory Page: https://www.skillhub.cn/plugins/Delthin/dsh-fast
- GitHub: https://github.com/Delthin/dsh-fast