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-workpet

v0.2.0

Published

Work pet capability for DeepSeek Harness: a floating pet whose actions mirror what the current Session is doing, with swappable appearances contributed by other plugins.

Readme

dsh-workpet

English | 中文

DeepSeek Harness 的悬浮工作宠物,用动作表现当前会话在做什么:思考时歪头、写作时敲键盘、调用工具时跑起来、需要你时挥手、一轮结束时欢呼、闲着没事就打瞌睡。

宠物是一种定义了接口的能力,而不是一张固定的图。dsh-workpet 负责接口与行为;形象是注册进来的独立 npm 包。默认形象是一只手绘绘本画风的橘白小猫;其它组合包可以贡献更多形象:每个已启用的形象都是屏幕上单独的一只宠物,开关形象插件就能挑选要哪些宠物。

目录


包

| 包 | 角色 | 位置 | |---|---|---| | dsh-workpet | Service Definition(ctx.workpet)+ Consumer(悬浮宠物、形象卡片、动作预览);组合包 | 本仓库 | | dsh-workpet-cat | Service Provider:默认小猫;随 dsh-workpet 一起安装 | 本仓库 | | dsh-workpet-parrot | Service Provider:玄凤鹦鹉,纯 JavaScript、免编译;开发新宠物的模板 | 独立仓库 |

角色、接口与状态规则见 docs/architecture.zh.md。

安装

安装 dsh-workpet 组合包时会一并装上默认小猫:dsh-workpet-cat 是 dsh-workpet 的依赖,组合包会插入它的那一行。其它形象(如 dsh-workpet-parrot)是独立的组合包。

从 npm 安装:在 Harness 会话里让智能体执行 plugin_manager 的 install_bundle:

install_bundle  dsh-workpet          # 宠物 + 默认小猫
install_bundle  dsh-workpet-parrot   # 可选:玄凤鹦鹉

从源码安装:先构建,再安装目录:

pnpm install
pnpm run build
install_bundle  /absolute/path/to/dsh-workpet/packages/workpet/workpet   # 宠物 + 默认小猫
install_bundle  /absolute/path/to/dsh-workpet-parrot                     # 可选:玄凤鹦鹉

如果是 CLI 管理的 profile(桌面应用的 desktop profile 只能由应用自己修改),用 dsh plugin --profile <profile> add dsh-workpet(或 add link:/absolute/path/to/dsh-workpet/packages/workpet/workpet),dsh-workpet-parrot 同理。

然后刷新 Harness 窗口。DeepSeek Harness 0.2.0 及更早版本首次安装后需要重启一次应用:这些版本只在启动时读取组合包的依赖,重启前小猫那一行会报 "failed to import"。更新的版本会立即生效。

使用

屏幕上的宠物

装好后,宠物们站在 Harness 窗口右下角、输入框上方,用动作表现主视图里的会话正在做什么。

  • 拖动:把宠物拖到任意位置。每只宠物各自记住位置,刷新后也还在。
  • 点一下(或者聚焦后按回车)就是摸摸它:它会眯眼呼噜、冒出爱心。只有被点的那只有反应。
  • 鼠标悬停:小气泡显示会话正在做什么。会话等你处理、一轮刚完成或出错时,每只宠物下方的气泡都会常驻,不用悬停。
  • 所有宠物表现的是同一个会话:同时启用小猫和玄凤鹦鹉时,模型写作它们一起敲键盘,等你批准时它们一起挥手。

挑选宠物

没有“选择形象”的设置:每个已启用的形象插件都是屏幕上的一只宠物,在插件管理里挑选即可。

  • 添加宠物:安装一个形象组合包,例如 dsh-workpet-parrot。它会立刻出现在其它宠物旁边,不用做任何选择。
  • 移除宠物:关闭它的插件。玄凤鹦鹉在插件列表里是独立的组合包;默认小猫是工作宠物组合包页面上、宠物区域下方的 dsh-workpet-cat 行。重新打开后,宠物会回到你上次放的位置。
  • 新宠物会排在已有宠物的左边,之后可以随意拖动。

