DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

Photo2dsh By Lan — DSH Plugin for DeepSeek Harness
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins
P

dsh-photo2dsh-by-lan

Photo2dsh By Lan

DSH 手机照片收件箱:手机(iOS 快捷指令 / Android HTTP Shortcuts)一键把照片经**局域网**传到这台 PC 的可配置目录并弹通知,Agent 直接可读;不依赖云、不用装手机 App、不改 app.asar。配置界面在侧栏 Plugins 本包页面。 | DSH LAN photo inbox: one tap on your phone (iOS Shortcuts / Android HTTP Shortcuts) sends photos over the LAN into a configurable folder on this PC, with a t

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:apherchin/dsh-photo2dsh-by-lan#59609a68d0e1c299a80544d7b531d26c455d2bbc
READMECompatibilityVersions

Description

DSH 手机照片收件箱:手机(iOS 快捷指令 / Android HTTP Shortcuts)一键把照片经**局域网**传到这台 PC 的可配置目录并弹通知,Agent 直接可读;不依赖云、不用装手机 App、不改 app.asar。配置界面在侧栏 Plugins 本包页面。 | DSH LAN photo inbox: one tap on your phone (iOS Shortcuts / Android HTTP Shortcuts) sends photos over the LAN into a configurable folder on this PC, with a toast — directly readable by the agent. No cloud, no IM app, no mobile app, no app.asar patching. Config UI on the Plugins page.

Compatibility and provenance

Photo2dsh By Lan is published as dsh-photo2dsh-by-lan and currently resolves to version 0.1.3. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
github
Registry updated
10/4/2026

Versions

0.1.3stable
10/4/2026

Related plugins

Loading related plugins…

Latest
0.1.3
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
web
License
MIT
Source
github
GitHub
★ 0
Weekly downloads
0
Last push
10/4/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

Related plugins

More verified plugins in integrations-communication.

Acp App@deepseek-ai/dsh-acp-appThe dsh ACP profile bundle: automation-only JSON-RPC stdio and process lifecycle over dsh-baseAb Publishdsh-ab-publishBrowser-automation publishing tool that logs into and posts to arbitrary websites, in one publishable plugin packageAb Wechat Scrapedsh-ab-wechat-scrape--- description: "The out-of-tree wechat_scrape tool: retrieves WeChat official-account articles, filters promotional blocks, and saves each as a Markdown file, for maintainers of this machine's dsh profiles." kind: "package-reference" ---Remote Web Ui@linxin666/dsh-remote-web-uiScan-to-pair remote access for the dsh web GUI that shares one official interface: a QR beside the settings button pairs phones and PCs into the same Web GUI (a portrait-touch adaptation layer for phones, full desktop on PCs) through one-time tokens and r

README

dsh-photo2dsh-by-lan

English | 中文

Phone camera → LAN → a folder on this PC → directly readable by the DSH agent.

One tap on the phone (iOS Shortcuts, Android HTTP Shortcuts) POSTs a photo to this PC. The plugin receives it, writes it into a folder you choose, and raises a Windows toast. No cloud, no IM app, no mobile app, no app.asar patching.

Its configuration UI lives in the DSH sidebar: Plugins → this package's page.


Features

  • One tap on the phone — iOS Shortcuts or Android HTTP Shortcuts POST a photo; nothing to install on the phone beyond that.
  • You choose the landing folder — configured in the panel; files appear there immediately.
  • Agent-readable — the folder is a normal directory, so DSH agents can read/analyse the photos right away.
  • Toast on arrival — a Windows notification confirms each photo (with a click-through).
  • No cloud, no IM app, no mobile app, no app.asar patching.
  • Optional token gate — off by default; when off, the LAN is the trust boundary (see §6).
  • Offline test bench — 50 assertions including every real-device failure mode we hit.

1. Install

# preferred (migratable)
dsh plugin --profile desktop add dsh-photo2dsh-by-lan

# or from a local checkout
dsh plugin --profile desktop add file:D:\path\to\dsh-photo2dsh-by-lan

Then allow the port through the firewall once (the only step needing admin):

