dsh-eyes-upload
by ala-lisa
DSH 插件:经 deepseek-eyes 为纯文本模型做无感图片上传
DSH plugin: invisible image upload for text-only models via deepseek-eyes
安装
dsh plugin --profile web add github:ala-lisa/dsh-eyes-uploadGitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试
安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗
安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。
README
目录
DSH Eyes Upload
上传图片,自动用 deepseek-eyes 分析,随下一条消息发给模型
不弹窗、不写输入框、不打断聊天。
为什么做这件事
DeepSeek 等文本模型看不了图,DSH 会在消息发给模型前拒绝带图片的消息:
当前模型不支持图片,请切换支持图片的模型
本插件绕开这条检查:图片先经 deepseek-eyes(Qwen3-VL,ModelScope 免费 API)分析成文字,再随消息注入。模型收到的是一份它读得懂的描述。
它解决了什么问题
- 模型看不了图:上传的图片先分析成文字再进消息
- 上传被拒:分析文本随消息注入,不走图片能力检查
- 交互干扰:无弹窗、不动输入框,按钮只显示「分析中…」→「已上传」
- 顺序混乱:「已传 N 张」列表按序编号,可单张删除
- 换会话丢能力:deepseek-eyes 技能随插件全局注册
它是怎么工作的
┌─────────────┐
点「传图」按钮 ──▶ │ 保存图片 │
或 Ctrl+V 粘贴 │ ~/.dsh/eyes- │
(可多张) │ uploads/ │
└──────┬──────┘
▼
┌─────────────┐
│ deepseek-eyes│ Qwen3-VL 逐张分析
│ 自动分析 │ (按钮显示 1/n 进度)
└──────┬──────┘
▼
┌─────────────┐
│ 分析挂起 │ 页面只显示「已上传」
│ (按会话) │
└──────┬──────┘
▼
你正常发消息 ──▶ ┌─────────────┐
│ agent/pre-step│ 主机在模型步骤前
│ 自动注入 │ 把分析附到你的消息里
└──────┬──────┘
- 分析只随下一条真实消息注入一次,之后清空
- 注入内容含每张图的名称、描述、保存路径,模型可对同一路径做 OCR、代码提取等后续处理
- 一次可传任意张数,顺序 = 选择/粘贴的顺序
安装
前置:DeepSeek Harness、pnpm、deepseek-eyes 的
Python 环境(venv 内 mcp>=1.0.0,<2.0.0、openai<3.0.0、Pillow、aiofiles)。
dsh plugin --profile web add git+https://github.com/ala-Lisa/dsh-eyes-upload.git
# 重启 dsh web + 浏览器硬刷新(Ctrl+F5)
配置
优先级:cordis 行 config > 环境变量 > 默认值。
1. cordis 行 config(编辑 cordis.patch.yml)
- insert:
- id: eyes-upload
name: dsh-eyes-upload
config:
apiKey: your-modelscope-key-without-ms-prefix
python: /path/to/deepseek-eyes/.venv/bin/python
repoDir: /path/to/deepseek-eyes-pack
uploadDir: /path/to/eyes-uploads
2. 环境变量(密钥不进仓库)
export EYES_API_KEY=your-modelscope-key-without-ms-prefix
export EYES_PYTHON=/path/to/deepseek-eyes/.venv/bin/python
export EYES_REPO_DIR=/path/to/deepseek-eyes-pack
export EYES_UPLOAD_DIR=/path/to/eyes-uploads
3. 不配置:回退默认(python3 / 当前目录 / 插件目录下 uploads/)。
API Key:https://modelscope.cn 注册 → 个人中心 → 访问令牌(首次需绑定阿里云账号)。
令牌形如 ms-xxxxxxxx,使用时去掉 ms- 前缀。免费 500 次/天。
功能清单
| 能力 | 说明 |
|---|---|
| 🖼️ 传图按钮 | 输入框工具行,样式与 DSH 原生按钮一致 |
| 📋 粘贴截图 | 页面内 Ctrl+V 直接拦截粘贴的图片,多张不限量 |
| 🧾 已传胶囊 | 「已传 N 张」悬停展开列表,按序编号、单张 ✕ 删除 |
| 🫥 隐性注入 | agent/pre-step 注入,随下一条消息到达后清空 |
| 📚 技能随包 | deepseek-eyes 技能在插件加载时全局注册 |
| 🗂️ 落盘可查 | 图片存 uploads/,支持事后 OCR/代码提取 |
| 🛡️ 安全校验 | 仅图片格式(魔数校验)、单张 ≤20MB、超 2048×2048 自动缩放 |
仓库结构
dsh-eyes-upload/
├── README.md ← 你正在看的
├── LICENSE ← MIT
├── SKILL.md ← deepseek-eyes 技能(随包注册)
├── cordis.patch.yml ← 组合行
├── package.json ← dsh.bundle + dsh.client 声明
└── lib/
├── index.js ← host:上传/删除路由、pre-step 注入、技能注册
├── analyze.py ← 分析脚本
└── client.js ← client:按钮、粘贴拦截、已传列表
依赖与兼容
- 主机:DSH Web 组合(
conversation.input.left插槽、webServer、skills、agent/pre-step) - 视觉:deepseek-eyes(Qwen3-VL via ModelScope)
- 客户端:无第三方运行依赖
⭐ Star History
License
MIT. See LICENSE.
原始 README: https://github.com/ala-Lisa/dsh-eyes-upload/blob/main/README.md ↗
同类插件
查看全部 →
agent-vision-toolkit
为纯文本模型"看图“设计更好的视觉工具箱和技能,支持多图理解,图片问答,前端UI还原、GUI 自动化等,并可选无缝接入多个主流agent,直接识别粘贴图片| A vision toolkit and skill designed for text-only llms — image Q&A, long-screenshot OCR, frontend UI restoration, and GUI automation, with optional seamless integration for Codex, Claude Code, Pi, Oh My Pi, and OpenCode

api-relay-audit
从 DeepSeek Harness 对 AI API 中转站和 LLM 代理运行本地安全审计,生成 Markdown 报告,覆盖提示词注入、模型替换信号、工具调用改写、错误泄漏、流完整性和按 profile 启用的 Web3 风险。

OpenStory
✨ OpenStory 现已支持 DeepSeek Harness 插件! 现在可以通过 dsh-openstory 将 OpenStory 多智能体推演接入 DeepSeek Harness,让 agent 直接启动模拟、查看角色、下达指令并逐回合推进故事。查看 DSH 插件配置与使用指南。

phi
pi的编码代理 ∞ 提供者、子代理、hashline编辑和权限门

anysearch-dsh
DeepSeek Harness(DSH)的 AnySearch 网络搜索提供方与高级搜索工具。

codex-switch
Codex Switch 是一个 macOS 工具,一键配置 Codex 的自定义 API,同时保留官方 OpenAI 登录。保存后 Codex 的模型选择器里只会出现你选的那个 provider 的模型。也支持 Claude Code 的官方 / 自定义 API 切换。Codex Switch is a lightweight helper for configuring multiple coding-agent API routes. For Codex, it keeps Official OpenAI and a custom API provider configured in parallel, registers the custom model in Codex's mod