Preface

The llm capability seam of DeepSeek Harness provides a unified interface, but connecting third-party models (such as Kimi K3) requires an additional adaptation layer. phillarmonic/dsh-llm-kimi is a direct-fetch LlmAdapter plugin that converts Kimi Code’s chat completions (OpenAI-compatible protocol) into DSH StreamChunks. It allows switching the base URL, catalog, or key between requests without restarting.

Plugin Introduction

This plugin is maintained by phillarmonic and aims to address the need to connect Kimi K3-series models in DeepSeek Harness. It supports streaming output, image input, and reasoning-effort configuration, and is mounted directly onto DSH’s model inference routing.

Core Features

  1. Model Support: Supports Kimi K3-series models, including k3, k3-256k, kimi-for-coding, and kimi-for-coding-highspeed.
  2. Streaming: Provides an OpenAI-compatible streaming protocol.
  3. Image Input: Supports image input and includes built-in budget limits to prevent exceeding the model’s single-message size limits.
  4. Reasoning Control: Supports reasoning-effort settings (reasoningEffort).
  5. Direct-Fetch: Directly implements LlmAdapter and handles the underlying request logic.

Installation and Enablement

Install it using DeepSeek Harness’s plugin management commands. The plugin automatically registers to the llm route.

dsh plugin --profile <name> add @phillarmonic/dsh-llm-kimi
dsh --profile <name>

If directly composing cordis.yml, you can also add the dependency manually:

pnpm add @phillarmonic/dsh-llm-kimi

Configuration

Configure the plugin in cordis.yml. All fields are optional, and the default configuration points to the public Kimi Code endpoint.

plugins:
  llm: {}
  '@phillarmonic/dsh-llm-kimi':
    apiKeyEnv: KIMI_CODE_API_KEY
    reasoningEffort: low

Then export the Key in an environment variable (the Key can be obtained from the api.kimi.com console):

export KIMI_CODE_API_KEY=sk-...

Typical Usage

When using tasks or queries, select kimi-code as the provider and specify a concrete model (for example, k3). The plugin will read environment variables based on the configuration and process the requests.

Notes

  1. Fixed Sampling: Kimi enforces fixed sampling. Parameters such as temperature are not sent by default unless sendTemperature is explicitly enabled.
  2. Tool Calls: Thinking content must be included in tool calls. The plugin automatically reuses reasoning blocks as the reasoning_content field.
  3. Image Limits: The plugin performs a budget check before reading attachments. The pixel budget cap is 8294400 (default 4K), and the byte limit is 1048576. Requests exceeding the limits will be rejected.

Ecosystem Context

The DeepSeek Harness ecosystem emphasizes “everything is a plugin.” This plugin directory and GitHub repository are only a community resource index and have no affiliation or subordinate relationship with DeepSeek or High-Flyer official. If you want to develop independently or review the source code, please refer to the links below.