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-custom-logo

v1.0.2

Published

DSH web plugin: replace the DeepSeek Harness branding (tab favicon, sidebar wide logo, collapsed rail icon) with your own images — upload two pictures from the settings dialog, no manual resizing

Readme


给 DeepSeek Harness(dsh)换上你自己的品牌:安装后在设置弹窗里多一个「品牌设置」分区(与「通用 / 模型 / 插件」并列),选一张方形图、一张横向宽图,插件自动裁切缩放并替换 favicon 与侧边栏 Logo——免切图、免重启、升级不丢。

两张图,三处生效

  • 浏览器标签页 — 方形图居中裁切为 favicon,收藏夹图标同步更新
  • 展开侧边栏 — 横向宽图等比缩放,以 42px 高度替换原生文字标
  • 折叠窄栏 — 方形图缩为 36px 圆形图标

图片处理全部在浏览器端完成,上传后页面自动刷新生效,不需要重启服务,也不需要手动准备任何尺寸的切图。

安装

方式一:从 npm 安装(推荐)

dsh plugin --profile web add dsh-custom-logo

方式二:直接从 GitHub 添加

dsh plugin --profile web add github:dawsondx/dsh-custom-logo

方式三:clone 后安装(审阅源码 / 参与贡献)

git clone https://github.com/dawsondx/dsh-custom-logo.git
dsh plugin --profile web add ./dsh-custom-logo

安装后重启 dsh(dsh start --profile web 或你的启动脚本),设置弹窗即出现「品牌设置」分区。

使用

  1. 打开设置弹窗,在左侧导航选择「品牌设置」
  2. 「网页图标」卡片 → 选择图片 → 自动处理并刷新
  3. 「侧边栏 Logo」卡片 → 选择图片 → 自动处理并刷新
  4. 不满意随时重传;想回原版点「恢复默认」

两张卡片的当前图会以缩略图预览;面板支持中英文,跟随 dsh 界面语言。

工作原理

  • 客户端把选中的图片用 canvas 缩放为标准 PNG(方形 256×256 居中裁切;宽图 ≤1080×126 等比),POST 到本机 dsh 服务
  • 服务端写入 <DSH_HOME>/branding/(logo-128.png / logo-64.png / logo-wide.png),原子落盘
  • 每次 index 请求时动态注入:favicon <link> 重写 + CSS 隐藏原生 SVG(按稳定的 viewBox 属性匹配,不受构建哈希/类名顺序影响)、以背景图绘制自定义 Logo,URL 带 ?v=<mtime> 自动破缓存
  • 图片保存在 dsh 用户目录而非插件包内,插件升级不丢品牌图;dsh 升级也不覆盖本插件(patch 层挂载在用户 profile)

安全性

  • 上传/重置接口仅接受 loopback 来源(校验 peer socket 地址,非可伪造的 Host 头),局域网访问者无法改你的品牌图
  • 仅接受 PNG(魔数校验),单次上传上限 8MB,文件名白名单,不接受任意路径写入

常见问题

上传后没变化? 硬刷新一次(Ctrl+Shift+R)。注入 URL 已带版本号,一般普通刷新即可。

宽图比例多少合适? 侧边栏品牌区高 42px,3:1(如 126×42、540×180)最饱满;更宽的图会按高度等比缩窄,不会变形。

折叠窄栏的图标好小? 窄栏是 36px 圆形位,方形图会被缩到这个尺寸,建议主体图形不要太贴边。

怎么卸载? dsh plugin --profile web remove dsh-custom-logo,再删掉 ~/.dsh/branding/ 下的 logo-*.png 即完全还原。

升级 dsh 后还生效吗? 插件通过用户 profile 的 patch 层挂载,dsh 自身升级不覆盖;CSS 锚点使用稳定属性,小版本 UI 更新通常无需跟进。若 dsh 大改版重画了品牌区,欢迎提 issue。

开发

git clone https://github.com/dawsondx/dsh-custom-logo.git
cd dsh-custom-logo
npm run check   # 语法检查 lib/index.js 与 lib/client.js

无构建步骤:lib/index.js(服务端,ESM)与 lib/client.js(浏览器,手写 __ModuleLoader__ bundle)均为单文件、零第三方依赖。

致谢

许可证

MIT