dsh-auto-vision
Bridges images into text for DeepSeek Harness: when the session's selected model cannot see images, a configured vision model describes them and the descriptions enter the durable session history as folded context rows — your message stays untouched.
安装
dsh plugin --profile web add github:soarguo/dsh-auto-vision
需要可复现安装时,可在仓库后追加 #commit 固定提交。
Bridges images into text for DeepSeek Harness: when the session's selected model cannot see images, a configured vision model describes them and the descriptions enter the durable session history as folded context rows — your message stays untouched.
该插件未提供要点说明,请参考仓库 README。
- 安装并启动 DeepSeek Harness:
npx @deepseek-ai/dsh web - 在终端执行上面的安装命令(CLI 会解析插件并核验来源)
- 用 dsh plugins list 确认已安装,必要时重启 Harness 生效
插件以当前 dsh 进程的权限运行,安装时可能执行代码。请先通读仓库源码与许可证,确认无破坏性命令与越权访问;本站只做索引,不对第三方插件安全性作担保。
| 代码仓库 | github.com/soarguo/dsh-auto-vision |
| 许可证 | MIT |
| 主要语言 | main |
| 下载量 | 2 |
| GitHub 星标 | 0 |
| 最近推送 | 2026-08-24 |
| 收录日期 | 2026-09-19 |
| 分类 | 工具与能力 |
事实信息来自公开插件目录快照(2026-10-01),介绍文案由本站再加工。
以下为插件仓库 README 全文(原始内容,由公开目录抓取整理)。
# dsh-auto-vision
A [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) plugin that bridges images into text: when the session's selected model cannot see images, a configured vision model describes them, and the descriptions enter the durable session history as **folded context rows** — your original message stays untouched.
[中文说明](./README.zh.md)
## Features
- **Your message stays untouched.** Pasting an image into a non-vision model (e.g. `deepseek-v4-pro`, `deepseek-v4-flash`) keeps your text exactly as sent; the vision description becomes a separate, collapsed context entry (`auto-vision · recognized N image(s)`), expandable like a thinking row.
- **Durable memory.** Descriptions are appended to the session log, so later turns can reference the same image memory. Every new screenshot adds a fresh timestamped description; the model naturally favors the latest one.
- **Per-model, not per-session.** Models on the `nativeVision` allowlist (e.g. vision models) are never touched — they see the images themselves.
- **Recursive coverage.** Images nested inside tool results (e.g. `read_image`) are bridged too, so a model that "successfully" reads an image never sends raw bytes to a gateway that would reject them.
- **Failure-safe.** Recognition failures degrade to a `[recognition failed: …]` note in the context row; your text still reaches the model. Cancellation aborts cleanly.
## How it works
1. **Admission (settings)**: the GUI rejects images for models that do not declare `image` input. Declare `input: [text, image]` on the bridged models in `settings.yaml` — the admission check trusts the model declaration and lets the message in.
2. **Accurate model snapshot (plugin)**: the plugin listens to `system-prompt/assemble` (fires right before `agent/pre-step`, same step) and reads the provider/model the GUI just selected from `assembly.variables`.
3. **Rewrite (plugin)**: at `agent/pre-step`, images in messages whose model is not on the `nativeVision` allowlist are removed and replaced by a separate notice-form context message carrying the vision description. The agent loop appends both messages to the session log.
No DSH source changes required.
## Requirements
- DeepSeek Harness with the plugin bundle system (`dsh plugin add`, profiles).
- A registered vision model route (any provider; `deepseek-official/deepseek-v4-flash-vision-exp` by default).
- DSH host packages `>= 0.1.0-rc.7` (uses `system-prompt/assemble` variables and the notice context form).
## Install
Prebuilt `lib/` is committed to the repository, so installs need **no build step**.
From GitHub:
```sh
dsh plugin --profile web add github:soarGuo/dsh-auto-vision
```
From npm (once published):
```sh
dsh plugin --profile web add dsh-auto-image
```
From a tarball:
```sh
pnpm pack # produces dsh-auto-image-0.1.0.tgz (inside the repo)
dsh plugin --profile web add ./dsh-auto-image-0.1.0.tgz
```
Then restart DSH.
## Configuration
**Zero manual setup for model declarations.** By default (`autoDeclareInput: true`) the plugin scans the `llm-pi-ai` and `llm-deepseek` settings sections on startup (and whenever settings/adapters change) and automatically adds `image` input declarations to every configured model — the step the GUI admission check needs to let images through. Native vision models get the declaration too (they need it to receive images at all). Idempotent; already-declared models are untouched.
The plugin's own section (all fields optional; these are the defaults):
```yaml
auto-vision:
visionProvider: deepseek-official # recognition route
visionModel: deepseek-v4-flash-vision-exp # recognition model
nativeVision: # models that see images natively (untouched)
[
{ provider: deepseek-official, model: deepseek-v4-flash-vision-exp },
{ provider: deepseek, model: deepseek-v4-flash-vision-exp }
]
autoDeclareInput: true # auto-add image declarations (set false to manage manually)
```
Set `autoDeclareInput: false` if you prefer to declare `input: [text, image]` yourself (then follow the manual steps below). Settings hot-reload — no restart needed for config changes.
### Manual declaration (only when autoDeclareInput is false)
```yaml
llm-pi-ai:
providers:
{
my-gateway:
{
displayName: My Gateway,
models:
[
{ id: my-pro, name: My-Pro, input: [ text, image ] },
{ id: my-vision, name: My-Vision, input: [ text, image ] }
],
baseURL: https://example.com/v1,
apiKeyEnv: MY_API_KEY
}
}
```
Remember to add the bridged models to `nativeVision` **only if** they really see images; otherwise the plugin bridges them (which is the point).
## Caveats
- Declaring `input: [text, image]` makes the GUI show bridged models as image-capable; the plugin actually bridges the images.
- With the plugin disabled, do not send images to bridged models — raw bytes would reach the gateway and be rejected.
- Recognition runs on the configured vision model and costs its tokens.
## Development
```sh
pnpm install
pnpm test # vitest
pnpm typecheck
pnpm build # rebuild lib/ (commit it before releasing)
```
## License
MIT
数据来源:公开的 DeepSeek Harness 插件目录与各插件 GitHub 仓库。本站为独立第三方目录,与 DeepSeek、幻方(High-Flyer)及插件作者均无隶属或背书关系。