Introduction

The core advantage of DeepSeek Harness (DSH) lies in its plugin architecture. When integrating external free models into a local environment, maintaining an additional proxy service or subprocess is usually required. The kilo-zen2dsh plugin uses native adapters to directly provide access to free models from Kilo Gateway and OpenCode Zen inside DSH, without requiring extra local ports or process overhead.

What It Is

kilo-zen2dsh is a DSH plugin maintained by Xyanxhu. It registers two independent native LlmAdapter implementations:
* kilo2dsh: Connects to Kilo Gateway.
* opencode2dsh: Connects to OpenCode Zen.

This plugin aims to reduce the configuration complexity when DSH users integrate free models, while also providing automatic model metadata population and automatic context limit calibration.

Core Features

  1. Native adapter operation: The plugin is integrated natively, does not spawn subprocesses, and does not occupy local ports.
  2. Dynamic model discovery: Uses Kilo’s isFree/is_free flags to dynamically discover free models, supporting kilo-auto/free and the :free suffix.
  3. Standalone Zen support: Provides a separate OpenCode Zen adapter (opencode2dsh) and supports retrieving model metadata (such as context window and output limits) from the public capability catalog (models.opencode.ai/api.json), improving availability.
  4. Model filtering mechanism: By default, it only shows models with text output and tool capabilities, making it suitable for DSH agent interaction scenarios.
  5. Stability assurance: Includes built-in startup retries, periodic refreshing, a 7-day disk cache, and health snapshot mechanisms.

Installation and Activation

Install it using the official npm package name:

dsh plugin --profile web add @huanx/kilo-zen2dsh

After installation, restart the dsh web service.

Usage

  1. Open the DSH model selector.
  2. Select a model from the kilo2dsh (Kilo) or opencode2dsh (Zen) provider group.
  3. If you want to use Kilo only, or if the Zen gateway returns an anonymous-lane 429 error, you can set zenEnabled: false in the configuration.
  4. If you need to use an authenticated gateway token, explicitly set the environment variable upstreamApiKeyEnv.

Notes

  • Keyless mechanism: Free requests to Kilo actively suppress the Authorization header during transmission, and Zen’s anonymous compatibility lane uses a Bearer public placeholder. Neither is a workaround for authentication or billing.
  • Context limit handling: The adapter merges context limit declarations from different sources and uses the smallest positive value as the limit to prevent HTTP 400 errors caused by requests that are too large.
  • Model types: Currently, only models with text output and tool capabilities are supported.
  • Environment requirements: Node.js 20 or higher is required.
  • Authentication configuration: Account tokens are not enabled by default. To use one, explicitly set upstreamApiKeyEnv or zenApiKeyEnv in the configuration.

Conclusion

This plugin solves the pain point of directly integrating free open-source model endpoints in a DSH environment. For more technical details and updates, visit the plugin catalog or view the source repository.