{"schemaVersion":2,"dataVersion":"20260822T105549Z-0a0b366f","generatedAt":"2026-08-22T10:55:49.138Z","source":{"id":"gou-gee-deepseek-vision-plugins-dsh-plugin-deepseek-vision","slug":"gou-gee-deepseek-vision-plugins-dsh-plugin-deepseek-vision","rank":559,"url":"https://github.com/GOU-GEE/deepseek-vision/tree/main/plugins/dsh-plugin-deepseek-vision","name":"GOU-GEE/deepseek-vision#plugins/dsh-plugin-deepseek-vision","category":"vision","description":{"zh":"面向纯文本 DeepSeek 的视觉 MCP + DSH 插件：analyze_image / analyze_clipboard / compare_images / vision_status 四个工具、可视化配置页、默认免费 GLM-4.6V-Flash、结果缓存与限流容错，Key 不入日志。","en":"Vision MCP and DSH bundle for text-only DeepSeek: analyze_image, analyze_clipboard, compare_images and vision_status tools, a visual settings page, free GLM-4.6V-Flash by default, result caching and rate-limit tolerance; keys stay out of logs."},"stars":4,"starsCheckedAt":"2026-08-21","repository":{"owner":"GOU-GEE","repo":"deepseek-vision","requestedRef":"main","subpath":"plugins/dsh-plugin-deepseek-vision"},"npm":"dsh-plugin-deepseek-vision","downloads":946,"installMode":"npm","upstreamInstall":"dsh plugin --profile web add dsh-plugin-deepseek-vision","tarball":null,"added":"2026-08-15","page":"https://awesome-dsh-plugin.com/p/GOU-GEE/deepseek-vision--plugins-dsh-plugin-deepseek-vision/","screenshots":["https://raw.githubusercontent.com/GOU-GEE/deepseek-vision/main/docs/screenshots/01-settings.png","https://raw.githubusercontent.com/GOU-GEE/deepseek-vision/main/docs/screenshots/02-paste-analyze.png","https://raw.githubusercontent.com/GOU-GEE/deepseek-vision/main/docs/screenshots/03-clipboard.png","https://raw.githubusercontent.com/GOU-GEE/deepseek-vision/main/docs/screenshots/04-result.png"],"discovery":{"provider":"awesome-dsh-plugin","channel":"plugins.json","indexUrl":"https://github.com/awesome-dsh-plugin/awesome-dsh-plugin","selection":"all curated entries"}},"report":{"sourceId":"gou-gee-deepseek-vision-plugins-dsh-plugin-deepseek-vision","slug":"gou-gee-deepseek-vision-plugins-dsh-plugin-deepseek-vision","policyVersion":"HT-DSH-0.2.2","scannedAt":"2026-08-22T08:26:11.678Z","scanStatus":"static-complete","verdict":"caution","score":94,"commit":"b524d6aedf7ba66e838dba1258f11463b8b7c987","commitDate":"2026-08-16T21:04:08+08:00","artifactDigest":"sha256:3898e7a9c5ac49726f3ab66f7b959188ba30ba8fa3a1095103d08e8293cf2e3b","downloadUrl":"https://github.com/GOU-GEE/deepseek-vision/archive/b524d6aedf7ba66e838dba1258f11463b8b7c987.tar.gz","installMode":"npm","installCommand":"dsh plugin --profile web add dsh-plugin-deepseek-vision","manifest":{"found":true,"path":"package.json","parseError":null,"packageName":"dsh-plugin-deepseek-vision","packageVersion":"0.4.1","bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-settings","@deepseek-ai/dsh-client-ui-settings-plugins"],"platform":"web","immediately":true},"lifecycleScripts":{},"peerDependencies":["@deepseek-ai/dsh"]},"identity":{"status":"found","installMode":"npm","upstreamNpm":"dsh-plugin-deepseek-vision","manifestName":"dsh-plugin-deepseek-vision","nameMatch":true,"npm":{"name":"dsh-plugin-deepseek-vision","latestVersion":"0.4.1","publishedAt":"2026-08-16T13:09:57.552Z","createdAt":"2026-08-15T10:53:38.901Z","versionCount":4,"maintainers":1,"repository":"git+https://github.com/GOU-GEE/deepseek-vision.git","hasInstallScripts":false,"deprecated":false},"repositoryMatch":"match","provenance":"none","tarballHost":null,"versionMatch":"match"},"permissions":{"bundlePatch":"cordis.patch.yml","inserts":[{"id":"deepseek-vision-host","name":"dsh-plugin-deepseek-vision","path":"cordis.patch.yml","disabled":false},{"id":"deepseek-vision-mcp","name":"@deepseek-ai/dsh-mcp-client","path":"cordis.patch.yml","disabled":false}],"overrides":[],"jsExpressions":14,"clientPlatform":"web","parseErrors":[]},"capabilities":["browser-ui","credentials","environment","filesystem","host-bundle","mcp","network","session","subprocess"],"outboundHosts":[{"host":"open.bigmodel.cn","count":3},{"host":"api.siliconflow.cn","count":2},{"host":"dashscope.aliyuncs.com","count":1},{"host":"generativelanguage.googleapis.com","count":1}],"findings":[{"id":"HT-CONFIG-001","title":"Cordis 配置包含可执行 !!js 表达式","severity":"medium","confidence":"high","layer":"dsh-semantics","path":"cordis.patch.yml","pathClass":"cordis","line":21,"evidence":"!!js process.execPath","remediation":"!!js 是 DSH 的官方配置机制；只在表达式引入模块、访问进程或网络时需要额外解释。","note":"表达式访问模块、进程或网络，超出读取注入服务的常规用法","hash":"1cfdcbc3871ff22715168746"},{"id":"HT-CONFIG-001","title":"Cordis 配置包含可执行 !!js 表达式","severity":"medium","confidence":"high","layer":"dsh-semantics","path":"cordis.patch.yml","pathClass":"cordis","line":23,"evidence":"!!js (process.env.DSH_HOME ?? ((process.env.USERPROFILE ?? process.env.HOME ?? '.') + '/.dsh')) + '/profiles/web/node_modules/dsh-plugin-deepseek-vision/launcher.js'","remediation":"!!js 是 DSH 的官方配置机制；只在表达式引入模块、访问进程或网络时需要额外解释。","note":"表达式访问模块、进程或网络，超出读取注入服务的常规用法","hash":"66307e1d16ed6a6b82abedc2"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"launcher.js","pathClass":"source","line":8,"evidence":"spawnSync","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"0bbe7c9ae273b35e6ff3922e"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"launcher.js","pathClass":"source","line":8,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"24b2af265c3767990c46b0d1"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/prepare-runtime.mjs","pathClass":"source","line":4,"evidence":"spawnSync","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"3f020f43347bbda5b7bbfc2b"},{"id":"HT-EXEC-001","title":"直接创建宿主子进程","severity":"low","confidence":"medium","layer":"static","path":"scripts/prepare-runtime.mjs","pathClass":"source","line":4,"evidence":"node:child_process","remediation":"通过 DSH 的受控 subprocess/shell seam 执行，并公开命令、参数及审批策略。","hash":"ea2277fbb4f0730eaa0855fd"}],"counts":{"critical":0,"high":0,"medium":2,"low":4},"rawCounts":{"critical":0,"high":0,"medium":2,"low":4},"vulnerabilities":[],"coverage":{"source":"complete","manifest":"complete","bundleConfig":"complete","dependencies":"lockfile-present","vulnerabilities":"complete","identity":"complete","artifact":"not-compared","llmReview":"not-needed","dynamicRuntime":"not-run","humanReview":"not-run"},"inventory":{"filesScanned":12,"bytesScanned":104596,"truncated":false,"lockfiles":["package-lock.json"],"pathClasses":{"markdown":2,"source":4,"cordis":1,"data":1,"manifest":1,"test-example-docs":3}},"limitations":["此结果为源码静态检测，不等同于无漏洞证明。","尚未比对 npm 发布包与源码的一致性，也未执行隔离运行和人工复核。","危险能力可能是插件功能所需，需结合用途与证据人工判断。"],"limitationKeys":["static-analysis-only","no-artifact-runtime-human-review","capability-needs-context"]},"timeline":[{"scannedAt":"2026-08-22T08:26:11.678Z","commit":"b524d6aedf7ba66e838dba1258f11463b8b7c987","policyVersion":"HT-DSH-0.2.2","verdict":"caution","status":"static-complete"},{"scannedAt":"2026-08-21T11:27:39.041Z","commit":"b524d6aedf7ba66e838dba1258f11463b8b7c987","policyVersion":"HT-DSH-0.2.1","verdict":"caution","status":"static-complete"},{"scannedAt":"2026-08-21T10:56:35.993Z","commit":"b524d6aedf7ba66e838dba1258f11463b8b7c987","policyVersion":"HT-DSH-0.2.0","verdict":"caution","status":"static-complete"}],"events":[{"kind":"policy-change","from":"HT-DSH-0.2.1","to":"HT-DSH-0.2.2","commit":"b524d6aedf7ba66e838dba1258f11463b8b7c987","policyVersion":"HT-DSH-0.2.2","at":"2026-08-22T08:26:11.678Z"},{"kind":"policy-change","from":"HT-DSH-0.2.0","to":"HT-DSH-0.2.1","commit":"b524d6aedf7ba66e838dba1258f11463b8b7c987","policyVersion":"HT-DSH-0.2.1","at":"2026-08-21T11:27:39.041Z"},{"kind":"first-scan","from":null,"to":"caution","commit":"b524d6aedf7ba66e838dba1258f11463b8b7c987","policyVersion":"HT-DSH-0.2.0","at":"2026-08-21T10:56:35.993Z"}]}