launchmaniac/dsh-media-tools0

@launchmaniac/dsh-media-tools

OpenRouter image, video, and speech generation as dsh tools, shipped as an out-of-tree profile bundle

包名
@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.