工作宠物页面

插件 → 工作宠物 页面展示屏幕上的所有宠物,并能预览它们的每个动作,不用真的等会话睡着或出错。

  • 形象卡片:每个已启用的形象一张卡片,有名称、描述和一个小舞台,宠物在舞台上表演所选动作,头顶显示状态气泡。最后一张卡片说明怎样获取更多宠物,并附上 dsh-workpet-parrot 的链接;一只宠物都没启用时,它会告诉你怎样把小猫找回来。标题旁的 GitHub 按钮会在浏览器里打开本仓库,也就是这份使用说明。
  • 动作预览:所有动作都是按钮,分为日常、工作中、等你、回合结束、互动五组。点一个就高亮它,上面所有宠物同时换成这个动作,方便并排对比。
  • 工具种类:选中“用工具”时会多出一排工具种类(终端、搜索、编辑器、网络、子智能体、计划、提问、其它),点哪个,宠物身上的角标就换成哪个。

宠物的动作

| 会话状态 | 活动 | 小猫 | |---|---|---| | 没有打开会话 | absent | 闭眼坐着 | | 空闲 | idle | 坐着眨眼、摇尾巴 | | 空闲一段时间 | sleeping | 蜷成一团睡觉 | | 模型思考 | thinking | 歪头向上看 | | 模型写作 | writing | 在小笔记本上打字 | | 调用工具 | tool | 在飘落的树叶里奔跑,带工具角标 | | 请求重试 | retrying | 螺旋眼,晕乎乎 | | 等你批准 / 回答 / 看计划 | awaiting | 举爪挥手 | | 子智能体在跑 | delegating | 看着身边的小猫崽 | | 一轮完成 | done | 开心地跳起来 | | 一轮失败 | error | 耳朵耷拉、掉眼泪 | | 被摸 | petted | 眯眼呼噜 | | 被拖拽 | dragged | 被拎着晃腿 |

dsh-workpet-parrot 的玄凤鹦鹉为每个活动也都有自己的姿势:

开发自己的宠物

从 dsh-workpet-parrot 开始。它把一个完整的形象放在一个纯 JavaScript 文件里,免编译、不用 TypeScript,所以要改的几乎全是图像本身:

  1. 复制这个仓库,改掉包名、cordis.patch.yml 里的 Loader 行、window.__ModuleLoader__.load 里的 id、形象的 id,以及 CSS 前缀 wpp-。
  2. 替换 client.js 里的图像:调色板、身体部件、每个状态一个姿势,都是 100 × 80 画布里的 SVG 标记。它的 README 列出了所有状态、可复用的部件和动画规则。
  3. 作为独立组合包,和 dsh-workpet 一起用 install_bundle 安装,它就会出现在屏幕上小猫的旁边。打开 插件 → 工作宠物,点动作按钮逐个检查每个姿势。

宠物要实现的接口(WorkpetSkin、WorkpetScene、ctx.workpet)见 docs/architecture.zh.md。如果想用 TypeScript 编译的方式写,参考 dsh-workpet-cat。

开发

pnpm run build       # 所有包:lib/index.js、lib/client.js(dsh-workpet 还有 lib/types)
pnpm run typecheck
pnpm run test        # 纯逻辑测试 + 构建产物冒烟测试
pnpm run verify      # 以上三项

目录结构仿照 DeepSeek Harness monorepo:包位于 packages/<group>/<package>/,每个包有 Host 半侧(src/index.ts)和 Client 半侧(src/client/)。约定和 npm 发布流程见 AGENTS.md。

README 里的截图是从构建产物渲染出来的:改了界面或图像后,先 pnpm run build,再运行 node scripts/screenshots.mjs --parrot ../dsh-workpet-parrot(需要 Google Chrome 和一份 dsh-workpet-parrot 代码),它会重写 docs/images/。

文档

  • 架构:能力角色、接口、数据流、状态优先级、编写新形象。
  • 包分组。