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

whale-on-desk

v3.0.0

Published

A pixel-art whale desktop companion for DeepSeek Harness — it swims while your agents work and taps the glass when an approval is waiting.

Readme

whale-on-desk 🐳 鲸桌

中文 | English | 🏠 官网

DeepSeek Harness 的像素鲸鱼桌宠。 Agent 干活时它游泳,调工具时吐泡泡,请求批准时贴着屏幕敲玻璃

status license dsh

演示

它会做什么

鲸鱼住在 DeepSeek Harness 网页界面的一角,实时反映 Agent 的状态:

| Agent 在干嘛 | 鲸鱼在干嘛 | |---|---| | 任务运行中 | 快速游泳 🏊 | | 模型输出中 | 陪它思考,头顶思考泡泡 💭 | | 调用工具 | 吐一个带友好标签的泡泡(敲命令 / 读文件 / …) | | 请求批准 | 贴住屏幕边缘敲玻璃 + 琥珀色脉冲,浏览器标签标题闪 🔔 | | 任务完成 | 空翻庆祝 + 开口汇报:"搞定! 3 分 12 秒,跑了 8 个工具,改了 5 个文件" 🎉 | | 任务失败 | 下沉,眼睛变横线 😢 | | 上下文约 62% / 82% | 喂鱼时间——"还能吃一点 / 吃饱了" 🍤 | | 闲置 5 分钟 | 主动讨活:"我闲着呢,有活吗?" | | 闲置 10 分钟 | 睡着 💤 | | 本地 00:00–06:00 | 戴睡帽 🌙 | | 悬停鲸鱼 | 显示当前任务统计牌(耗时 / 工具数) | | 点击鲸鱼 | 惊吓反应 + 随机台词("别戳啦") | | 单击 / 双击它 | 吱吱叫 / 惊醒炸毛(带音效) |

可以拖到任何位置,位置自动记住。音效为实时合成,零音频文件。

安装

dsh plugin --profile web add whale-on-desk

打开(或重启)DSH 网页界面即可。无需 API Key,无需配置。

DSH Desktop(社区 Electron 桌面版)同样支持——它跑的就是官方 Web 客户端,插件体系和 DSH home 与网页版一致。在应用托盘打开 Open DSH Terminal,执行 dsh plugin add whale-on-desk,重启 DSH Desktop 即可。

卸载 / 配置

dsh plugin --profile web remove whale-on-desk

睡眠超时可在 cordis.patch.yml 配置(sleepAfterMinutes,默认 10)。右键点鲸鱼有小菜单(静音 / 回到默认位置 / 换桌宠 / 隐藏——隐藏后双击右下角 🐳 恢复)。配置 allowPreview: true 会额外开启 POST /whale/preview {"state":"glass-tap"}(传 {"state":null} 恢复)——方便录演示和截图,默认关闭。

成长系统与 Agent 语音

鲸鱼会陪你长大——完成任务获得经验,开启会话获得经验,陪伴时长持续累积。8 个称号等你解锁。升级和解锁称号时鲸鱼开口庆祝。悬停可见等级、称号和经验进度。零负反馈:永不扣分,永不惩罚。

whale_say 工具——你的 Agent 可以让鲸鱼说话和表演。鲸鱼成了 Agent 的通知通道。

水族馆模式

水族馆

右键鲸鱼 → 🐠 水族馆,进入全屏水族箱:手绘水体背景(自动适配明暗主题)、海草摇曳、随工具调用生长的进度珊瑚计数本回合工具数的小鱼群——大鲸鱼本体就是 Agent:等批准时冲向缸边敲玻璃(警示浮标闪烁)。水层保持半透明且点击穿透,可以边写代码边养鱼。按 Esc(或 ✕ 按钮)回到桌面伙伴模式。

AI 宠物工坊

插件向 harness 注册了 pet-forge 技能:直接对 Agent 说"给我做一只粉色章鱼桌宠"——它会设计精灵图、跑和内置鲸鱼同款的像素审计、切出 GIF、装成宠物包并当场热切换,全程无需重启。(需要 PATH 里有 ffmpeg。)

自定义桌宠

把一套精灵放进 ~/.dsh/whale-on-desk/pets/<名字>/——一个把状态映射到 GIF 文件的 manifest.json,加上 GIF 本体:

{ "idle": "idle.gif", "glass-tap": "tap.gif" }

没提供的状态回退到你的 idle,没带的文件回退到内置小鲸鱼。右键桌宠即可切换,立即生效,无需刷新。相关配置:pet(启动时激活的桌宠名)、petsDirenabled: false(彻底卸载桌宠)。

工作原理

  • 宿主端(lib/index.js):Cordis 插件,监听 session/event(回合、流式块、工具调用、审批——全部是持久会话事件),折叠进一个小状态机(lib/pet-machine.mjs);在 DSH web 服务器上暴露 /whale/state/whale/poke/whale/assets/*。只读:不碰你的会话和文件。
  • 浏览器端(lib/client.js):经 DSH shell 模块加载器注册,挂载到 shell.overlay 槽位,渲染当前状态的精灵图(500ms 轮询),播放合成音效,记忆位置。
  • 美术流水线(tools/process-sprites.mjs):AI 精灵图进,干净循环 GIF 出——切片、精确 8 色吸附(纯最近色计算)、洋红抠像、装饰剔除。

自己做新状态

docs/GPT_PROMPT_PLAYBOOK.md——用 AI 出图工具生成新鲸鱼动画的完整工作流,以及把一张图变成上线状态的一条命令。

目录结构

art/     AI 工作流的源精灵图(仅仓库)
assets/  发布运行时:状态 GIF + manifest.json
docs/    美术规格、提示词手册、权威角色参考图
lib/     插件宿主端 + 浏览器端 + 状态机
test/    状态机单元测试
tools/   精灵图处理流水线 + 测试网格生成器

致谢与声明

动画语法与像素规范致敬 clawd-on-desk(仅风格参考——未共享任何素材或代码;clawd 美术归 Anthropic 所有)。鲸鱼美术由 AI 辅助生成。与 DeepSeek 无官方关联。MIT 许可。