Introduction

The default custom provider configuration in DeepSeek Harness (DSH) requires manually writing a provider block, which can be cumbersome for local model servers. modelspoke is an improved alternative: it discovers servers and models and provides capability configuration that is missing from DSH defaults.

What is modelspoke

modelspoke is a local OpenAI-compatible model server discovery and layered reasoning metadata resolution plugin for DeepSeek Harness (DSH). It is maintained by americanjeff and is intended to replace DSH’s standard custom provider setup.

Core features

  • First-class support for llama-swap and Ollama: The plugin includes built-in support for llama-swap and Ollama, and can read the capability data they publish on extended OpenAI-compatible endpoints.
  • Common model presets: For servers that do not support full capability discovery (such as llama-server, vLLM, and sglang), it provides preset tables for common base models.
  • Full-featured configuration UI: It provides an easy-to-use configuration interface that covers common fields (the detailed template contract field compat still requires manual editing), and supports overriding preset and discovered capabilities.
  • Reasoning effort levels: DSH custom providers do not support configuring reasoning effort; modelspoke can discover supported levels and map custom UI settings to the levels supported by the model.
  • Image input: It can discover or specify image input capabilities, resolving the issue where multimodal functionality is unavailable in native settings.

Installation and enablement

Before using this plugin, ensure that DSH is version 0.1.7 (verified with 0.1.7-rc.1).

  1. Install pnpm:
    npm install --global pnpm
  1. Add the plugin:
    Run the appropriate command for the DSH profile you are using (web or headless):
    dsh plugin --profile web add modelspoke
    dsh plugin --profile headless add modelspoke
  1. Restart DSH:
    Restart DSH to load the plugin.

Typical usage

After starting DSH, select Plugins in the left sidebar, open the modelspoke card in the Installed list, and click + Add provider.

The configuration UI requires the following:
* Provider name
* Base URL (server address)
* Environment variable name for API key (leave blank for local unauthenticated servers)
* Default effort (optional; sets the default reasoning effort level)

After submitting, click the status dot next to the provider row; it turns green after the model list is successfully retrieved. Click the arrow on the right side of a model row to expand and edit details (context window, maximum output tokens, reasoning level mapping, nothink, image input, etc.).

Applicable scenarios and notes

  • Applicable scenarios: Users who need to manage local model servers, use llama-swap as the source of model capabilities, or require fine-grained control over reasoning effort and image input capabilities.
  • Important note: The plugin runs with the permissions of the current DSH process; it is recommended to review the source code before installing it. The model list is curated; an Agent can address a model only when the model appears in the list. Clearing a detail field releases that field back to the resolution chain.

Summary

modelspoke simplifies DSH local model configuration through automatic discovery and metadata parsing, and enhances the configurability of reasoning and image input. The source code and documentation are available on GitHub.