dsh-tool-media
Verifieddsh-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.