netsh advfirewall firewall add rule name="DSH Photo2DSH" dir=in action=allow protocol=TCP localport=8787 profile=any

⚠️ Do not omit profile=any. A rule that only covers the public profile silently drops inbound packets when Windows classifies your network as private — the phone then reports "the server stopped responding", which is very hard to diagnose.

Do not try to reuse an already-open port either: on the machine this was developed on, the only "any program, any profile" TCP port was held exclusively by http.sys (EACCES).

Restart DSH afterwards (the client half is assembled at boot).


2. Configure it in the plugin panel

Sidebar Plugins → this package → the config card:

FieldMeaning
Landing directoryWhere photos land. A <date>\ subfolder is created automatically
Portdefault 8787 — changing it needs a new firewall rule
Max file size (MB)default 64
Toast on arrivaldefault on
Require tokendefault on; keep it on
Upload URL / tokenread-only, one-click copy

Prefer a directory inside your current session workspace, so the file sandbox lets the agent read it.


3. Phone side

iPad / iPhone (Shortcuts) — four steps, step 3 is the one people miss

  1. Add Select Photos (or Take Photo).
  2. Add Convert Image → JPEG, quality 80%. Without it the same 8 MP photo arrives as a ~12 MB lossless PNG instead of ~1.5 MB.
  3. Add Get Contents of URL: paste the URL from the config card, expand Show More, set Method = POST, Request Body = File, then ⚠️ point the File field at "Converted Image" (leaving it on the original photo makes step 2 pointless). Finish with Quick Look.
  4. Run it. The response is a short human-readable message, not JSON:
✅ 照片已收到

格式:JPEG(1.63 MB)
文件:20261003232612-4d2b993e-image.jpg
时间:2026-10-03 23:26:12

已存入 PC 的收件箱文件夹

On first LAN access iPadOS asks "allow access to local network devices" — you must allow it. That is an iOS gate, unrelated to the firewall.

To send only selected photos: ⓘ → Show in Share Sheet → accept Images, then share from Photos.

Android

Same URL, same POST + file body. The wire protocol is identical.


4. What lands on disk

<your directory>\
  └─ 2026-10-03\
       ├─ 20261003232612-4d2b993e-image.jpg     ← local timestamp - sha256[0:8] - sanitized name
       └─ 20261003232612-4d2b993e-image.json    ← sidecar: original name, note, bytes, sha256, format, source
  • Same-second, same-name uploads never overwrite each other (link() + -1/-2 suffixes).
  • Format is decided by magic bytes, never by Content-Type: a real device sent image/jpeg in the header while the body was actually PNG.

5. Troubleshooting

SymptomCauseFix
"server stopped responding" (timeout)inbound dropped by the firewalladd the rule, with profile=any
❌ ... 地址里缺少正确的 tokenURL missing the /u/<token> partre-copy the full URL from the config card
❌ 这不是一张能识别的图片the body really is not an imagecheck the File field in your shortcut
response says "仍是 PNG"Convert Image is not wired to the File fieldsee step 3 above
the package page does not appearits loader row is disabled, or profile not restartedthe client half attaches to the row whose specifier is exactly the package name
port failed to startport already in usechange the port and open the firewall for the new one

Log: $DSH_HOME\photo2dsh-by-lan.log · Config: $DSH_HOME\photo2dsh-by-lan.json


6. Security

  • Listens on the LAN only; never exposed to the internet.
  • 128-bit token in the URL path, generated and persisted on first run (so the install is portable).
  • A 401 never echoes the correct token.
  • The setup page (GET /) is served only to 127.0.0.1.
  • Turning Require token off lets anyone on the LAN — including a web page you visit — write files here.

7. Limitations

  • Windows only (os: ["win32"]; toasts use the Windows PowerShell 5.1 WinRT projection).
  • The toast shows Windows PowerShell as the app name unless you register an AUMID.
  • Not included: cloud relay, IM channels, an in-app photo browser, message injection, auto-cleanup.
  • Uninstalling does not delete photos you already received.

8. Development

node test/photo2dsh.test.mjs   # 50 offline assertions, including every real-device failure case