DeepSeek Harness 插件

LWLAymh/dsh-tool-emoji

Star 数 ★ 1 分类 UI 增强 收录于 2026-08-30

把工具卡片前面的图标换成 emoji,同时保留原卡片全部内容。

安装

# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)

dsh plugin --profile web add github:LWLAymh/dsh-tool-emoji

装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。

README

English

一个 DeepSeek Harness Web 插件:把工具卡片前面的简单图标换成 emoji,同时保留原工具卡片的全部内容。

当前映射

工具 Emoji
think(推理行) 🤔
read / web_fetch / grep / glob / web_search 🧐
pwsh 👨‍💻
edit / write / str_replace_editor ☝️🤓
以上任一卡片出错(error 状态) 😫

效果图

安装

# 本地 checkout
dsh plugin --profile web add file:./dsh-tool-emoji

# 或 GitHub
dsh plugin --profile web add git+https://github.com/LWLAymh/dsh-tool-emoji.git

然后重启 Web profile:

dsh --profile web

插件不会热更新到已运行的 Web 进程。

卸载:

dsh plugin --profile web remove dsh-tool-emoji

实现原理

  • 本插件不注册 tool.call.toolview,因此不会接管原始工具卡片。
  • 只注入一层全局 CSS:
    • 隐藏内置 SVG 图标;
    • 在同一个 leading cell 上用 ::before 显示 emoji;
    • 工具卡片的标题、摘要、diff、终端输出、折叠/展开等原有行为全部保留。
  • 错误状态仍会保留原卡片,只把 leading 的红色错误点换成 😫。

设置 / 自定义

在 DSH 设置页打开 Tool emoji,可以不改代码地自定义每个图标:

  • 每个工具图标可单独启用/取消。
  • 顶部有总开关,可一键关闭整个插件。
  • 输入框里可填写任意自定义 emoji/文字。
  • 可上传本地图片作为工具图标(仅支持 PNG/JPEG/GIF/WebP/BMP,保存在 localStorage,单张限 1MB,不接受 SVG)。
  • 可移除已上传图片,回退到文字 emoji。
  • 支持单个恢复默认和全部恢复默认。

设置会立即生效,刷新后仍然保留。

与 dsh-edit-guardian 兼容

如果你同时安装了 dsh-edit-guardian,它会对 edit / str_replace_editor / pwsh 使用自定义工具行(.dshg_row),而不是官方 DisclosureRow。

为了让 emoji 也覆盖这些自定义行,需要:

  1. 使用带 data-tool 属性的 dsh-edit-guardian(本地开发版已支持);
  2. 按你安装 dsh-edit-guardian 的方式重新安装它,并重新安装本插件;
  3. 重启 Web。

如果 dsh-edit-guardian 没有向 .dshg_row 暴露 data-tool,edit / pwsh 的 emoji 不会生效。

自定义

修改 lib/client.js 里的 CSS 即可增删工具和 emoji。

例如给 bash 也加一个:

[data-variant="bash"] > span:first-child > span:first-child svg:not([data-state]) { display:none; }
[data-variant="bash"] > span:first-child::before { content:"💻"; font-size:14px; line-height:18px; }

注意

  • 选择器基于官方源码中的稳定 data attribute:
    • data-tool="edit" / data-tool="str_replace_editor" / data-tool="pwsh"
    • data-variant="think" / data-variant="search" / data-variant="read"
    • [data-disclosure-row] > span:first-child
  • 如果后续 DSH 更新改变了这些 DOM 结构,CSS 选择器可能需要同步调整。
  • 该插件是 Web profile 专用;TUI/headless 没有 leading icon UI surface。

License

MIT

内容来自项目 README(GitHub)↗

链接

同类插件

查看整个分类 →

社区评论

评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。