npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@wycto/dsh-task-pulse

v0.1.1

Published

DSH 任务脉冲插件:任务进度动画、完成/卡住通知、钉钉 Webhook 推送

Downloads

112

Readme

dsh-task-pulse — DSH 任务脉冲插件

为 DeepSeek Harness 增加趣味动画、进度指示和通知功能,支持钉钉 Webhook 推送。

✨ 功能特性

🎨 趣味动画

  • 粒子效果:任务进行时,屏幕边缘产生流动的蓝色粒子,营造科技感
  • 进度条:顶部彩虹渐变进度条,指示任务正在进行
  • 任务指示器:右下角显示当前进行中的任务数量

🔔 通知系统

  • 任务完成通知:任务完成时自动弹出通知,展示模型、提供商、耗时、回合/步骤数、工具调用次数、Token 明细(输入/输出/推理/缓存)、Token 速率、任务结果摘要与结束原因
  • 卡住检测通知:任务超过阈值(默认60秒)未完成时发出警告,附带当前进度与 Token 消耗
  • 错误通知:任务异常(出错/中止/达输出上限)时以警示样式通知用户
  • 多行渲染:通知正文支持换行展示,信息结构更清晰

📱 钉钉 Webhook 推送

  • 群机器人通知:通过钉钉群机器人 Webhook 发送任务状态
  • Markdown 消息:支持富文本格式的通知消息
  • 可配置推送:可选择推送任务完成、卡住检测等事件

📦 安装

方式一:npm 包(推荐)

dsh plugin --profile <profile名> add @wycto/dsh-task-pulse

安装后重启 DSH(dsh --profile <profile名>),侧边栏底部出现"✨ 任务脉冲"按钮。

方式二:本地开发

  1. 克隆或下载本项目
  2. 安装依赖:npm install
  3. 构建客户端:npm run build
  4. 本地体验:
    pnpm dsh web --patch ./dsh-task-pulse/cordis.patch.yml

⚙️ 配置

通过界面配置

点击侧边栏底部的"✨ 任务脉冲"按钮,打开配置面板:

  1. 钉钉 Webhook:填入钉钉群机器人的 Webhook 地址
  2. 启用钉钉通知:开启/关闭钉钉推送
  3. 任务完成通知:任务完成时是否弹出通知
  4. 卡住检测通知:任务卡住时是否发出警告
  5. 卡住阈值:设置多久(秒)视为卡住(默认60秒)

通过 settings.yaml 配置

~/.dsh/settings.yaml 中添加:

task-pulse:
  dingtalkWebhook: 'https://oapi.dingtalk.com/robot/send?access_token=YOUR_TOKEN'
  dingtalkEnabled: true
  notifyOnComplete: true
  notifyOnStuck: true
  stuckThresholdMs: 60000  # 60秒

🔧 钉钉 Webhook 配置

1. 创建钉钉群机器人

  1. 打开钉钉群 → 群设置 → 智能群助手 → 添加机器人
  2. 选择"自定义(通过Webhook接入自定义服务)"
  3. 设置机器人名称和头像
  4. 安全设置选择"自定义关键词",填入"DSH"或"任务"
  5. 复制生成的 Webhook 地址

2. Webhook 地址格式

https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxx

3. 消息格式

插件使用 Markdown 格式发送通知:

{
  "msgtype": "markdown",
  "markdown": {
    "title": "✅ dsh 任务完成",
    "text": "### ✅ dsh 任务完成\n\n**📋 任务标题**: 优化通知内容\n**🤖 模型**: claude-opus-4-8-thinking(anthropic)\n**🧠 上下文窗口**: 200,000 tokens\n**⏱️ 耗时**: 4分59秒(14:30:02 → 14:35:01)\n**📝 回合数**: 2(平均 2分29秒/回合)\n**🔧 步骤数**: 21(平均 14秒/步)\n**🛠️ 工具调用**: 5 次\n**🏁 结果**: ✅ 完成\n\n**📊 Token 统计**:\n- 输入: 115,856(缓存读 12,000)\n- 输出: 17,929(推理 8,000)\n- 总计: 133,785\n- 速率: ~447 tokens/秒\n\n**📌 任务结果摘要**:\n> 已完成通知内容优化,新增了模型/提供商/耗时明细等字段…\n\n---\n*由 dsh task-pulse 插件发送 · 08-25 14:35:01*"
  }
}

🎯 使用场景

开发调试

  • 长时间运行的任务时,粒子动画让你知道任务还在跑
  • 任务完成自动通知,不用一直盯着屏幕

团队协作

  • 钉钉群通知让团队成员实时了解任务状态
  • 卡住检测及时发现问题,避免资源浪费

自动化监控

  • 结合钉钉机器人实现任务监控告警
  • 可自定义阈值和通知规则

📁 项目结构

dsh-task-pulse/
├── package.json          # npm 包配置
├── cordis.patch.yml      # DSH 插件注册
├── README.md             # 本文档
├── lib/
│   └── index.js          # Host 端(事件监听、钉钉推送)
└── client/
    ├── index.js          # Client 端(动画、通知 UI)
    ├── build.mjs         # 构建脚本
    └── dist/
        └── index.js      # 构建产物

🔍 工作原理

Host 端

  • 监听 session/event 事件,追踪任务状态
  • 统计 step/start / turn/end(含结束原因)等事件,汇总回合数、步骤数、工具调用次数
  • assistant/message 提取 Token 使用(输入/输出/推理/缓存)与最终回复摘要
  • request/context / request/header 提取提供商、模型、上下文窗口、输出上限
  • 检测卡住任务(超过阈值)
  • 通过钉钉 Webhook 发送富信息通知

Client 端

  • 注册侧栏入口按钮
  • 注册全局覆盖层(粒子动画、通知弹窗)
  • 定期查询 Host 状态,更新 UI
  • 提供配置面板

🛠️ 开发

构建

npm run build  # 构建客户端
npm run pack   # 打包 npm 包

发布

npm version patch  # 升版本
npm publish        # 发布到 npm

📝 更新日志

v0.1.1 (2026-08-26)

  • 📊 通知内容大幅增强:新增提供商/上下文窗口/输出上限、开始结束时间、平均回合&步骤耗时、工具调用次数、结束原因(完成/出错/中止/达上限)、推理&缓存 Token、Token 速率
  • 📌 新增任务结果摘要:通知附带最后一条助手回复的摘要文本
  • 🏷️ 标题兜底:无会话标题时使用首条用户输入作为任务标题
  • 🖥️ GUI 通知支持多行渲染(white-space: pre-line),面板展示补充提供商/工具调用/输入输出 Token
  • ⚠️ 任务出错时通知改为警示样式并附带错误信息

v0.1.0 (2026-08-25)

  • ✨ 初始版本
  • 🎨 粒子动画效果
  • 🔔 任务完成/卡住通知
  • 📱 钉钉 Webhook 推送

📄 许可证

MIT License

🔗 相关链接