Configuration
The plugin stores settings in the dsh-image-vision namespace. The settings page exposes an enable switch, the recognition model, and the prompt. Its profile patch can provide these fallback values:
| Key |
Value |
enabled |
true |
patchAdmission |
true |
patchAdmission controls the reversible wrapper around the shared llm service. The plugin also requires dsh-image-vision to be added to the dsh-host-apiproxy setting namespace whitelist; otherwise the settings page cannot find its namespace.
Files and host integration
The plugin package consists of index.js, client.js, and package.json. For a profile installation, these files are placed under $DSH_HOME/profiles/<profile>/node_modules/dsh-image-vision/; the README gives web as the usual Web profile and shows the corresponding Windows path under C:\Users\<user>\.dsh\profiles\web\.... The profile’s $DSH_HOME/profiles/<profile>/cordis.patch.yml contains an image-vision entry naming dsh-image-vision.
The setup scripts patch the WEB_SETTINGS_NAMESPACES list in dsh-host-apiproxy. Reinstalling or upgrading DSH can overwrite that host file, requiring the patch to be applied again.
Commands and platforms
The repository supplies install.ps1 and uninstall.ps1 for Windows PowerShell, plus install.sh and uninstall.sh for Linux and macOS. Uninstallation removes the package, the image-vision patch entry, and the API proxy whitelist change. Configuration remains unless the removal script receives -PurgeConfig on Windows or --purge-config on Unix. Restart DSH after installation or removal.
Known limits
At least one configured model that supports images is required. Descriptions are not cached; the same image is recognised once per turn, but later sends invoke the vision model again. Failed recognition retries other configured image-capable models at 0.6-second intervals. If all attempts fail, placeholder text is used instead of sending the image to a text-only model.
Written from the project's own documentation and kept in sync with it. Where the two disagree, the source is authoritative — read the README on GitHub