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-anthropic-fonts

v0.3.0

Published

Switch the DSH web interface to Anthropic Sans Web Text and model conversation to Anthropic Serif Web Text.

Readme

dsh-anthropic-fonts

Awesome DSH Plugin

给 DeepSeek Harness Web 界面换上 Anthropic 字体:

  • 界面(侧栏、标题、按钮、设置):Anthropic Sans Web Text
  • 模型对话(Markdown 正文 / 标题 / 表格):Anthropic Serif Web Text
  • 代码 / 代码块:Anthropic Mono Variable

中文回退到思源字体(Noto Sans SC / Source Han Sans SC / Noto Serif SC),未安装时回退到系统字体(苹方 / 微软雅黑 / 宋体)。

字体

重要:插件不内置字体。npm 包不随包分发字体文件;安装插件后还需手动安装字体(见下表),然后刷新 / 重启 web 才会生效。

插件引用的三个 Anthropic 拉丁字体(建议安装,英文 / 代码效果最佳):

| 字体 | 用途 | 获取方式 | |---|---|---| | Anthropic Sans Web Text | 界面 | 仓库 fonts/ 下载,或从 Claude 应用提取 | | Anthropic Serif Web Text | 模型对话 | 仓库 fonts/ 下载,或从 Claude 应用提取 | | Anthropic Mono Variable | 代码 | 仓库 fonts/ 下载,或从 Claude 应用提取 |

安装:Windows 双击每个 .ttf → 点「安装」;macOS 用「字体册」导入。安装后刷新 / 重启 web 生效。

字体版权归 Anthropic 所有,仅供个人使用,不适用 MIT 许可(详见 LICENSE 字体声明)。

中文无需额外安装:会回退到思源黑体 / 宋体(Noto Sans/Serif SC、Source Han),没有则用系统字体。

安装

标准的 dsh bundle 插件 —— 与 dsh-whale-animation 同一种形态。

CLI(推荐)

已发布到 npm,一条命令安装:

dsh plugin --profile web add dsh-anthropic-fonts

也可以从 GitHub 安装:

dsh plugin --profile web add "github:Isilsolme/dsh-anthropic-fonts"

dsh plugin add 会在 profile 内执行 pnpm add,并自动把 bundle 追加到 dsh.profile.bundles。之后重启 web 即可生效。

⚠️ 安装插件后还需手动安装字体文件(见上方「字体」)——npm 包不随包分发字体。

手动安装

// ~/.dsh/profiles/web/package.json
{
  "dependencies": {
    "dsh-anthropic-fonts": "^0.3.0"
  },
  "dsh": {
    "profile": {
      "bundles": [
        "@deepseek-ai/dsh-base",
        "@deepseek-ai/dsh-web-app",
        "dsh-anthropic-fonts"
      ]
    }
  }
}

然后:

cd ~/.dsh/profiles/web && pnpm install

本地调试时,可用 "dsh-anthropic-fonts": "link:C:/path/to/dsh-anthropic-fonts" 指向本地目录。

卸载 / 关闭

dsh plugin --profile web remove dsh-anthropic-fonts

(或从 dependencies 和 bundles 里移除,再 pnpm install)。重启即恢复默认字体。

与 DSH 自带字体设置的关系

DSH 0.2 起「设置 → 外观」里有「正文字体 / 代码字体」。插件针对的是**这两栏留空(默认)**的情况:如果你在那里填了自己的字体,DSH 会把它写成 body 上的内联变量,优先级高于插件注入的样式表——正文和代码会回落到你填的字体(对话衬线仍由插件接管)。想用插件的字体,保持这两栏为空即可。

兼容性与权限

| 项目 | 声明位置 | 值 | |---|---|---| | DSH 范围(DSH 实际校验) | engines.dsh | >=0.1.0-rc.7 <0.3.0 | | DSH 范围(文档 / 市场展示) | dsh.compatibility.dsh | >=0.1.0-rc.7 <0.3.0 | | DSH 逐版本 | dsh.compatibility.dshReleases | 见下 | | Node.js | engines.node | >=22 | | Profile | dsh.compatibility.profiles、dsh.client.platform | web |

DSH 0.2 起,启动 profile 前会先按 engines.dsh(没有则看 @deepseek-ai/dsh* 的 peer 依赖)做一次兼容性 preflight,不满足的插件行会被直接禁用。这里写 engines.dsh 是为了让超出范围时失败得明确,而不是静默不生效。

