
yyh-001/dsh-expression
41Last commit Aug 14, 2026
dsh-expression DSH plugin
dsh-expression reads your existing meme library (selfloom compatible) and provides semantic search via bigram Dice similarity. It sends only real files through the QQ channel provided by dsh-companion. The plugin includes a built-in default meme pack and a UI quick-picker for one-click meme sending.
How to install the dsh-expression DSH plugin
dsh plugin --profile web add dsh-expressionCopying does not run this command. Review the repository and version before installing the dsh-expression DSH plugin.
dsh-expression DSH plugin data source
dsh-expression DSH plugin snapshot date: Aug 16, 2026
discovered
What the dsh-expression DSH plugin can do
- Semantic meme search using oral query with bigram Dice similarity and synonym fallback.
- Real path sending with path safety enforcement, preventing escape from the meme root directory.
- One-click meme sending from the chat input box via a 😊 button, with a floating panel for browsing and selecting memes.
- Emotion-driven meme sending: the tool description encourages the model to send memes when emotional context fits, without verbose reply.
- Zero migration: directly reads selfloom meme store (index.db SQLite + memes/ directory) without any import steps.
Where the dsh-expression DSH plugin fits
- Ask the model to send a relevant meme during a conversation, e.g., 'Send a speechless meme'.
- Manually pick a meme from the 😊 panel and send it instantly without involving the model.
- Enable the model to proactively send memes based on conversational mood (when paired with dsh-companion).
- Browse, edit, delete, or upload memes directly from the settings page (limited upload/edit only).
- Use the built-in default meme pack (92 images) for immediate out-of-the-box fun.
Who the dsh-expression DSH plugin is for
- Users of DeepSeek Harness who want rich meme interaction in their chat agents.
- Existing selfloom users looking for a zero-effort plugin to bring their meme library into DSH.
- Developers building companion-like AI agents that need expressive, emotion-aware meme sending.
dsh-expression DSH plugin limitations
- Management operations (upload, delete, edit metadata) are not fully ported; users must manage the library via the original selfloom console or direct file operations.
- Sending is limited to the 'recent chat' target of the QQ channel (single-target MVP, consistent with dsh-companion).
- Search quality depends on the caption quality of the meme library; oral synonyms may not cover all cases.
- The built-in default meme pack lacks an explicit redistribution license (upstream no LICENSE); personal use is fine, but public distribution requires caution.
dsh-expression DSH plugin: from the repository README
Quoted from the yyh-001/dsh-expression README, the upstream source of the dsh-expression DSH plugin. Copyright remains with the original authors.
聊天 Agent 斗图最容易翻车的三件事: - 手写假路径 - 乱发不贴题的图 - 搜不到就硬发 **dsh-expression** 是 DeepSeek Harness 的表情包插件:直接读你现成的表情包库,语义检索后只发**真实存在的文件**。 数据来自 [selfloom](https://github.com/yyh-001/selfloom)(单用户陪伴 agent)的表情包库——**零迁移、开箱即搜**。发送走 [`dsh-companion`](https://github.com/yyh-001/dsh-companion) 的 QQ 通道(`companionQq` 服务);没有 QQ 通道就不挂工具,绝不给模型一个发不出去的空工具。 **配合陪伴插件 dsh-companion 的效果**:不需要任何插件 API,模型会结合会话上下文主动判断情绪、恰到好处地发一张贴题的表情包——情绪到了直接发,实现「陪伴式斗图」。 想换一套聊天搭子人设?另装 **[dsh-companion](https://github.com/yyh-001/dsh-companion)**(人设 + Hermes 记忆 + QQ 通道)——两者独立、可选搭配,本仓不含人设。 交流 / 反馈:**QQ 群 [993579665](https://qm.qq.com/q/7AD2g70HqS)**([点击加入](https://qm.qq.com/q/7AD2g70HqS)) --- ## 安装 已发布到 **npm**(`dsh-expression@0.1.0`),一行装进任意 DSH profile(如 `~/.dsh/profiles/web/`): ```bash dsh plugin --profile web add dsh-expression # 等价于: pnpm add dsh-expression ``` 或从 GitHub / 本地直接装: ```bash pnpm add github:yyh-001/dsh-expression # 或 pnpm add file:/path/to/dsh-expression ``` ## 配置 默认直接内置图库(`memes/official-001`),开箱即用,绝大多数情况**无需任何配置**。若你要指向别的图库,在 cordis.yml 里加一行覆盖 `memeRoot`: ```yaml - id: selfloom-expression name: dsh-expression config: memeRoot: /your/path/to/meme-pack # 可选;默认内置 memes/official-001 ``
Read the full READMERepository license: MIT
dsh-expression DSH plugin questions
How do I install dsh-expression?
Run `dsh plugin --profile web add dsh-expression` in your DSH profile directory. This will install the package from npm. Alternatively, you can use `pnpm add dsh-expression` directly. After installation, start a new session and the model will see the `send_meme` tool.
Can I use my own meme library instead of the built-in one?
Yes. Set `memeRoot` in your cordis.yml config to point to your meme folder. The folder should contain an `index.db` (SQLite) and a `memes/` directory with images. The plugin reads selfloom-compatible libraries without any migration steps.
Does dsh-expression work without dsh-companion?
Yes, but the sending feature is limited. The plugin requires a `companionQq` service to send memes via QQ channel. Without dsh-companion, the model will still see the `send_meme` tool but will only be able to search and return the meme path, not actually send it. The UI quick-picker (😊 button) also works for manual sending.
How do I add my own memes to the plugin?
You can manage memes through the settings page (browse, edit, delete, upload). However, full management operations (like batch upload or metadata editing) are not ported yet. For advanced management, use the original selfloom console or directly manipulate the file system under your meme root directory.
What does the 'send_meme' tool do?
It is a semantic search and send tool. The model can call it with a query like `send_meme query=想下班`. It searches the meme library using bigram Dice similarity, returns a real file path, and sends the meme via the configured QQ channel. If no match is found, it returns the list of categories so the user can refine the query.