PerryLink/dsh-phone-inbox ↗★ 0
dsh-phone-inbox
管理并导入微信桥接接收到的媒体附件 适合需要将微信收到的图片或文件快速导入工作区的用户。
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:PerryLink/dsh-phone-inbox说明文档
阅读完整 README ↗Configuration
Every field is optional; the table lists the default. See cordis.patch.yml for the same values with inline comments.
| Key | Default | Meaning |
|---|---|---|
enabled | true | Master switch; false mounts no service and no tools. |
inboxDir | "" → ~/.dsh-wechat/tempfile | Directory the bridge drops inbound media into. Empty derives the bridge's own default; set it when the bridge's storageDir was moved. |
maxItems | 5 | Cap on entries inbox_list returns. The MVP contract is "the session's most recent few". |
provider | session | Which registered provider answers: session (this conversation's own messages) or tempdir (session plus a scan of inboxDir). |
allowTempdirScan | false | Enables the directory scan at all. Off because inboxDir is global. |
tempdirScanMaxItems | 5 | Cap on entries a scan may contribute. |
tempdirScanMaxAgeMs | 3600000 | Age ceiling for a scanned file; 0 disables the filter. |
markers | see below | Marker wording per media kind, as RegExp sources. |
defaultSubdir | phone-inbox | Workspace subdirectory inbox_adopt writes into. |
restoreOriginalName | true | Use the sender's recovered original name as the adopted file name. |
writeChannel | auto | auto (fs service for text, node:fs otherwise) · fs (host fs service only) · node (bytes directly). |
registerAttachment | false | Also register adopted bytes as a durable host attachment. Attachment objects are never garbage-collected. |
The markers default wording, per media kind — each value is a RegExp source whose first capture group is the path:
image.path—文件已保存到:\s*(\S+)file.path—(?:文件已保存到|文件路径):\s*(\S+)file.name—\[收到文件:\s*([^\]\r\n]+)\]video.path—文件已保存到:\s*(\S+)
Marker wording is a soft contract with the bridge: it writes the path into prose, and the prose can change between bridge releases without notice. The patterns are configuration precisely so a wording change is a config edit rather than a plugin release.