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

dsh-my-plugin

v0.2.0

Published

DSH Web client plugin: one OS-level notification when a session finishes while you are not watching it (not selected, tab hidden, or window unfocused)

Readme

dsh-my-plugin

English | 中文

一个 DeepSeek Harness Web 客户端插件:当会话运行结束时,只要你不在看它——无论是没选中、切到了其他标签页,还是把浏览器切到了后台——就会发出一次操作系统级系统通知。

触发点与侧边栏绿色完成点的置位逻辑共用同一条 running→idle 边沿,两个界面对「完成」的含义因此保持一致。只有你真正在看的会话(已选中且页面在前台)才不通知;一旦你切到其他标签页或其他应用,即使是那个选中会话完成,也会通知你。通知正文优先使用宿主已投影的会话持久标题,否则使用其显示标题。

通知权限在启动时、浏览器仍显示提示框时请求一次。观察器实时读取权限,因此在浏览器设置里稍后授予的权限无需刷新即可生效;被拒绝的权限让观察器保持安静。

安装

将包安装到你启动 Web GUI 所用的 profile:

dsh plugin --profile web add dsh-my-plugin

然后向该 profile 的 patch 层($DSH_HOME/profiles/web/cordis.patch.yml)插入一条 dsh.client 行:

- insert:
    - id: session-completion-notify
      name: 'dsh-my-plugin'

@deepseek-ai/dsh-client-modules 会通过包的 dsh.client 声明发现该行并提供浏览器半身,无需其他配置。卸载时移除该行并执行 dsh plugin --profile web remove dsh-my-plugin

从本地检出安装

dsh plugin --profile web add ./session-completion-notify

从 GitHub 安装

Git 安装拉取的是源码而非构建产物。本包直接发布纯 JavaScript、无构建步骤,因此可以直接安装:

dsh plugin --profile web add github:limingboGitHub/dsh-my-plugin

行为

  • 插件订阅 ctx.sessions.list —— 运行时在每次会话列表变更时重新发布的 store —— 并为每个会话保留上一次观察到的 running 位。
  • 首次观察只记录该位,因此加载时已经空闲的会话保持安静。
  • 只要用户没在看某个会话(没选中、标签页隐藏、或窗口失去焦点),它的真→假边沿就恰好触发一次通知;已选中的会话仅在页面可见且聚焦时保持安静。
  • 同一会话再次运行会开启新一轮观察,所以每次没被盯着的完成都会再次通知。

开发

cd session-completion-notify
pnpm install
pnpm test

测试会桩掉浏览器 Notification API,并用一个受驱动的会话列表 store 走完各完成边沿场景,包括 fiber 拆除(HMR 安全性)。

模型体验

无:本包为人类在操作系统的通知面上渲染会话列表状态,不触及 prompt、消息、schema、流或工具结果。

KV Cache effect

无;本包从不组装或发送 provider 请求。

已知限制与暂缓事项

  • 部分引擎的权限提示依赖用户手势 —— WebKit、旧版 Chromium 只在用户手势里展示 Notification.requestPermission() 的提示框,因此启动时的请求在这些浏览器上可能被静默丢弃,用户也看不到开启通知的入口;侧边栏绿点仍是始终在线的完成提示。在设置页里提供从点击处请求权限的开关暂缓。
  • 通知基于边沿而非计数 —— 在一次列表快照内 running→idle→running 的连续状态帧被观察到的是一个折叠后的位,所以一个会话在下次快照前完成又立即重跑可能被漏掉。基于计数的信号需要新的线路面。

许可证

MIT