NGdust/dsh-claude-code-local0

dsh-claude-code-local

Local Claude Code provider for DeepSeek Harness: a configurable 'claude-code' LLM route that runs your locally installed `claude` CLI and streams its output into the harness

包名
dsh-claude-code-local
版本
1.0.0
许可证
MIT
最近更新
2026年8月19日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:NGdust/dsh-claude-code-local

Configuration

Settings live in the llm-claude-code: section of $DSH_HOME/settings.yaml (default ~/.dsh/settings.yaml) and are hot-reloaded — no restart needed:

llm-claude-code:
  permissionMode: auto        # auto | acceptEdits | bypassPermissions | manual | dontAsk | plan
  maxTurns: 10                # internal agent steps per request
  streamIdleTimeoutMs: 300000 # kill the request if the CLI is silent this long (ms)

All options

KeyDefaultDescription
executableclaudePath or name of the Claude Code CLI. Set an absolute path (see which claude) if the CLI is not on the harness PATH.
model""Model passed to claude --model. Empty: use the picker selection. default: omit the flag and let the CLI pick.
permissionModeautoClaude Code permission mode. bypassPermissions is dangerous.
allowedTools[]claude --allowedTools list, e.g. ["Bash(git *)", "Read"].
disallowedTools[]claude --disallowedTools list.
toolsunsetRaw claude --tools override. "": disable Claude's built-in tools (pure text). default: restore them.
maxTurns10Max internal agent steps per request.
appendSystemPrompttrueAppend the harness system prompt to Claude Code's own.
cwdunsetWorking directory for the CLI; unset inherits the harness cwd.
noSessionPersistencetrueDon't write Claude Code session files to disk.
extraArgs[]Extra raw CLI arguments (advanced).
streamIdleTimeoutMs300000Idle watchdog between streamed events, in milliseconds.
modelscurrent lineupAdvisory catalog shown in the picker (see below).
retryPolicyharness defaultLLM retry policy.

Model catalog

The models list controls what the picker offers. The default lineup is what the installed CLI resolves today (opusclaude-opus-5, sonnetclaude-sonnet-5, haikuclaude-haiku-4-5, fableclaude-fable-5). Override it to pin or extend the list:

llm-claude-code:
  models:
    - id: claude-opus-5
      name: Claude Opus 5
      contextWindow: 200000
    - id: claude-sonnet-5
      name: Claude Sonnet 5
      contextWindow: 200000
    - id: claude-haiku-4-5
      name: Claude Haiku 4.5
      contextWindow: 200000
    - id: claude-fable-5
      name: Claude Fable 5
      contextWindow: 200000

The list is advisory: the CLI decides which models your account can actually serve, and a model that is not in the list is still served if it is selected.

Make it the default provider

New sessions default to the profile's agent-default-model (DeepSeek). To default every new session to local Claude Code:

agent-default-model:
  provider: claude-code
  model: claude-sonnet-5

Or just pick the provider per session with the composer's model selector.

Permission modes

  • auto (default): Claude Code's auto-mode classifier — safe actions run, risky ones are denied in non-interactive mode.
  • acceptEdits: file edits are auto-approved.
  • bypassPermissions: dangerous — Claude Code can do anything its tools allow (equivalent to --dangerously-skip-permissions).
  • manual / dontAsk / plan: see the Claude Code CLI docs.