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

@koishi-ce/registry

v1.0.5

Published

Scan Package Manager for Koishi Plugins

Readme

@koishi-ce/registry

简体中文 | English

Koishi 插件市场的扫描与清单库,移植自上游 koishijs/webui 的 packages/registry。它负责从 npm registry 搜索并分析 Koishi 插件包、判定与目标框架版本的兼容性、以及扫描本地已安装的插件——是插件市场与依赖管理的数据底座。

主要导出

  • Scanner(默认导出):远程扫描器,两阶段工作——collect() 分页调用 npm registry 搜索接口(页间留 margin 重叠抗数据变动),analyze() 并发拉取逐包详情,按 peerDependencies.koishi 与目标版本范围的 semver intersects 筛选兼容版本,并填充 manifest、短名、分类、发布时间等展示字段。静态方法 isPlugin 识别 @koishi-ce/plugin-*、@koishijs/plugin-* 与 koishi-plugin-* 三种命名,isCompatible 判定兼容性。
  • LocalScanner:扫描 baseDir 及其全部祖先目录 node_modules 中的已装插件,不发任何网络请求。
  • 工具函数:getPluginShortname(剥离三种插件名前缀)、resolvePackageJson、isResidentInCache(判定包是否已驻留内存)、conclude(把 package.json 的 koishi 字段与关键词归纳为结构化 Manifest)。
  • 类型:PackageJson / Manifest / SearchObject / SearchResult / RemotePackage 等。

HTTP 请求不由本包发出:构造 Scanner 时注入 request 函数,便于宿主复用自身的 HTTP 服务与代理配置。

面向谁

普通用户无需安装。本包被 @koishi-ce/plugin-market(市场与依赖管理插件)消费;resolvePackageJson 与 isResidentInCache 采用纯文件系统实现,规避 Bun 解析器对失败解析的进程内快照缓存,这是「市场装完插件无需重启即可加载」防御链的一部分。

许可证

MIT。本包是上游 koishijs/webui 的社区再分发,版权归属见 NOTICE。


English

The market scanning and manifest library for Koishi plugins, ported from packages/registry of the upstream koishijs/webui. It searches and analyzes Koishi plugin packages from the npm registry, determines compatibility with a target framework version, and scans locally installed plugins — the data foundation of the plugin market and dependency management.

Key exports

  • Scanner (default export) — two-phase remote scanning: collect() pages through the npm registry search API (with overlapping margins between pages), then analyze() fetches per-package details, filters versions by semver intersection with peerDependencies.koishi, and fills in manifest, shortname, category and time fields. Static helpers isPlugin (recognizing @koishi-ce/plugin-*, @koishijs/plugin-* and koishi-plugin-*) and isCompatible.
  • LocalScanner — scans node_modules of the base directory and all ancestor directories, with zero network requests.
  • Utilities — getPluginShortname, resolvePackageJson, isResidentInCache, conclude, plus the PackageJson / Manifest / SearchResult types.

No HTTP is performed by this package itself: a request function is injected into the Scanner constructor so hosts can reuse their own HTTP service and proxy settings. resolvePackageJson and isResidentInCache are deliberately pure-fs to dodge Bun's in-process snapshot caching of failed resolutions — part of the "no restart needed after installing a plugin" defense chain used by @koishi-ce/plugin-market.

License

MIT. Community redistribution of upstream koishijs/webui; see NOTICE for attribution.