Skip to content

Installation

Install with dsh plugin

The package is a DeepSeek Harness bundle: its manifest declares dsh.bundle, so dsh plugin installs it and activates its cordis.patch.yml layer automatically. From any directory, add it to a profile:

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

dsh plugin forwards to pnpm in the profile directory, then appends the package to dsh.profile.bundles. The bundle set is read at profile start, so restart the profile after installing:

dsh --profile <name>

Verify the layer before booting, or remove the bundle later:

dsh --profile <name> --dump-config                       # shows a "@phillarmonic/dsh-llm-kimi" layer
dsh plugin --profile <name> remove @phillarmonic/dsh-llm-kimi

The bundle's patch layer registers the plugin next to the llm capability for you, so no cordis.yml edit is needed. Every config field is optional and the defaults target the public Kimi Code endpoint; see Configuration to tune them.

Attachment service is optional at runtime

Image support uses @deepseek-ai/dsh-attachment, the durable image store. Text-only requests never touch it. A request that carries images fails loudly when the service is not mounted. See Image input.

Requirements

  • Node ^22.19 || >=24
  • ESM project ("type": "module")
  • A Kimi Code API key from the Kimi console at api.kimi.com

Provide the API key

Open Settings → Plugins → Kimi Code and type the key into the API key field, then Save. The field shows whether a key is already stored under the configured reference; leaving it blank keeps whatever is stored rather than clearing it.

The key is written through the harness credentials service, addressed by the API key reference shown beneath it (KIMI_CODE_API_KEY unless you change it). The literal never enters the settings file, never rides a response, and is never echoed back into the field.

Alternatively, export the key in the launching environment:

export KIMI_CODE_API_KEY=sk-...

A key exported by the launching environment takes precedence over the store, which is why the field renders disabled and the card reports it read-only — clear the variable in the launching shell to store a different value.

The plugin resolves the key per request: the credentials service wins when present, otherwise the environment variable named by apiKeyEnv is the whole credential plane.

Verify

Select provider kimi-code with model k3 and run any task. The adapter streams the response and reports usage before the finish chunk.

Composing cordis.yml directly

Building your own composition instead of using a profile? See manual installation for the raw pnpm add, peer-dependency, and cordis.yml registration steps.