DeepSeek Harness adopts a plugin-based architecture designed to provide flexible model integration capabilities. In local development or specific environments, directly invoking an installed Claude Code CLI instead of using a remote API is a common requirement. The dsh-claude-code-local plugin addresses this need by registering local Claude Code as an LLM provider for DSH, without requiring API key configuration in Harness.
Plugin Overview¶
- Name:
dsh-claude-code-local - Owner: NGdust
- License: MIT
- Core functionality: Registers the
claude-coderoute, spawns localclaudeCLI processes in streaming JSON mode, and converts the output in real time into the Harness chat interface.
Installation and Prerequisites¶
Before installation, ensure the environment meets the following requirements:
- DeepSeek Harness version:
0.1.0-rc.7or later is required (supports web, headless, or DSH Desktop). - Local Claude Code CLI: Installed and authenticated.
Run the installation command:
dsh plugin --profile web add dsh-claude-code-local
After installation, restart the server or application to load the plugin.
Core Features¶
- Local execution: Directly invokes the local
claudeCLI, leveraging its built-in agent loop, tool calling, and permission management. - Streaming output: Obtains real-time responses using the
--output-format stream-jsonmode, supporting text increments, thinking process, and tool calls. - Credential management: Does not use DSH API keys; fully relies on local CLI credentials (such as
~/.claude,ANTHROPIC_API_KEY, OAuth, etc.). - Compatibility: Supports existing Claude Code settings, including Skills, Commands, and MCP Servers.
Configuration and Usage¶
1. Select a Model¶
In Harness’s Composer model selector, find the Claude Code (local) group. This group displays the available model list based on the local CLI’s resolution results (such as claude-opus-5, claude-sonnet-5, etc.).
2. Basic Configuration¶
The configuration file is located at $DSH_HOME/settings.yaml (default: ~/.dsh/settings.yaml). The plugin provides an llm-claude-code configuration section and supports hot reloading.
llm-claude-code:
# 可选:设置 Claude Code CLI 的可执行文件路径
# 如果 CLI 不在 PATH 中,需填写绝对路径
executable: claude
# 权限模式:auto | acceptEdits | bypassPermissions | manual | dontAsk | plan
permissionMode: auto
# 限制每个请求的内部 Agent 轮次
maxTurns: 10
# 流式空闲超时(毫秒),若 CLI 长时间无输出则终止请求
streamIdleTimeoutMs: 300000
3. Verification¶
Select any model and send a message. If configured correctly, the response will be streamed directly from the local CLI to the interface.
Limitations and Notes¶
- Platform limitations: Only macOS and Linux are supported. Windows users must use WSL.
- Stateless requests: Each request is a fresh CLI invocation and does not share context or prompt caching across requests.
- Tool and sampling controls:
- Harness tools do not run through this provider; Claude Code has its own permission and sandbox controls.
maxTokens,temperature, andstopparameters in Harness requests are ignored; sampling parameters are fully controlled by the local CLI.
- Version dependency: DSH
0.1.0-rc.7or later is required.
Summary¶
This plugin provides developers who need to use Claude Code capabilities in a local environment with a low-latency, key-independent integration method. Through configuration files, permission mode, maximum turns, and timeout duration can be flexibly controlled, making it suitable for scenarios requiring deep integration of Claude Code workflows or operation in restricted network environments.