DSH Hub

GooDAnDReaDY/dsh-image-gen

dsh-image-gen

UIWeb UI0 GitHub stars· updated 2026-08-23

Image generation for DeepSeek Harness: a generate_image tool backed by the FAL queue API, with the picture shown inline in the conversation

Install

npx @deepseek-ai/dsh plugin --profile web add @goodandready/dsh-image-gen

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

dsh-image-gen DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/goodandready-dsh-image-gen.svg)](https://dshhub.dev/plugins/goodandready-dsh-image-gen)

Paste this into your README. The star count updates with every catalog sync.

From the README

Excerpt from GooDAnDReaDY/dsh-image-gen, cleaned of badges and images.

dsh-image-gen

Image generation for DeepSeek Harness (dsh).

The plugin gives the agent one tool, generate_image, and puts the result where a picture belongs — in the conversation. Which service actually draws it is a setting, not a rewrite: a paid API key, your own OpenAI-compatible endpoint, or a consumer subscription you are already paying for.

A generated image is:

  • shown inline in the conversation, in the plugin's own tool card;
  • saved into the session working directory (<session cwd>/generated/images/*.png);
  • returned to the model with its path, size and seed.

Renamed. This plugin used to be dsh-fal-image-gen. FAL is now one provider out of four, and the old name said otherwise. Upgrading carries your settings over by itself, and images in existing conversations keep working — see Upgrading from dsh-fal-image-gen.

Providers

providerWhat it isWhat it needs
fal (default)the FAL queue, default model fal-ai/flux-2/klein/9ba FAL API key
customany OpenAI-compatible images API — OpenAI itself, a local gateway, anything speaking that shapea base URL, a model id, usually a key
codexChatGPT's image model (gpt-image-2) on your ChatGPT subscriptionno key — a ChatGPT account connected in dsh-subscriptions
grokGrok's image model (grok-imagine-image-2.0) on your Grok subscriptionno key — a Grok account connected in dsh-subscriptions

The named sizes stay the same whichever provider runs — they are the tool's language, and the agent should not have to know who is drawing. FAL takes them as they are; an OpenAI-compatible API gets them translated into pixels (square_hd1024x1024, landscape_4_31024x768); Grok thinks in aspect ratios and gets 1:1, 2:3, 3:2. An API picky about sizes gets customSize, which is sent verbatim instead.

response_format is deliberately not sent: newer OpenAI models reject it, and the answer is accepted either way — base64 inline, or a link that gets downloaded.

Drawing on a subscription

codex and grok need no API key at all. They borrow an account that dsh-subscriptions already holds: connect ChatGPT or Grok there once, pick the provider here, and generation goes through the same subscription you use for chat.

The token never leaves the Host. The two plugins talk through a service inside the process rather than over the network — a route handing out a live subscription token would be a hole in a harness that is otherwise reachable without a password.

If dsh-subscriptions is not installed, or no account of that vendor is connected, these two providers say so instead of failing silently.

Example: OpenAI

- id: dsh-image-gen
  config:
    provider: custom
    customBaseURL: https://api.openai.com/v1
    customModel: gpt-image-1
    customKeyEnv: OPENAI_API_KEY

An empty customKeyEnv means no authorization header at all, for a local gateway that needs none.

Two delivery modes

The picture appears in the conversation either way. What differs is what the chat model receives — and that decides whether the turn survives a text-only model.

Related plugins