DeepSeek Harness Plugin

Cheng-cheng9669/dsh-deepseek-vision

Stars ★ 1 Category Vision & Multimodal Added 2026-08-16

Reuses DeepSeek web's built-in vision mode for text-only models: the deepseek_vision tool drives the local deepseek-vision-cli browser automation (manual login helper, deep-think enabled, auto-closes browser) and returns image descriptions as text.

Install

# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)

dsh plugin --profile web add github:Cheng-cheng9669/dsh-deepseek-vision

Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).

README

A DSH plugin that gives text-only DeepSeek models image recognition.

It registers the deepseek_vision tool, which calls the local deepseek-vision-cli (browser automation driving chat.deepseek.com's vision mode) and returns the image description as text to the model.

Tool

  • deepseek_vision(image, prompt?)
    • image: absolute path to a local image (PNG/JPG/WebP/GIF; HEIC is not supported)
    • prompt: optional question or analysis request for the image

Installation

dsh plugin --profile web add D:/Dsh/tools/dsh-deepseek-vision

Or use the release tarball:

dsh plugin --profile web add dsh-deepseek-vision-0.0.1.tgz

First login

DeepSeek web vision requires a web login session. The current web UI uses password / third-party login, so the recommended way is the manual login helper:

py -3.13 D:\Dsh\tools\deepseek-vision-cli\dsv_manual_login.py

It opens an Edge window to the DeepSeek login page. After you log in manually, the helper saves the token to D:\Dsh\.cache\dsv_token.

Token login (alternative)

If you already have a DeepSeek web session in your normal browser, you can copy the token directly:

  1. Open https://chat.deepseek.com and log in.
  2. Press F12 → Application → Local Storage → https://chat.deepseek.com.
  3. Find userToken, copy its value field.
  4. Save it to D:\Dsh\.cache\dsv_token (no quotes, no newline):
[IO.File]::WriteAllText(
  'D:\Dsh\.cache\dsv_token',
  'PASTE_TOKEN_HERE',
  (New-Object Text.UTF8Encoding($false))
)

The token is only stored locally in D:\Dsh\.cache\dsv_token; it is never committed to this repository.

Configuration

Default configuration for this machine:

  • pythonCommand: py
  • pythonVersion: -3.13
  • dsvScript: D:/Dsh/tools/deepseek-vision-cli/dsv.py
  • timeoutMs: 180000
  • maxOutputChars: 20000

These can be overridden in a profile patch.

Security notes

  • The tool only accepts local file paths and invokes the external CLI through the DSH subprocess service with an argv array, never through a shell.
  • Images are sent to DeepSeek's web endpoint; this is not local recognition.
  • This relies on non-official web interfaces and may be subject to risk control. Use a secondary account and keep usage low-frequency.
  • Static security audit reports critical for spawning a subprocess; this is inherent to wrapping an external CLI. The code has been manually reviewed: it only runs the fixed dsv.py, with no command concatenation or extra exfiltration.

License

MIT

Content from the project README on GitHub ↗

Links

More in this category

View the whole category →

Community comments

Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.