When building agents in DeepSeek Harness, in addition to text responses, you occasionally need a more intuitive form of feedback, such as sending a celebration image when CI succeeds or responding with a “shrug” reaction when encountering a bug. Manually inserting images is often not flexible enough and can easily disrupt the conversation flow. The dsh-memes plugin provides semantic image-selection capabilities, enabling an Agent to send memes as naturally as a human would.

What Is This

dsh-memes is a DSH plugin maintained by kagura-agent. Its core is the pick_meme tool. By describing an emotion or scenario in natural language, it automatically matches and returns an appropriate reaction image from the Agent Meme Stash library.

Core Features

  1. Tool and invocation: Provides the pick_meme tool and supports natural-language invocation. The Agent describes an emotion, and the plugin selects an image using semantic tag matching.
  2. Image library: Uses Agent Meme Stash, which includes 26 categories and 260+ reaction images.
  3. Semantic matching: Supports alias and multi-word tag matching, for example proud, good morning, or frieren cringe.
  4. Automatic integration: Automatically adds a bundle patch to the profile during installation, eliminating the need to manually edit cordis.patch.yml.
  5. Lightweight: The plugin package does not include image files; it contains only the Host plugin and Web client.
  6. Remote caching: Remote directory tags are cached for 1 hour, shared across concurrent calls, with a 10-second request timeout.

Installation and Enablement

Use the official installation command to add the plugin to a DSH Web profile:

dsh plugin --profile web add github:kagura-agent/dsh-memes

This plugin declares dsh.bundle.patch. After installation, the patch is automatically added to the profile, and DSH loads the corresponding Web client. After installation, start or restart the profile and open a new session to use it.

Typical Usage

An Agent can initiate requests using natural language or call the tool function directly.

Natural-language examples:
* Send a celebration meme.
* React to that bug with a facepalm.
* Reply with a happy meme.

Tool function invocation:

pick_meme({ mood: "frieren cringe", count: 1 })

Parameter descriptions:
* mood: Required. A semantic tag describing the emotion or scenario.
* count: Optional. Defaults to 3, with a maximum of 10.

The image-selection logic resolves common aliases in sequence, matches exact categories, checks multi-word tags, and falls back to random selection when there is no semantic hit.

Configuration and Networking

Default configuration: The plugin works with the default configuration and does not require additional settings.

Override configuration: If you need to use a private mirror or a test fixture, you can override the tag directory URL in the profile patch:

- id: memes
  config:
    tagsUrl: https://example.com/tags.json

Networking and privacy:
* The Host fetches tags.json from raw.githubusercontent.com after the first invocation and caches it for one hour.
* The browser loads the selected GIF from media.githubusercontent.com, effectively sending regular image requests to GitHub.
* The images link to the kagura-agent/memes repository. The code is licensed under MIT, and third-party media remains subject to their respective rights.

Ecosystem Context

The philosophy of DeepSeek Harness is “everything is a plugin.” This plugin can be installed from the community directory and has no official affiliation with DeepSeek / High-Flyer.

The plugin code contains only Host logic and the Web client. After modifying the Host or Client JavaScript, you need to restart the corresponding DSH profile.

Brief Closing

dsh-memes simplifies visual feedback logic for DSH agents through semantic matching and automatic integration. The related directory and source code are listed below:

  • GitHub repository: https://github.com/kagura-agent/dsh-memes
  • Community directory: https://www.skillhub.cn/plugins/kagura-agent/dsh-memes