launchmaniac/dsh-media-tools0

@launchmaniac/dsh-media-tools

将 OpenRouter 的图像、视频和语音生成功能作为 DSH 工具接入的插件包。

AI 分析

核心用途是让 DSH 的 Agent 具备调用 OpenRouter 生成多媒体内容(图、视频、音频)的能力。适合需要在对话中直接生成多媒体资源的创作类任务。可在设置中动态配置模型。

套件
@launchmaniac/dsh-media-tools
版本
0.2.1
最近更新
2026年8月24日

安裝

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:launchmaniac/dsh-media-tools

Configuration

Three places, in increasing precedence.

1. Per call, in the conversation. generate_image takes an optional model, so you can say "generate a logo with recraft/recraft-v4-vector" and it applies to that call only.

2. $DSH_HOME/settings.yaml under a media-tools key. This is the live one — a change takes effect on the next tool call, with no restart:

media-tools:
  imageModel: black-forest-labs/flux.2-pro

The Settings dialog's Open configuration file button reaches this file. The bundle registers its schema through installSettingsSection, so the values are validated on write. It does not yet appear as a card in Settings → Plugins: that needs a browser half declared with dsh.client, and the build preset for client bundles is not published outside the harness monorepo.

3. Your profile's cordis.patch.yml — the deployment default everything else layers over:

- id: media-tools
  name: "@launchmaniac/dsh-media-tools"
  config:
    imageModel: bytedance-seed/seedream-4.5
    videoModel: bytedance/seedance-2.5
    # A voice-requiring model must be given one, or every call 400s.
    speechModel: google/gemini-3.1-flash-tts-preview
    speechVoice: Kore
    outputDir: ./media
    videoTimeoutMs: 900000
KeyDefaultMeaning
apiKeyEnvOPENROUTER_API_KEYEnvironment variable holding the key
baseURLhttps://openrouter.ai/api/v1API root
attributionTitledeepseek-harnessSent as X-Title
attributionUrlSent as HTTP-Referer
imageModelbytedance-seed/seedream-4.5Used by generate_image
videoModelbytedance/seedance-2.5Used by generate_video
speechModelfish-audio/s2.1-proUsed by generate_speech
speechVoiceDefault voice, overridable per call
transcribeModelopenai/whisper-1Used by transcribe_audio; deepgram/nova-3 and openai/gpt-4o-transcribe also work
maxTranscribeBytes26214400Largest audio file sent for transcription
outputDir./mediaWhere artifacts are written. Relative paths resolve against the session's working directory, so each workspace keeps its own; an absolute path pools everything in one place
revealImagesfalseOpen each generated image in the desktop viewer
requestTimeoutMs120000Per-HTTP-request budget
videoPollIntervalMs5000Delay between video job polls
videoTimeoutMs900000Total wait for one video job

A patch replaces a row's entire config value rather than merging keys, so an override must restate every key it needs.