Preface

When configuring model routing with llm-pi-ai, the official settings page usually only allows editing contextWindow. However, the key parameter that determines routing strategy, reasoningEfforts (thinking level), is often hidden, making it impossible to properly configure model strength. The dsh-llm-capabilities plugin fills the gap left by the official UI in self-hosted gateways by providing a centralized settings panel.

Plugin Overview

This is a DSH plugin designed to automatically detect and configure model capabilities for llm-pi-ai, especially reasoningEfforts and capacities. It is maintained by bamboostrip. It replaces dsh-reasoning-efforts and handles fields that the official UI leaves non-configurable.

Core Features

The plugin provides the following capabilities:
* Automatic capability detection: Automatically detects model capabilities (reasoningEfforts + capacities) and thinking levels.
* Thinking-level management: Manages off/low/medium/high/xhigh/max levels and supports custom wire spellings.
* Strict preservation of visual settings: Strictly preserves visual (input) settings declared by the official UI; starting from version 0.2.0, it no longer modifies the input field.
* Directory-aware merging: Performs directory-aware merging with llm.models() to refine the level set.
* Safe writing: Uses expectedRevision and deep-copied arrays for safe writes to prevent accidental overwrites.
* Backward compatibility: Maintains compatibility with dsh-reasoning-efforts endpoints.

Installation and Enablement

Before installation, make sure your environment satisfies the dependency requirements: DHS >= 0.1.1-rc.2 and node >= 22.13.

Install the plugin with the following command:

dsh plugin --profile web add dsh-llm-capabilities

Typical Usage

After installation, follow these steps:

  1. Add a provider (route, baseURL, apiKeyEnv) in Settings → Models.
  2. Open Settings → Model Capabilities and select the provider you just added (detection runs automatically).
  3. For each model, toggle “Offer thinking levels” and select the desired levels (off/low/medium/high/xhigh/max).
  4. If needed, customize wire spellings via the pencil icon.
  5. Click the “Save changes” button at the bottom to write the configuration into the llm-pi-ai providers route.

Notes

  • Expose hidden settings: The official llm-pi-ai UI only allows editing contextWindow; this plugin exposes the hidden reasoningEfforts.
  • Visual settings protection: The plugin strictly preserves visual (input) settings. Since version 0.2.0, saving does not modify the input field.
  • Session handling: The plugin handles OpenCode Go session headers (x-opencode-session) for prompt-cache affinity and performs self-healing encrypted-reasoning retries when session affinity is lost.
  • Source code review: The plugin is licensed under MIT. Before installing, it is recommended to inspect the source code to ensure it complies with your security policy.

Conclusion

dsh-llm-capabilities fixes blind spots in the official UI when configuring model reasoning capabilities and provides finer-grained control. See the GitHub repository for more details.