Skip to content

dsh-tool-media

Verified

dsh-tool-media Β· v0.1.3 Β· MIT

Send workspace media (image/audio/video) to a multimodal model via the dots.ai chat/completions API, with automatic capability detection, large-file chunking, and text-model routing through a subagent.

Install

dsh plugin add dsh-tool-media

Confirm the layer applied with dsh --profile default --dump-config β€” see the install guide.

Source

Published to npm without a public repository. Inspect the package contents before installing.

Creators

Readme

@deepseek-ai/dsh-tool-media

Send a workspace image / audio / video to a multimodal model (dots.ai chat/completions, sent as base64) for processing. The media bytes never enter the conversation context β€” only the model's text answer is returned. When the current model is a text model, the plugin automatically routes through a subagent running a configured multimodal model; large files are split into segments automatically.

Configure

Give the plugin a config in your profile's cordis.patch.yml, listing the dots multimodal models you already set up in dsh:

- insert:
  - id: tool-media
    name: '@deepseek-ai/dsh-tool-media'
    config:
      models:
        - id: dots3-note-prev          # dots.ai model id
          label: dots note            # friendly name (used for matching)
          baseURL: https://note3-prev-api.askdiandian.com/v1
          apiKeyEnv: DOTS_AI_API_KEY  # credential ref; or a literal apiKey
          modalities: [image, audio, video]   # omit to auto-detect
      defaultModel: dots note         # preferred model when a text model is active
      maxChunkSeconds: 120            # split longer audio/video into ~this many seconds
      chunkOverlapSeconds: 5          # overlap between segments

Each entry in models is a multimodal model already configured in dsh. modalities is optional β€” when omitted, the plugin auto-detects which of image / audio / video the model supports and logs it.

Use

The model only needs to call one tool, media:

  • file_path (required): path to the media file in the workspace.
  • prompt (optional): what to ask about the media; if omitted, a thorough default analysis is produced.

Examples: media(file_path="video.mp4") or media(file_path="audio.wav", prompt="analyze speech and background audio").

Everything else β€” model routing, capability detection, chunking, and the base64 call β€” happens inside the plugin; the model does not need to know about it.