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

scientific-figure-library

v0.8.1

Published

Local image-code knowledge library with native macOS and local Web clients, plus MCP and Skill for Pi, DeepSeek Harness (dsh), Claude, Codex, Cursor, and Wisp.

Readme

Scientific Figure Library

Website · English · 快速开始 · 用户手册(在线) · 协议说明 · Releases

Scientific Figure Library(SFL)是本机优先的 MCP 服务和 MCP App:把你自己的 科学图和代码收入本机一份全局 Library,审阅后发布成不可变 Release,再在 Claude Science、Wisp Science、Codex、Cursor、Pi、dsh 等宿主里跨项目复用。

图库目录由你指定,不会悄悄写进当前项目。服务器不执行绘图代码。默认检索顺序为 Local Published → FigureYa → Open Figure Modules → 已启用的动态个人 Provider。 Community 代码和旧资产保留用于显式兼容访问,但已冻结,且不再参与默认搜索 (includeInDefaultSearch: false)。你自己的图形仍以 Local Published 为权威。

本地客户端预览版

提供 macOS 原生 Apple Silicon / Intel 独立 DMG,以及内置 Node 的 Windows 与 Linux ZIP。均提供内置 Node 与使用本机 Node.js 22+ 的 no-node 版;图库预览按需下载。安装方式和签名限制见 本地客户端安装说明。macOS 预览版尚未经过 Developer ID 签名和 Apple 公证。

安装

从 https://github.com/xuzhougeng/ScientificFigureLibrary 安装。按
docs/QUICKSTART.md。需要 Node.js 22+。stdio MCP 名称 figure-library,
入口 dist/index.js。Wisp Science 用 npm run package:wisp 后安装插件。Cursor 用 npm run package:cursor,解压到 ~/.cursor/plugins/local/figure-library/。Pi:pi install npm:pi-mcp-adapter 后 pi install npm:scientific-figure-library。dsh:dsh plugin --profile web add scientific-figure-library。
先绑定本机全局绘图仓库(Library)和本地工作区。不要运行用户绘图脚本。

完整工具契约见 docs/PROTOCOL.md。

模板说明与内置 Skills

Wisp、Codex、Claude、Cursor 插件以及 Pi / dsh 使用的 npm 包均分发一个核心 figure-library Skill,描述、代码组织和 风格指导作为按需资料。普通 MCP 宿主可用 figure_library_get_skill 读取同源指导, 用 figure_library_get_candidate_images 或资源 URI 获取候选缩略图,再通过 figure_library_search_page 翻页;MCP App 为可选界面。复刻默认保持 参考模板的风格;真正绘图仍需要项目批准的 R/Python 环境和宿主执行/看图工具。

详情页以安全 Markdown 渲染需求描述、应用场景和数据特征,实际输入文件、代码文件、 依赖包默认可见;技术与验证信息保留在折叠区。旧模板只做兼容读取,不批量重写。 缺少论文背景时不会自动补造生物学结论。

开发验证

本地使用 Node.js 22+,执行 npm ci 和 npm run check。 PR 的基础 CI 覆盖 Linux、Windows、macOS 上的测试、类型检查、构建和 MCP smoke。 检查矩阵与合并门禁配置见 基础 CI。 推送稳定标签 vX.Y.Z 会打包本地客户端、宿主插件、npm 包和 Wisp 更新 feed,并上传到 GitHub Release。 维护者也可配置 AI 评论 bot,手动生成 Issue 回复建议和 PR 审查评论。

许可证

本仓库代码 MIT。用户导入的图保留导入时记录的许可证。

Open Figure Modules

个人模块使用一个内容仓库同时保存清洗后的模块源码和确定性 ZIP,不再拆分第二个 归档仓库:

<PERSONAL_MODULE_REPOSITORY>
├── modules/<moduleId>/       # 审核后的公开清洗模块
├── archives/<moduleId>.zip  # 从固定 source commit 生成的 ZIP
└── catalog/                  # 归档清单和准入记录

SFL 插件仍内置 assets/personal-modules/ 作为离线 bootstrap Catalog、预览/缩略图和许可说明。安装带更新器的版本后,SFL 会在 MCP 进程运行时异步检查个人仓 open-figure-feed 上的 signed feed;验证成功后原子切换本地 overlay。普通模板新增/更新/撤下不再需要重新打包插件。插件不包含完整 ZIP、Gallery 源图、私有数据、凭证或签名私钥。搜索不等待网络;figure_library_list_provider_sources 保持离线。官方 channel 只允许 configure autoRefresh 和显式 update,不允许 add/remove/trust_reset。

运行时的完整 Open Figure Modules 不放进插件,而是保存在已经绑定的全局 Library 下: source-packs/open-modules/。固定版本 archive 完整校验成功后会自动持久化,并保留 ZIP 和解压后的模板缓存。GitHub 仓库与固定 commit 仍是 canonical 身份;Gitee 镜像已随插件内置为默认国内下载加速来源,失败时回退 GitHub;用户仍可通过本地 override 覆盖传输顺序,但不能改变 canonical 身份。Local Published 仍直接读取全局 Library 的 store/,不会使用这个 Source Pack,也不会因为 Gitee 镜像而改变。 FigureYa 也遵循同样的写穿缓存规则,保存在并列的 source-packs/figureya/:固定 archive 校验成功后保留 ZIP,更新 figureya-source-pack.manifest.json,并写入派生的 templates/ 缓存。搜索和预览仍然只读, 只有获批的 Materialize Apply 才会执行这个持久化动作。 维护命令是离线的,并且不会创建仓库、commit、push、运行 R、安装依赖或修改 Gallery:

npm run modules:validate -- --check --repository <PERSONAL_MODULE_REPOSITORY>
npm run modules:archive -- --write --repository <PERSONAL_MODULE_REPOSITORY>
npm run modules:catalog -- --write --repository <PERSONAL_MODULE_REPOSITORY>
npm run modules:source-pack -- --write --repository <PERSONAL_MODULE_REPOSITORY>

SFL materialize 只读取或下载用户选中的固定 ZIP,校验字节和安全路径,按 template/full 选择文件并写入锁;codeExecutedBySflClient 始终为 false。