dsh-image-unlock
Run the following command in DeepSeek Harness:
dsh plugin install FrostLeafKEE/dsh-image-unlock
Paste the following prompt into your AI chat to install this plugin:
Run dsh plugin install FrostLeafKEE/dsh-image-unlock to install this plugin; the source repository is https://github.com/FrostLeafKEE/dsh-image-unlock
About this plugin
In DeepSeek Harness, models on the opencode-go route that lack an explicit image-input declaration are rejected at both the API layer and the LLM layer the moment a user attaches an image in the Web GUI. Even if that gate were bypassed, the Console Go upstream protocol accepts only plain text, so an image_url part triggers a 400. The entire image pipeline is broken end to end.
dsh-image-unlock repairs the pipeline in two steps. First, a bundle patch adds defaultInput: [text, image] to the opencode-go provider so that models without an explicit input declaration inherit image-input capability and pass the API and LLM gates; models that already declare their own input are left untouched. Second, an idempotent code patch is applied to the locally installed dsh-llm-pi-ai package: on the opencode-go route, stream() serialises durable image blocks (including those nested inside tool-result payloads) into an [Image attachment: ...] text marker carrying the file path. The claude-vision-skill component (vision.js) then sniffs the MIME type by magic bytes (png, jpeg, webp, gif) and calls an external vision API to perform recognition, while the clipboard fallback path remains available.
Textification behaviour is bound directly to the presence of the claude-vision-skill directory: when it sits under .agents/skills, textification is on and images flow through the vision.js recognition pipeline; move the directory out (for example to .dshskin/) and textification switches off automatically, so the model receives real image parts. The plugin watches the skills directory continuously and responds to moves instantly, with no Harness restart required. This lets you flip between text-only models and native vision models on the fly within the same instance.
Ideal for developers running DeepSeek Harness on the opencode-go route who need image input on a text-only upstream, and for teams that mix vision models and pure-text models within a single Harness instance and want one unified workflow to cover both scenarios.
Screenshots
Use Cases
- Upload and recognize images on text-only opencode-go models via the Web GUI and vision skill
- Unify image-attachment handling across vision and text-only models in a single Harness instance
- Bridge the full attachment pipeline—gate, serialization, recognition—for third-party models lacking explicit vision input
Best For
- Developers running DeepSeek Harness on the opencode-go route
- Workflow engineers who need image-attachment input on text-only models
- Technical teams managing mixed deployments of vision and text-only models
Related Plugins
A method pack that makes AI coding agents plan against your real baseline, prove completion with fresh evidence, and reduce reworks and unsafe changes.
Turns the DeepSeek Harness session into a captain that builds a durable sub-agent team, splits goals into dependency-aware tasks, and coordinates work via direct messages and a live Web UI.
Gives coding agents design judgment, letting Claude Code, Cursor, and 70+ agents generate and iterate high-quality UI, presentations, and graphics right from the terminal.
Run the Pi ecosystem's plugins on DeepSeek Harness, unmodified, via a compatibility layer that implements Pi's public extension ABI on DSH's native services.