Configuring dsh-meme
DeepSeek Harness stores dsh-meme settings in ~/.dsh/dsh-expression.json and scans ~/.dsh/meme-packs for user libraries by default. The settings panel can change the scan directory, enable AI-initiated sending, edit its prompt, and select the sending mode.
| Key |
Values or default |
remoteDirUrl |
"" or auto for automatic sources; official for the official source; mirror for mirror sources; or a custom catalog.json URL |
| Sending mode |
自动 (default), 纯文字, or 图片 |
| AI sending |
Enabled or disabled in the settings panel |
Installed libraries can be enabled independently. dsh-meme can import and export ZIP packs, install market packs, and verify release ZIPs with SHA-256.
Commands in dsh-meme
DeepSeek Harness exposes these tools:
send_meme: use tag for a random image from an emotion bucket, or query for a description, keyword or filename. Results cover all enabled libraries. Supported tags are happy, angry, sad, shy, confused and daily.
learn_meme: learn the most recent uploaded image by default, or specify attachmentId or imageUrl.
The model should copy a returned [表情: 描述] marker unchanged in Web chat. GIF uploads are sampled into frames for recognition and remain animated in chat.
Requirements and behaviour
DeepSeek Harness requires Node.js ≥ 22.13.0 for dsh-meme. The plugin uses Node's built-in SQLite and has no third-party runtime dependency stated in the README. Through dsh-im, QQ, WeChat, Feishu and WeCom sessions receive native image messages; Web chat uses the marker-based rendering path.
Known limits of dsh-meme
Automatic learning needs an image-capable model. Animated WebP and APNG are currently identified from their first frame, while GIFs receive frame sampling. The HTTP interface accepts only localhost, 127.0.0.1 and [::1]; LAN addresses and custom domains are rejected. Market catalogues and previews are hosted on GitHub, although automatic mirrors and a local catalogue cache are available.
Written from the project's own documentation and kept in sync with it. Where the two disagree, the source is authoritative — read the README on GitHub