dshReleases 对每个 DSH 版本逐项写 compatible / incompatible / unknown。只有实际跑过一次性 Profile 冒烟验证的版本才写 compatible;范围覆盖但未逐版本验证的一律是 unknown,范围声明不会被当作已验证。

已验证版本(一次性 Profile,DSH_HOME 指向临时目录,不触碰真实 Profile):

| DSH 版本 | 安装 | 启动 | 卸载 | |---|---|---|---| | 0.1.5-alpha.2 | ✅ | ✅ | ✅ | | 0.1.5-rc.1 | ✅ | ✅ | ✅ | | 0.1.5-rc.2 | ✅ | ✅ | ✅ | | 0.2.1-rc.5 | ✅ | ✅ | ✅ |

0.2.1-rc.5 额外做了浏览器内验收:在真实页面里读取计算样式,界面 --dsw-font-family 为 Anthropic Sans,Markdown 容器 / h1–h4 / p / strong / em / 表格为 Anthropic Serif,行内代码与代码块为 Anthropic Mono,且字号、行高、字重与 DSH 默认值逐项一致(h1 21px/700/30px、正文 14px/24px、表格 13px/22px 等)。

验证步骤(每个版本各跑一次):

DSH_HOME=/tmp/dsh-smoke dsh plugin --profile web add /path/to/dsh-anthropic-fonts  # 安装
DSH_HOME=/tmp/dsh-smoke dsh --profile web --dump-config                            # 入口 anthropic-fonts 出现在组合配置里
DSH_HOME=/tmp/dsh-smoke dsh --profile web --port 39123 --no-open                   # 启动并输出访问地址
DSH_HOME=/tmp/dsh-smoke dsh plugin --profile web remove dsh-anthropic-fonts        # 卸载

覆盖到的证据:依赖写入 profile、bundle 追加进 dsh.profile.bundles、bundle patch 插入入口 anthropic-fonts(且没被兼容性 preflight 禁用)、web 服务正常监听并返回页面(启动载荷里已注册 dsh-anthropic-fonts/client.js)、卸载后依赖与 bundle 行都被移除。未覆盖:独立安全审计。

权限:客户端只往 document.head 注入一个 <style>;不读写文件、不访问网络、不执行命令、不接触凭据。Host 半边(lib/index.js)为空。

新的 DSH 版本发布后:在一次性 Profile 里重跑上面四步,把该版本写进 dsh.compatibility.dshReleases(compatible),并提升本插件 SemVer 后推送。

原理

DSH 0.2 起排版 token 分成两层:

  • --dsh-font-family-{text,code} 是唯一事实来源(「设置 → 外观」里的正文字体 / 代码字体写的就是它们);
  • theme 在 body 上把它们拼进 --dsw-font-family / --ds-font-family-code,其余所有排版 token 再引用这两个。

所以插件覆盖的是 --dsh-* 这一层。只写 --dsw-font-family 在 0.2 起会失效:body 上那条派生声明会盖掉 :root 上的继承值——这正是 0.2.1 版本更新后插件「整体回到默认字体」的原因。0.1.x 没有 --dsh-* 层、直接读 --dsw-font-family,因此两套都写,两条曲线同时可用。

对话的衬线来自 Markdown 简写 token。0.2.x 起 Markdown 正文与标题改用 font: var(--dsw-font-markdown-h1) 这类简写,字体族已经烧进简写值里,单独的 --dsw-font-markdown-*-font-family 不再被任何选择器读取。插件改用宿主自己的 -font-style / -font-weight / -font-size / -line-height 分量重建这些简写,只把字体族换成衬线:字号、行高、字重仍然跟着 DSH(包括设置里的字号调整),分量缺失时回退到 DSH 默认值,0.1.x 也照常工作。

代码字体走 --dsh-font-family-code / --ds-font-family-code;终端字体(--dsh-font-family-terminal)不在插件范围内。

注入的 <style> 归属 client fiber,卸载时一并清理。

结构

  • lib/index.js —— Host 半边(空;字体效果只在浏览器)
  • lib/client.js —— Client 半边(注入字体 CSS 变量覆盖)
  • cordis.patch.yml —— bundle patch,插入插件行
  • fonts/ —— 三个拉丁字体文件

参考

字体栈参考了 blaxisomu/typora_claude 的实现(拉丁用 Anthropic Web 字体、中文回退思源字体)。

许可

MIT