让纯文本模型调用视觉模型读懂图片内容
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/4 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add bauerelizabeth07139/opencode-eyes该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · vision
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 31 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件
查看扫描证据(共 1 处,展示前 1 条)
- 读取本地文件index.js:64
return (await stat(path)).isFile();
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-mcp-client给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 纯文本模型调用视觉模型
- 描述图片内容
- 提供图片描述接口
展开完整介绍(121 字)↓
DeepSeek Harness 插件兼 OpenCode MCP 服务器:用 StepFun step-3.7-flash 描述图片,让纯文本模型也能「看见」,对外提供 mcp__opencode_eyes__describe_image。
README
由 DeepSeek 最新模型翻译生成opencode-eyes
给看不见的模型一双眼睛。 图片交给 StepFun 的 step-3.7-flash 视觉模型,描述作为工具输出返回。
给不具备多模态能力的模型一双眼睛:把图片交给 StepFun 多模态模型,拿回文字描述。
作为 DeepSeek Harness 插件:MCP 服务器打包在 bundle 里,所以装一个插件就完成全部配置——不用手动编辑 mcpServers 文件。
安装
DeepSeek Harness Desktop —— 打开侧边栏的 Plugins,选择 Add plugin,输入:
https://github.com/bauerelizabeth07139/opencode-eyes
然后打开新的 dsh-opencode-eyes bundle 开关。Desktop 应用启动的是预留的 desktop 配置档,所以必须在这里启用。
dsh 命令行 —— 装进你实际启动的配置档:
dsh plugin --profile web add bauerelizabeth07139/opencode-eyes
机器上没有 git? pnpm 用 git ls-remote 解析 git 简写,缺 git 时会报 'git' is not recognized。
展开完整文档(README 剩余 1 节)
opencode-eyes
给看不见的模型一双眼睛。 图片交给 StepFun 的 step-3.7-flash 视觉模型,描述作为工具输出返回。
给不具备多模态能力的模型一双眼睛:把图片交给 StepFun 多模态模型,拿回文字描述。
作为 DeepSeek Harness 插件:MCP 服务器打包在 bundle 里,所以装一个插件就完成全部配置——不用手动编辑 mcpServers 文件。
安装
DeepSeek Harness Desktop —— 打开侧边栏的 Plugins,选择 Add plugin,输入:
https://github.com/bauerelizabeth07139/opencode-eyes
然后打开新的 dsh-opencode-eyes bundle 开关。Desktop 应用启动的是预留的 desktop 配置档,所以必须在这里启用。
dsh 命令行 —— 装进你实际启动的配置档:
dsh plugin --profile web add bauerelizabeth07139/opencode-eyes
机器上没有 git? pnpm 用 git ls-remote 解析 git 简写,缺 git 时会报 'git' is not recognized。改用 tarball——那条路径走的是纯 HTTPS:
dsh plugin --profile web add https://codeload.github.com/bauerelizabeth07139/opencode-eyes/tar.gz/main
同一个地址在 Desktop 的 Add plugin 对话框里也能用。把 main 换成 commit SHA 就能锁定确切版本(/tar.gz/<sha>)。
卸载用 dsh plugin --profile web remove dsh-opencode-eyes。
要求
- PATH 里有 Python ≥ 3.8,或者用 python 指向它。
- 那个解释器里要有 Pillow——服务器唯一的第三方导入(pip install Pillow)。
- STEP_API_KEY 里有 StepFun API key(或 config.apiKey)。没有它服务器照样启动,describe_image 会返回明确的错误。
工具
服务器注册 1 个工具。DSH 自动给它们加命名空间,所以模型调用时写作 mcp__opencode_eyes__<tool>:
| 工具 | 作用 |
| describe_image | 读取图片文件,base64 编码成 JPEG(可选降采样),然后让视觉模型描述它。参数:image_path(必填)、prompt(可选)。 |
配置
| 键 | 环境变量 | 默认值 | 含义 |
| python | — | 自动发现 | 运行服务器的解释器 |
| apiKey | STEP_API_KEY | (空) | StepFun 凭据;describe_image 需要它 |
| model | STEP_MODEL | step-3.7-flash | 请求里发送的模型 id |
| timeoutSeconds | STEP_TIMEOUT | 120 | 服务器自身的 HTTP 超时 |
| maxDimension | STEP_MAX_DIMENSION | 2048 | 图片降采样到这个边长 |
| jpegQuality | STEP_JPEG_QUALITY | 85 | 重新编码后图片的 JPEG 质量 |
| toolCallTimeoutMs | — | 300000 | DSH 每次调用的预算;保持它大于 timeoutSeconds |
| env | — | {} | 其他内容的原始环境变量透传 |
每个字段都是可选的,放在 loader 行里。例如在 cordis.patch.yml 中:
- id: dsh-opencode-eyes
name: 'dsh-opencode-eyes'
config:
apiKey: 'sk-...'
toolCallTimeoutMs: 300000
说明
- API base URL 已经编译进服务器(https://api.stepfun.com/step_plan/v1/chat/completions),没有 baseUrl 选项可以指向别处。这个插件只暴露服务器真正会读取的内容。
- src/ 布局。 这个包是 src/ 布局的 Python 模块,所以服务器运行时必须以仓库的 src 目录作为工作目录。插件已经帮你处理好。
- 超时。 服务器等待 StepFun 最多 STEP_TIMEOUT(120 秒),比 harness 默认的 60 秒更长,所以插件挂载时给每次调用 300 秒的预算。
如何挂载
index.js 解析出一个 Python 解释器(先看配置的 python,再看 PATH 上的 python3/python),把 argv 和工作目录交给服务器,然后通过 @deepseek-ai/dsh-mcp-client 把它挂载为 stdio MCP 服务器,并设置 failOnStartupError: true,这样服务器启动失败会变成可见的错误,而不是悄悄少一个工具。
凭据是显式转发的。harness 会把形似凭据的变量(KEY、TOKEN、SECRET、PASSWORD)从子进程继承的环境里清掉,所以 config.apiKey——回退到服务器文档里写的那个变量——由插件自己写进子进程的环境。也就是说下面两种写法都能用:
config:
apiKey: '<your key>'
export STEP_API_KEY='<your key>' # picked up at load time
开发
没有构建步骤,也没有运行时依赖——@deepseek-ai/cordis 和 @deepseek-ai/dsh-mcp-client 是 Harness 提供的 peer。
npm test # node >= 22: manifest checks + the stdio mount, both Harness-free
挂载测试会加载 index.js,把 @deepseek-ai/dsh-mcp-client 打桩,然后断言插件产出的确切 stdio 配置,包括上面的凭据转发。
仓库布局
| 路径 | 用途 |
| index.js | DSH 插件:解析解释器并挂载服务器 |
| cordis.patch.yml | 激活插件的 loader 行 |
| locale/{en,zh}.json | 插件列表里的卡片标题和描述 |
| assets/icon.svg | 卡片配图 |
| test/ | npm test:manifest 组合与挂载契约 |
| src/opencode_eyes/ | MCP 服务器,未改动 |
| pyproject.toml、requirements.txt | Python 包元数据,未改动 |
其他宿主(未改动)
这个服务器是普通的 stdio MCP 服务器,在其他任何地方照样能用。仓库原来的 README 原样保留为 README.opencode.md,里面的启动配置也依然有效:
{
"mcp": {
"opencode-eyes": {
"type": "local",
"command": ["python", "-m", "opencode_eyes"],
"enabled": true,
"timeout": 120000,
"environment": { "STEP_API_KEY": "你的StepFun API Key" }
}
}
}
在别的宿主上,从仓库的 src 目录运行服务器(或者把 src 放进 PYTHONPATH)——这是插件唯一额外做的事。
License
MIT —— 仓库在 pyproject.toml 里声明了 MIT,却没随附许可证文件;这个插件的发布版本补上了一份。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
bauerelizabeth07139/opencode-eyes
让纯文本模型调用视觉模型读懂图片内容
相关插件 · 视觉能力
智能体工作台Devin-AXIS/iPolloWork
企业级、本地优先的智能体工作台,面向个人和智能体团队——一个工作区,容纳多个智能体引擎;一套统一体系,管理插件和技能;支…
★ 7,364已汉化DSH
72
开源设计工作台nexu-io/open-design
OpenDesign:首个协作式 AI 设计智能体工作区
★ 105,709已汉化DSH
71.8
GPT 图像提示词库freestylefly/awesome-gpt-image-2
Prompt as Code | GPT Image 2 / 2.5 提示词与案例库,530+ 个案例、20+…
★ 34,534已汉化DSH
71.5
多智能体编码工作区spacering-net/codeg
多智能体协作的 AI 编程工作区:汇总 Claude Code、Codex、OpenCode、Pi、Grok Build 等来源的会话。支持桌面应用、自托管服务器或 Docker。
★ 4,319已汉化DSH
71.5
AI 用量桌面小部件Javis603/token-monitor
EN | 简 | 繁 | KO | JA | PT
★ 3,533已汉化DSH
71.1
架构图生成器tt-a1i/archify
把你想理解、规划或分享的事,变成可以互动的可视化作品。
★ 93,105已汉化DSH
71.1
这是你的仓库?认领条目