DeepSeek Harness Plugin

lubenweimeiyoukaig/dsh-file-upload-local

Stars ★ 0 Category Tools & Capabilities Added 2026-09-05

Local file upload: paperclip button and drag-and-drop, per-session storage under .dsh-uploads, and a read_document tool that pages text and OCRs images.

Install

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

dsh plugin --profile web add github:lubenweimeiyoukaig/dsh-file-upload-local

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 local file-upload plugin for DeepSeek Harness (dsh). Upload files straight into the conversation via a paperclip button or drag-and-drop; files are stored per-session under .dsh-uploads/<sessionId>/ inside the session workspace, and the agent reads them with the read_document tool.

中文

Features

  • Upload surface: a paperclip button in the composer's left slot, plus a full-viewport drag-and-drop overlay.
  • Attachment rail: uploaded images render 64px thumbnails (click to open), other files render type glyphs with names; each tile has a hover remove button. References are appended invisibly to the sent text on Enter or the send button.
  • read_document tool: pages through text files with line numbers (offset/limit), and OCRs images with tesseract.js (chi_sim+eng) so a text-only model can still read screenshots and photos.
  • Per-session isolation: files land in .dsh-uploads/<sessionId>/ under the session workspace; TTL sweep keeps it from growing unbounded.

Install

dsh plugin --profile web add dsh-file-upload-local
# restart dsh web

Use

  1. Click the paperclip button, or drag files anywhere onto the window.
  2. Files appear as thumbnails above the composer; remove any with its ✕ button.
  3. Send the message — the agent reads uploaded files with read_document <path> (text pages, image OCR).

Configuration

- id: dsh-file-upload-local
  config:
    uploadMaxBytes: 26214400   # single upload body cap
    uploadTtlMs: 604800000     # 7 days
    sweepIntervalMs: 3600000   # TTL sweep interval
    maxConcurrentUploads: 4
    maxFileBytes: 26214400     # read_document read cap
    readLimit: 2000            # max lines per read_document page
    ocrLangs: 'chi_sim+eng'    # tesseract language pack

Notes

  • The OCR language pack (chi_sim+eng) is downloaded by tesseract.js on first use; keep network access or pre-seed the cache.
  • Images travel through the OCR path (read_document), so a text-only model works out of the box. If the active model supports image input, you can still use the official read_image tool directly.

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.