dsh-vision
DSH vision plugin: image recognition via Codex (GPT-5.6) with Zhipu GLM fallback, image generation via GPT Image with CogView fallback
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:HarryLi-7/dsh-vision说明文档
阅读完整 README ↗dsh-vision
DSH (DeepSeek Harness) vision plugin: gives a text-only model two tools —
describe_image (image recognition) and generate_image (image generation).
Built for personal use: engines ride what you already have (your logged-in Codex / ChatGPT account) with a free Zhipu fallback, every engine parameter is editable in the harness Settings page, and all temporary data is delete-after-use (用完即焚).
Tools
| Tool | What it does | Primary engine | Fallback |
|---|---|---|---|
describe_image | Reads a local image, returns a detailed text description; only the text enters the conversation (image bytes are never stored in the session) | Codex CLI (gpt-5.6-luna) | Zhipu glm-4.6v-flash (free) |
generate_image | Generates an image from a prompt; result is saved as a conversation attachment and rendered inline in the chat | Codex (GPT Image via codex imagegen skill) | Zhipu cogview-3-flash (free) |
Why two engines
- Codex — your own ChatGPT login, top-tier models (
gpt-5.6-lunaand friends), no extra key, works withgemini-flash-latest-style model names swapped freely. Requires the Codex CLI to be installed and logged in. - Zhipu — free tiers (
glm-4.6v-flashvision,cogview-3-flashgeneration), China-direct, works without a proxy. Needs aZHIPU_API_KEYin~/.dsh/.credentials.yaml.
The engine chain is configurable; when one engine fails, the next one is tried automatically, and the final error reports each engine's failure.
Engine registry (adding/removing models)
The plugin is built around an engine registry in lib/index.js:
const ENGINES = {
codex: { id, label, describe(bytes, cfg, prompt, signal, ctx), generate(prompt, cfg, signal, ctx) },
zhipu: { id, label, describe(...), generate(...) },
// future: openai: { ... }, gemini: { ... }, ollama: { ... }
};
- Add a model: add one entry to
ENGINES+ one config object to theengineskey of the settings schema (+ a default inDEFAULT_SETTINGS). Tool code does not change. - Remove a model: delete the entry and its settings object.
- Reorder / choose a chain: edit / arrays in Settings (or the settings file) — e.g. to use Zhipu only.