Install verification: runtime verified (L5) · tested on dsh 0.2.1-rc.2 · last checked Install verification details →
What it doesAI
Bridges text-only chat models to local Ollama vision-language models for image descriptions with VRAM optimization.
- Adds vision capabilities to text-only models
- Uses local Ollama qwen3-vl:8b for descriptions
- VRAM cooling/optimization for image inference
Capability tags are AI-inferred or rule-extracted from the README (see badge) — vocabulary-limited, not install-verified. AI = inferred; README = literal keyword from the readme.
Installation
dsh plugin --profile web add github:nvbb/dsh-ollama-vision-bridgeInstall method: GitHub · runtime verified (L5)
Verification & Compatibility
Grouped by plugin version: each card lists the dsh versions actually tested against that artifact version and their install verdicts (L5 wins). Untested combinations are omitted — absence means untested, never assumed compatible. L1–L3 are a plugin-level static archive (independent of the dsh version — the same verdict on every dsh row): they sit in each row's level grid next to L4/L5, marked "static", while their evidence is stored once per plugin inside that row's "checks & evidence" instead of being duplicated per version.
External credentials (plugin-level): none detected
○ The author declares no dsh version requirement — install is not blocked by version.
| plugin \ dsh | dsh 0.2.1-rc.2 current | dsh 0.2.1-alpha.4 | dsh 0.2.1-alpha.2 | dsh 0.2.0-rc.2 | dsh 0.2.0-rc.1 |
|---|---|---|---|---|---|
| 270545 | ✓ | ✓ | ✓ | ✓ | ✓ |
270545github✓ 11 runtime-verified◐ 1 testing2026-10-18
https://github.com/nvbb/dsh-ollama-vision-bridge
✓dsh 0.2.1-rc.2current2026-10-18L5 · runtime verified
- • Node.js: v24.14.0
- • DSH: 0.2.1-rc.2
- • Plugin artifact: github · https://github.com/nvbb/dsh-ollama-vision-bridge (version unstated)
ID: dsh-ollama-vision-bridge@270545@dsh0.2.1-rc.2 · profile: l4-sandbox
Issued: 2026-10-18 · expires: 2026-10-25
View checks & evidence
active in loader tree (150 entries)
L1–L3 are plugin-level static conclusions (baseline, identical across dsh versions): evidence is stored once per plugin.
✓dsh 0.2.1-alpha.42026-10-16L5 · runtime verified
- • Node.js: v24.14.0
- • DSH: 0.2.1-alpha.4
- • Plugin artifact: github · https://github.com/nvbb/dsh-ollama-vision-bridge (version unstated)
ID: dsh-ollama-vision-bridge@270545@dsh0.2.1-alpha.4 · profile: l4-sandbox
Issued: 2026-10-16 · expires: 2026-10-23
View checks & evidence
active in loader tree (150 entries)
L1–L3 are plugin-level static conclusions (baseline, identical across dsh versions): evidence is stored once per plugin.
✓dsh 0.2.1-alpha.22026-10-10L5 · runtime verified
- • Node.js: v24.14.0
- • DSH: 0.2.1-alpha.2
- • Plugin artifact: github · https://github.com/nvbb/dsh-ollama-vision-bridge (version unstated)
ID: dsh-ollama-vision-bridge@270545@dsh0.2.1-alpha.2 · profile: l4-sandbox
Issued: 2026-10-10 · expires: 2026-10-17
View checks & evidence
active in loader tree (150 entries)
L1–L3 are plugin-level static conclusions (baseline, identical across dsh versions): evidence is stored once per plugin.
✓dsh 0.2.0-rc.22026-10-08L5 · runtime verified
- • Node.js: v24.14.0
- • DSH: 0.2.0-rc.2
- • Plugin artifact: github · https://github.com/nvbb/dsh-ollama-vision-bridge (version unstated)
ID: dsh-ollama-vision-bridge@270545@dsh0.2.0-rc.2 · profile: l4-sandbox
Issued: 2026-10-08 · expires: 2026-10-15
View checks & evidence
active in loader tree (150 entries)
L1–L3 are plugin-level static conclusions (baseline, identical across dsh versions): evidence is stored once per plugin.
✓dsh 0.2.0-rc.12026-09-29L5 · runtime verified
- • Node.js: v24.14.0
- • DSH: 0.2.0-rc.1
- • Plugin artifact: github · https://github.com/nvbb/dsh-ollama-vision-bridge (version unstated)
ID: dsh-ollama-vision-bridge@270545@dsh0.2.0-rc.1 · profile: l4-sandbox
Issued: 2026-09-29 · expires: 2026-10-06
View checks & evidence
active in loader tree (150 entries)
L1–L3 are plugin-level static conclusions (baseline, identical across dsh versions): evidence is stored once per plugin.
✓dsh 0.1.7-rc.22026-09-26L5 · runtime verified
- • Node.js: v24.14.0
- • DSH: 0.1.7-rc.2
- • Plugin artifact: github · https://github.com/nvbb/dsh-ollama-vision-bridge (version unstated)
ID: dsh-ollama-vision-bridge@270545@dsh0.1.7-rc.2 · profile: l4-sandbox
Issued: 2026-09-26 · expires: 2026-10-03
View checks & evidence
active in loader tree (150 entries)
L1–L3 are plugin-level static conclusions (baseline, identical across dsh versions): evidence is stored once per plugin.
○dsh 0.1.7-rc.12026-09-23not tested
- • Node.js: v24.14.0
- • DSH: 0.1.7-rc.1
- • Plugin artifact: github · https://github.com/nvbb/dsh-ollama-vision-bridge (version unstated)
ID: dsh-ollama-vision-bridge@270545@dsh0.1.7-rc.1 · profile: l4-sandbox
Issued: 2026-09-23 · expires: 2026-09-30
View checks & evidence
This level was not executed in this scan.
L1–L3 are plugin-level static conclusions (baseline, identical across dsh versions): evidence is stored once per plugin.
✓dsh 0.1.6-alpha.22026-09-20L5 · runtime verified
- • Node.js: v24.14.0
- • DSH: 0.1.6-alpha.2
- • Plugin artifact: github · https://github.com/nvbb/dsh-ollama-vision-bridge (version unstated)
ID: dsh-ollama-vision-bridge@270545@dsh0.1.6-alpha.2 · profile: l4-sandbox
Issued: 2026-09-20 · expires: 2026-09-27
View checks & evidence
active in loader tree (150 entries)
L1–L3 are plugin-level static conclusions (baseline, identical across dsh versions): evidence is stored once per plugin.
✓dsh 0.1.6-alpha.12026-09-17L5 · runtime verified
- • Node.js: v24.14.0
- • DSH: 0.1.6-alpha.1
- • Plugin artifact: github · https://github.com/nvbb/dsh-ollama-vision-bridge (version unstated)
ID: dsh-ollama-vision-bridge@270545@dsh0.1.6-alpha.1 · profile: l4-sandbox
Issued: 2026-09-17 · expires: 2026-09-24
View checks & evidence
active in loader tree (150 entries)
L1–L3 are plugin-level static conclusions (baseline, identical across dsh versions): evidence is stored once per plugin.
✓dsh 0.1.5-rc.22026-09-11L5 · runtime verified
- • Node.js: v24.14.0
- • DSH: 0.1.5-rc.2
- • Plugin artifact: github · https://github.com/nvbb/dsh-ollama-vision-bridge (version unstated)
ID: dsh-ollama-vision-bridge@270545@dsh0.1.5-rc.2 · profile: l4-sandbox
Issued: 2026-09-11 · expires: 2026-09-18
View checks & evidence
active in loader tree (150 entries)
L1–L3 are plugin-level static conclusions (baseline, identical across dsh versions): evidence is stored once per plugin.
✓dsh 0.1.3-alpha.22026-09-08L5 · runtime verified
- • Node.js: v24.14.0
- • DSH: 0.1.3-alpha.2
- • Plugin artifact: github · https://github.com/nvbb/dsh-ollama-vision-bridge (version unstated)
ID: dsh-ollama-vision-bridge@270545@dsh0.1.3-alpha.2 · profile: l4-sandbox
Issued: 2026-09-08 · expires: 2026-09-15
View checks & evidence
active in loader tree (150 entries)
L1–L3 are plugin-level static conclusions (baseline, identical across dsh versions): evidence is stored once per plugin.
◐dsh 0.1.3-alpha.12026-09-07L4 · testing (install passed, runtime untested)
- • Node.js: v24.14.0
- • DSH: 0.1.3-alpha.1
- • Plugin artifact: github · https://github.com/nvbb/dsh-ollama-vision-bridge (version unstated)
ID: dsh-ollama-vision-bridge@270545@dsh0.1.3-alpha.1 · profile: l4-sandbox
Issued: 2026-09-07 · expires: 2026-09-14
View checks & evidence
This level was not executed in this scan.
L1–L3 are plugin-level static conclusions (baseline, identical across dsh versions): evidence is stored once per plugin.
✓prehistory2026-10-05L5 · runtime verified
- • Node.js: v24.14.0
- • DSH: unknown
- • Plugin artifact: github · https://github.com/nvbb/dsh-ollama-vision-bridge (version unstated)
ID: dsh-ollama-vision-bridge@270545@dshunknown · profile: l4-sandbox
Issued: 2026-10-05 · expires: 2026-10-12
View checks & evidence
active in loader tree (150 entries)
L1–L3 are plugin-level static conclusions (baseline, identical across dsh versions): evidence is stored once per plugin.
Author badges
Embed the official badges in your README to showcase security & install-test status:
`[](https://www.dsh.so/artifact/dsh-ollama-vision-bridge/)``[](https://www.dsh.so/artifact/dsh-ollama-vision-bridge/)``[](https://www.dsh.so/artifact/dsh-ollama-vision-bridge/)``[](https://www.dsh.so/artifact/dsh-ollama-vision-bridge/)``[](https://www.dsh.so/artifact/dsh-ollama-vision-bridge/)``[](https://www.dsh.so/artifact/dsh-ollama-vision-bridge/)`Security Report
Two automated layers, neither a manual review: a static scan (per-plugin rule checks) and a model-driven dynamic security audit that covers only the subset static-flagged at warn or above and never executes plugin code.
Static low, dynamic medium — stricter wins → overall medium.
v0.6.3dsh manifest0.6.3git2026-10-220.6.3same versionclean · gitVet is an AST static scan (npm artifact or git source).
show static findings (6)
- warningnetIp · network
lib/index.js:29const DEFAULT_BASE_URL = "http://127.0.0.1:11434"; - warningnetIp · network
lib/index.js:240if (parsed === void 0) return { kind: "error", text: "Invalid URL. Use an absolute http(s) URL without credentials, e.g. http://127.0.0.1:11 - warningshellExec · shell
patch/apply.mjs:329execFileSync(process.execPath, ["--check", file], { stdio: "ignore" }); - warningnetIp · network
patch/source.mjs:88"\t\treturn { baseURL: typeof envBase === \"string\" && envBase !== \"\" ? envBase : \"http://127.0.0.1:11434\", model: envModel, keepAlive: - warningnetIp · network
patch/source.mjs:93"\t\t\tbaseURL: typeof live.baseURL === \"string\" && live.baseURL !== \"\" ? live.baseURL : \"http://127.0.0.1:11434\",", - warningnetIp · network
patch/source.mjs:126"\t\t\t\t\tbaseURL: typeof doc.baseURL === \"string\" && doc.baseURL !== \"\" ? doc.baseURL : \"http://127.0.0.1:11434\",",
show 4 audit findings
- mediumInstaller rewrites a third-party package's compiled files in place (profile plus every npx cache copy) with no backup
patch/apply.mjs:49patchController() splices code into @deepseek-ai/dsh-api-session-controller under $DSH_HOME/profiles and into every copy returned by npxControllerDirs(); writeFileAtomic() renames over the original without a .bak, and when the patched file fails `node --check` the script only logs a warning and leaves the modified file in place. A moved anchor or interrupted run can leave the host controller broken, and the modification silently persists for all future npx runs.
- mediumHost prompt-admission guard is rewritten to call injected helper code and return accepted early
patch/apply.mjs:107For a text-only model with attached images the patched branch no longer follows the host's native refusal/admission path: it calls dshOllamaAdmit() — executed from the string-defined HELPERS_LINES in patch/source.mjs — and on success returns immediately from the controller's admit function. Validation the host performed after the modality check for image prompts is skipped, and the injected helpers run in-process with the controller's ctx (attachments, agent) and the selected model's identity.
- lowImage data is POSTed to a configurable endpoint; env vars override the visible profile config and any http(s) host is accepted
patch/source.mjsDSH_VISION_BRIDGE_BASE_URL / DSH_VISION_BRIDGE_MODEL take precedence over the profile config, and normalizeBaseURL() only enforces an http(s) scheme with no embedded credentials, so any host (plaintext http included) is allowed. Whoever controls the process environment or the config can silently have attached screenshots described by — and transmitted in full base64 to — a remote endpoint.
- lowDeclared CLI entry point bin/cli.js is absent from the audited source
package.json:8package.json ships bin/cli.js (documented as `npx dsh-ollama-vision-bridge setup`), which performs the patching described above, yet the file was not harvested. Its argument handling, path resolution and network behavior could not be verified, so the audit covers only part of the code that actually modifies the host.
Install-time patcher rewrites the host session-controller bundle (and npx cache copies) to bypass the image-modality guard and inject helper code; the runtime row itself is benign and command-gated.
Rule: the dynamic audit can only raise risk, never lower it (raise-only, never an exemption); a wrong raise is withdrawn by human review and the tier falls back to the static verdict. Overall verdict = the stricter of the two layers.
Disclaimer: the static scan and the dynamic security audit are both automated analysis, not a security guarantee. Always review what you install.
Activity
Last commit 2026-10-22 · activity: Active
• Repo created: 2026-09-06
• Stars: ★ 1 · Forks: 0
• Health: Active — committed within last 30 days
Source
Author README
View on GitHub ↗The author's original README from the repository — fetched live, unedited (the English page loads the default README).
