meimiaoji-creator/meow-vision
meow-vision 是 DeepSeek Harness 的一款视觉插件,解决纯文本模型无视觉。另一方面vue页面开发视觉验证不闭环的问题。
项目介绍Project Overview
meow-vision 是 DSH 客户端插件,提供 meow_vision 与 meow_preview 两个工具。meow_vision 让纯文本模型通过预设多模态视觉模型间接"看见"图片;meow_preview 渲染 Vue demo、URL 或 HTML 并将截图返回给多模态模型,用于核对 UI 组件的真实样式。适用于需要把截图、设计稿喂给文本模型,或让多模态模型"亲眼"检查组件渲染的场景。注意:meow_preview 仅在 web profile 下工作,且需要预先配置本地团队 UI 库的 dev server。
meow-vision is a DSH client plugin that ships two tools. meow_vision lets text-only models indirectly "see" images by routing them through a preconfigured multimodal vision model. meow_preview renders a Vue demo, URL, or local HTML file and returns the screenshot to the current multimodal model, so it can inspect real component styling such as padding, margin, or disabled state. Use it when you need to feed screenshots or design drafts to a text model, or when a multimodal model must visually verify UI component rendering. Caveat: it only works on the web profile and requires a local team UI library dev server to be configured in advance.
请帮我了解并安装插件:【meow-vision】【https://github.com/meimiaoji-creator/meow-vision】
把上面这条消息直接发给当前会话里的 DSH,让它帮你了解并安装。安装命令不一定准确,发给 DSH 更稳。Send this message to DSH in your current session. CLI install commands may not be accurate across systems — DSH will figure it out for you.
或使用命令行安装(适合开发者)Or use CLI install (for developers)
命令行安装CLI Install
dsh 插件 --profile web add meow-vision
把 meimiaoji-creator/meow-vision 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
meow-vision
dsh-plugin for DeepSeek Harness(DSH):给文本模型补一双眼睛,给多模态模型补一对"看 UI 渲染"的眼睛。
meow-vision 提供两个工具:
meow_vision— 当你正在用的模型不能直接看图时(非多模态会话),调用它,由你预先在设置里指定的视觉模型识别图片并返回文字描述。meow_preview— 渲染一个页面(本地 Vue demo、URL、HTML 文件)并把截图作为图片返回给当前模型,让多模态模型能"看见"组件真实渲染效果(样式/边距/布局),方便迭代 UI 组件写法。
零 dsh 源码改动;与 dsh-meow-skill / meow-file-view / meow-dsh-task 平级共存,互不影响。
安装
通过 dsh 官方插件管理器安装(profile = web):
dsh 插件 --profile web add meow-vision
如果你想直接装 GitHub 仓库的 main 分支:
dsh 插件 --profile web add github:meimiaoji-creator/meow-vision
安装完成后,重启 dsh 即可在设置弹窗看到 meow-vision 配置 tab,模型工具列表里也会多出 meow_vision 和 meow_preview 两个工具。
功能一:meow_vision —— 给纯文本模型补一双眼睛
适用场景
当前模型无法直接处理图片(read_image 工具会被 dsh 的多模态门禁拒绝),但你又需要把一张图(截图、UI 设计稿、报错截图)喂给模型"看"。
配置
- 打开 dsh 设置 → meow-vision tab → 视觉模型 区块。
- 从候选列表里选一个多模态模型作为视觉模型(候选列表自动从 dsh 已配置的模型里过滤
inputModalities含image的)。 - 保存。配置会写入插件根目录的
vision.json。
用法
模型(即使是文本模型)会自动调用:
调用 meow_vision(image_path="/path/to/screenshot.png", question="这个报错的堆栈含义是什么?")
模型会收到该图的文字描述,然后继续推理。
主模型本身就是多模态时,
meow_vision会自动提示模型改用read_image直接看图,避免绕道。
功能二:meow_preview —— 给多模态模型补"看见 UI 渲染"的眼睛
适用场景
团队 UI 库组件的真实渲染样式(padding、margin、hover、disabled 等)往往和文档描述对不上。让多模态模型自己"截图看一眼"是最快的迭代方式。
配置
在同一个 meow-vision tab → 预览配置 区块填:
| 字段 | 含义 | 示例 |
|---|---|---|
libName |
团队 UI 库的 npm 包名(用于 demos/<名字> 时定位 dev server) |
@sky/sky-ui |
port |
dev server 端口(默认 4173) | 4173 |
.preview 目录 |
你的 Vue demo 工作目录绝对路径 | /Users/you/work/my-lib/.preview |
用法(推荐写法:demos/<名字>)
在 .preview/src/demos/ 写一个最小 Vue demo(只渲染一个组件,显式设置要研究的 props/slots;库组件已全局注册,直接写 <组件名> 即可):
<!-- .preview/src/demos/button-basic.vue -->
<template>
<Button size="small" disabled>禁用小号按钮</Button>
</template>
然后让模型调用:
调用 meow_preview(target="demos/button-basic")
返回的是截图图片(自动喂给当前多模态模型的视觉通道),模型能直接"看见"组件真实样式,然后按需调整 props/slots,再 meow_preview 迭代。
其他 target 形式
| 形式 | 用途 |
|---|---|
demos/button-basic |
预览 .preview/src/demos/button-basic.vue(推荐,最稳) |
https://example.com/page |
截图任意公网 URL |
file:///path/to/index.html |
截图本地静态 HTML |
强制规则
- 禁止整页布局、禁止多组件同框、禁止业务数据/路由/状态管理/外部接口请求。
- 这是研究单个组件行为的简单预览,不是整页预览。
- 截图保存在
.preview/shots/<name>.png,可再用read_image或meow_vision复用。
工具输出示例
meow_vision
输入:
{ "image_path": "/tmp/screenshot.png", "question": "界面上的错误码是什么?" }
输出:
界面上的错误码是 ERR_NETWORK_TIMEOUT,出现在右下角的 Toast 提示里……
meow_preview
输入:
{ "target": "demos/button-basic", "width": 800, "height": 400 }
输出(多模态模型看到的是图片 + 文字信封):
target: demos/button-basic
path: /Users/you/work/my-lib/.preview/shots/button-basic.png
+ [截图图片已附上]
系统提示词注入
插件会向 dsh 的 systemPrompt 注册两段 hint(order=150):
meow-vision:hint— 告诉文本模型何时该用meow_vision。meow-preview:demo-note— 告诉多模态模型写meow_previewdemo 的最简规范。
无需手动配置,apply() 时自动注入。
权限与运行时行为
透明地列出来本插件安装后会做什么 / 不会做什么,方便你评估是否安装。
会做
- 写文件
<插件根>/vision.json:保存你在设置 tab 选中的视觉模型{ provider, model }<你配置的 .preview 目录>/shots/*.png:meow_preview工具生成的截图产物<你配置的 .preview 目录>/src/demos/<name>.vue:模型按 demo 规范写的 Vue 文件
- 启动 1 个常驻 dev server:仅当
meow_preview被首次调用时拉起你配置的团队 UI 库 dev server(默认localhost:4173),插件卸载时自动 kill - 注册 Web 路由(仅同源,DSH 进程内)
GET /api/meow-vision/config— 读视觉模型配置POST /api/meow-vision/config— 写视觉模型配置GET /api/meow-vision/candidates— 候选视觉模型列表
- 调用 DSH 已注入的服务
ctx.tools.register:注册meow_vision/meow_preview两个工具ctx.systemPrompt.section:注入两段 hint(order=150)ctx.webServer.use:注册上面 3 条路由ctx.llm.resolveModelInfo:探测当前主模型多模态能力(决定走meow_vision还是提示用read_image)ctx.llm.stream:复用 DSH 已配的视觉模型流式调用,不发起任何第三方 API 请求,不发起子 agentctx.fs/ctx.attachments:读写本地文件、把截图以 attachment 形式喂给当前模型
- 设置弹窗注入:在 DSH 设置弹窗加一个名为
meow-vision的 section tab(视觉模型 + 预览配置)
不会做
- ❌ 不读聊天记录 / 会话历史 / 用户上传的其他附件
- ❌ 不读其他插件的配置或状态
- ❌ 不调用任何 DSH 之外的第三方 API(视觉模型完全复用你 DSH 已配的 provider/model)
- ❌ 不修改 DSH 源码,纯 Cordis 插件
- ❌ 不持久化任何用户隐私:vision.json 只存你选的
{provider, model},不含 API key - ❌ 不向外发请求:无 telemetry、无 analytics、无远程上报
兼容性
| 项目 | 要求 |
|---|---|
| DSH profile | 仅 web(依赖 webServer 服务 + settings tab 注入) |
| DSH runtime | @deepseek-ai/cordis ^0.1.0(peerDependencies) |
| DSH client 注入 | @deepseek-ai/dsh-client-runtime、@deepseek-ai/dsh-client-ui-settings |
| Node 半 inject | webServer / tools / systemPrompt / llm / attachments / fs |
| 运行平台 | Node 18+,ESM only("type": "module") |
| 视觉模型 | DSH 已配置的多模态模型中任选一个(用户自选;候选列表自动过滤 inputModalities 含 image 的) |
| meow_preview dev server | 你团队的 Vue 组件库 demo 项目(默认端口 4173,需支持 demos/<name>.vue 路由) |
| 浏览器 | 现代浏览器(支持同源 fetch + React 18 hooks);无 IE / 老 Safari 兼容承诺 |
已知不兼容
- ❌ TUI / CLI profile(依赖 web profile)
- � 旧版 DSH rc 之前的 cordis API(需要
^0.1.0) - ❌
meow_preview对非 Vue 库的 demo(如 React 组件库)需要你自行改写 dev server 入口
开发
# 安装依赖
npm install
# 编译(产出 lib/)
npm run build # 或你自己的 tsc 编译命令
# 本地链路调试:把插件根目录软链到 dsh 的插件目录
# 或用:
dsh 插件 --profile web add link:./ # 本地路径安装
License
MIT © meimiaoji-creator
nexu-io/open-design
esengine/DeepSeek-Reasonix
Molunerfinn/PicGo
anywhere-labs/deepseek-harness-desktop
freestylefly/awesome-gpt-image-2
tt-a1i/archify
YaoApp/yao
ZSeven-W/openpencil