In the development of DeepSeek Harness (DSH), pure text models cannot directly read images, while multimodal models often have to rely on documentation descriptions when debugging UI components. meow-vision is a DSH plugin designed to solve these two problems: it provides visual capability to text models that cannot see images directly, and provides real UI rendering screenshot capability to multimodal models.
Installation¶
Install via the official DSH plugin manager (web profile only):
dsh 插件 --profile web add meow-vision
After installation, restart dsh. A meow-vision configuration tab appears in the settings dialog, and two tools, meow_vision and meow_preview, also appear in the model tool list.
Core Features¶
meow-vision includes two main tools: meow_vision and meow_preview.
meow_vision: Add a pair of eyes for pure text models¶
If the current model cannot directly process images (non-multimodal session), call this tool. It uses the configured vision model to recognize the image and return a text description.
-
Configuration
Open dsh settings → meow-vision tab → Vision Model section.
Select a multimodal model from the candidate list (the candidate list automatically filters models whoseinputModalitiesincludesimage).
The configuration is written tovision.jsonin the plugin root directory. -
Usage
The model calls it automatically:
meow_vision(image_path="/path/to/screenshot.png", question="这个报错的堆栈含义是什么?")
After receiving the text description of the image, the model continues reasoning.
*Note: If the main model is already multimodal, `meow_vision` will prompt the model to use `read_image` to view the image directly.*
meow_preview: Add a “see UI rendering” eye for multimodal models¶
Allow multimodal models to take a “screenshot and take a look” at the actual rendered effect of a component (styles/margins/layout), making it easier to iterate on UI component implementation.
-
Configuration
In the meow-vision tab → Preview Configuration section, fill in:libName: the npm package name of the team’s UI library (used to locate the dev server)port: the dev server port (default 4173).previewdirectory: the absolute path of the Vue demo working directory
-
Usage (recommended format: demos/
)
Write a minimal Vue demo in.preview/src/demos/(render only one component and explicitly set props/slots; library components are globally registered, so use<ComponentName>directly):
<!-- .preview/src/demos/button-basic.vue -->
<template>
<Button size="small" disabled>禁用小号按钮</Button>
</template>
Then let the model call:
meow_preview(target="demos/button-basic")
The returned result is a screenshot image, automatically fed to the current multimodal model’s vision channel.
-
Target format
demos/button-basic: preview.preview/src/demos/button-basic.vue(recommended)https://example.com/page: screenshot any public URLfile:///path/to/index.html: screenshot local static HTML
-
Mandatory rules
- Full-page layouts are prohibited, multiple components in one frame are prohibited, and business data/routing/state management/external API requests are prohibited.
- This is a simple preview for studying the behavior of a single component.
- Screenshots are saved to
.preview/shots/<name>.png.
Runtime Behavior and Permissions¶
After installation, the plugin performs the following operations without manual configuration.
What it does:
* Write files
* <plugin root>/vision.json: stores the vision model configuration { provider, model }
* <configured .preview directory>/shots/*.png: screenshots generated by meow_preview
* <configured .preview directory>/src/demos/<name>.vue: Vue demo generated by the model
* Start the dev server: launches the configured Vue component library dev server only when meow_preview is first called (default localhost:4173)
* Register Web routes: /api/meow-vision/config (read/write), /api/meow-vision/candidates (read)
* Register tools and prompts: injects meow_vision / meow_preview tools and systemPrompt hints into DSH
What it does not do:
* It does not read chat records, session history, other attachments, or other plugin configurations.
* It does not call third-party APIs outside DSH; the vision model fully reuses the provider/model already configured in DSH.
* It does not modify DSH source code.
* vision.json does not contain API keys.
* It has no telemetry, analytics, or remote reporting.
Compatibility¶
| Item | Requirement |
|---|---|
| DSH profile | web only (depends on the webServer service + settings tab injection) |
| Node version | Node 18+ |
| Runtime platform | ESM only ("type": "module") |
| Cordis version | @deepseek-ai/cordis ^0.1.0 |
| Vision model | Any multimodal model already configured in DSH |
| meow_preview dev server | Must support the demos/<name>.vue route (default port 4173) |
Reference links¶
- GitHub: https://github.com/meimiaoji-creator/meow-vision
- Plugin directory: https://www.skillhub.cn/plugins/meimiaoji-creator/meow-vision