ningbainb/deepseek-harness-desktop--packages-dsh-tool-describe-image491

@linxin666/dsh-tool-describe-image

Model-facing describe_image tool for the dsh web GUI: gives a text-only model image understanding by asking a vision-language model at an OpenAI-compatible endpoint to describe one image (local path, http(s) URL, or attachment reference). Hot-pluggable — mounted via ~/.dsh/cordis.patch.yml + a profile node_modules symlink, no dsh source changes.

包名
@linxin666/dsh-tool-describe-image
版本
0.1.15
许可证
BSD-3-Clause
最近更新
2026年9月12日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:ningbainb/deepseek-harness-desktop#f30137e7d72942d2cd851a0fa0713f596ed06ad6&path:packages/dsh-tool-describe-image

Configuration

KeyDefaultMeaning
baseURL— (required)OpenAI-compatible endpoint root (e.g. https://dashscope.aliyuncs.com/compatible-mode/v1); trailing slashes stripped
apiStylechat-completionsProtocol style: chat-completions appends /chat/completions; responses appends /responses (OpenAI Responses API input / max_output_tokens / output_text shapes)
model— (required)Vision model id
apiKeyInline key for local debugging; prefer !!js process.env.VISION_API_KEY over a hardcoded secret
apiKeyEnvVISION_API_KEYCredential reference (environment-variable name); empty string disables reference resolution
defaultPromptsee sourceThe instruction used when a call omits its prompt — tune it to your workload (OCR, UI review, translation…)
maxBytes10485760Image byte bound (local files and downloads alike)
maxOutputTokens1024Output-token cap: max_tokens under chat-completions, max_output_tokens under responses
timeoutMs60000Per-call vision request timeout

Configured mount example (profile cordis.patch.yml / composition file):

- id: describe-image
  name: '@linxin666/dsh-tool-describe-image'
  config:
    baseURL: https://dashscope.aliyuncs.com/compatible-mode/v1
    model: qwen-vl-max
    apiKey: !!js process.env.VISION_API_KEY

Endpoints exposing only the Responses API set apiStyle: responses:

- id: describe-image
  name: '@linxin666/dsh-tool-describe-image'
  config:
    baseURL: https://api.openai.com/v1
    apiStyle: responses
    model: gpt-4o-mini
    apiKey: !!js process.env.VISION_API_KEY

Usage

Custom instructions

The tool takes a prompt argument: tell the vision model exactly what you need — "transcribe all text", "extract the table as CSV", "diagnose the UI layout problems", "translate the text into Chinese". A targeted instruction beats a generic description; the tool description steers the text model toward passing one. Calls without a prompt fall back to defaultPrompt.

Sending images directly

Text-only models have no image entry in the DSH input box, so drag or paste an image into the composer: at send time the plugin rewrites the image-bearing send into a describe-image reference (![图片](https://github.com/ningbainb/deepseek-harness-desktop/blob/f30137e7d72942d2cd851a0fa0713f596ed06ad6/packages/dsh-tool-describe-image/describe-image/raw/sha256:%E2%80%A6)) instead of an image block the model cannot read — the image renders in the conversation and the model analyzes it through the tool. The bytes travel to the host /describe-image/attach route (validated for size and magic bytes, persisted in the attachment store); only the reference text enters the session log.