huashenglian
dsh-her-eyes
一个可以让ai自动调用VLM(多模态模型)进行视觉分析的dsh插件。A dsh plugin that allows AI to automatically invoke VLMs (multimodal models) for visual analysis.
- Stars
- 4
- Language
- JavaScript
- Created
- Aug 13, 2026
- Updated
- Aug 13, 2026
Introduction
dsh-her-eyes
English | 中文
A Vision-Language-Model (VLM) analyzer plugin for DeepSeek Harness (dsh). It gives the AI an analyze_image tool backed by primary/backup OpenAI-compatible vision endpoints with automatic failover, and adds an auto-saving Settings → Vision Models (VLM) page (English/中文).
Features
analyze_imagetool registered on the global tools registry — available in every session.- Primary / backup VLM APIs — OpenAI-compatible
endpoint+apiKey+model; if the primary fails consecutively beyond the retry count, the AI automatically falls back to the backup. - Auto-saving settings page — every edit saves and takes effect immediately; no Save button. Also lets you fetch the model list from the endpoint.
- Web routes
/vlm/config,/vlm/models,/vlm/resetserved by the host half. - i18n — the settings page follows the harness UI language (English / 中文).
Requirements
dshCLI (DeepSeek Harness) with awebprofile installed. RequirespnpmonPATH(or usenpx --yes pnpm@<version>).
Install
The plugin is a bundle: it carries its own cordis.patch.yml and self-activates. Installing it is a single command — no manual patch editing in the profile.
# From a local directory
dsh plugin --profile web add ./dsh-her-eyes
# From GitHub
dsh plugin --profile web add github:huashenglian/dsh-her-eyes
# From a packed tarball (pnpm pack / npm pack)
dsh plugin --profile web add ./dsh-her-eyes-1.2.0.tgz
dsh plugin add installs the dependency and appends the bundle to dsh.profile.bundles automatically.
If
pnpmis not onPATH, run the equivalent manually:# in the profile directory (~/.dsh/profiles/web) npx --yes pnpm@11.7.0 add file:./plugins/dsh-her-eyesthen add
"dsh-her-eyes"to thedsh.profile.bundlesarray inpackage.json.
Manual placement (alternative)
- Put the package under
$DSH_HOME/profiles/web/plugins/dsh-her-eyes/. - Add
"dsh-her-eyes": "file:./plugins/dsh-her-eyes"to the profilepackage.jsondependencies. - Add
"dsh-her-eyes"to the profiledsh.profile.bundlesarray. - Run
pnpm install(ornpx --yes pnpm@11.7.0 install), then restartdsh web.
Do not add a manual - insert: - id: her-eyes row to the profile cordis.patch.yml — the bundle already inserts it. A second insert would throw duplicate loader entry id: her-eyes at boot.
Configure
All configuration lives in one JSON file: $DSH_HOME/vlm-vision.json (default ~/.dsh/vlm-vision.json).
{
"retryCount": 5,
"api": {
"primary": { "endpoint": "https://api.openai.com/v1", "apiKey": "sk-...", "model": "gpt-4o" },
"backup": { "endpoint": "", "apiKey": "", "model": "" }
}
}
endpoint— OpenAI-compatible base (e.g.https://api.openai.com/v1) or the full…/chat/completionsURL.apiKey— leave the key empty in the file; it is saved via the settings page and stored masked.retryCount— after this many consecutive failures of one API, the active API switches (primary ⇄ backup).
You can edit the file directly, or use the settings page (all edits auto-save).
How it works
The package is dual-face:
- Host half (
lib/index.js) — a cordis plugin. Registers theanalyze_imagetool on the global tools registry and the/vlm/config|models|resetroutes on the web server. Loads and persistsvlm-vision.json. - Client half (
lib/client.js) — the browser module, loaded via__ModuleLoader__because the package declaresdsh.client. Registers a Settings → Vision Models (VLM) section (list slotsettings.section, idvlm-vision, order 40) and the locale namespacesettings.her-eyes.
The bundle cordis.patch.yml inserts the her-eyes entry that activates both halves.
Coexistence with other plugins
This plugin is built to play nicely with other frontend plugins that touch the settings window:
| Resource | Value | Notes |
|---|---|---|
| Loader entry id | her-eyes | unique across the harness |
| Settings slot id | vlm-vision | the settings.section slot is a list — multiple sections coexist; only the same id would conflict |
| Locale namespace | settings.her-eyes | namespaced by plugin |
| Tool name | analyze_image | unique |
| Web routes | /vlm/* | unique path prefix |
| CSS classes | vlm-* | global styles, prefixed to avoid collisions |
The harness itself enforces uniqueness (duplicate loader ids, slot ids, tool names, or routes throw and fail loudly) — so two plugins never silently shadow each other.
Uninstall
dsh plugin --profile web remove dsh-her-eyes
This removes the dependency and the bundle entry. Your vlm-vision.json config file is left untouched.
License
MIT