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

mc-icons

v1.10.1

Published

Parsing markdown file to replace item names into item icons.

Readme

img E2E-E Icons

This TS-Node CLI app designed to automatically turn text in Markdown files into Minecraft's item icons, parsing their names or brackets.

Cli program demonstartion

Examples

Modpack Enigmatica 2: Expert - Extended using this tool for changelogs.

| Description | Capture | Result | |-------------|---------|--------| | Ignore markdown links | [docs](https://example.com) | — | | Use numbers as metadata | [Flag] (1)[Flag] (0) | FlagFlag | | Specify mod by name, shorthand or abbreviation | [Ash] (forestry)[Green wall] (Actually Additions)[Fan] (cyclicmagic) | AshEthetic Green WallFan | | Items with exact match | [Beacon] | Beacon | | Names match case-insensitively | [beacon] | Beacon | | Item from Minecraft picked first | [Glass] | Glass | | Output first items when all share one icon | [Advanced Pocket] (CC) | Advanced Pocket Computer | | Ignore checkbox [x] and empty captures | [x] | — | | Unknown names are left untouched | [ZZZNonExistentItemZZZ] | — | | Add (every) to get all matching items | [Mossy Wall (every)] | Mossy Cobblestone WallMossy Stone Brick Wall | | Add (any) to pick only the first match | [Mossy Wall (any)] | Mossy Cobblestone Wall | | Capture by full id <mod:name:meta:{nbt}> | [<tconstruct:large_plate:0:{Material:"fierymetal"}>][<minecraft:coal:1>] | Fiery Large PlateCharcoal | | Use (fluid) postfix to get a fluid | [Enriched Lava] (fluid) | Enriched Lava | | Predefined placeholders | [<placeholder:pickaxe:3>][<placeholder:jackhammer:15>][<placeholder:null>] | Placeholder pickaxe:3Placeholder jackhammer:15Placeholder null |

Usage

No install, no setup — one command. With NodeJS present:

npx mc-icons README.md

Write [Item Name] (options) anywhere in a Markdown file, run the command, and the file is rewritten in place with the matching Minecraft icons. The tool ships prebuilt with its icon database, so the first run is ready immediately and will interactively prompt you whenever a name is ambiguous.

Options

> npx mc-icons --help output:

Parsing markdown file to replace item names into item icons. (mc-icons)

USAGE mc-icons [OPTIONS] [INPUT]

ARGUMENTS

  INPUT    input file to mutate

OPTIONS

  -t, -threshold, --treshold=<treshold>    Levenshtein name mistake threshold (Default: 0)
                        -x, --max=<max>    Maximum amount of icons in multiple results (Default: 64)
                      -r, --repo=<repo>    Repository to make short links to (Default: https://cdn.jsdelivr.net/gh/Krutoy242/mc-icons@master/i/)
                -m, --modpack=<modpack>    Modpack shortand to filter icons, "e2ee" for example
                           -s, --silent    Do not any prompt
                            -o, --short    Shorten long links with is.gd (Default: true)
                     --no-o, --no-short
                          -d, --discord    Interactive picker for Discord ANSI icons (Default: false)

Developing

Everything is automated — you make commits, the rest regenerates and publishes itself.

One-command setup

pnpm install

That's it. A prepare lifecycle step installs the git hooks and builds the project, so a fresh clone is ready to work immediately. (Requires pnpmcorepack enable if you don't have it.)

Regenerating the icon database

Icons come from a live Minecraft instance, so this is the one step that needs your machine's game data. Collapsed into a single command:

  1. Install the IconExporter and JEIExporter mods.
  2. In-game, run /iconexporter export 64 (note this issue: a resized MC window can emit 32×32 despite the 64), then export JEI data (default ctrl+J).
  3. Run:
    pnpm data
    The first run is interactive — it auto-detects common launcher locations and asks for your instance path, the IconExporter sub-folder, and the modpack short id, then remembers them in mcicons.config.json (gitignored). Later runs are silent. It regenerates assets/assets.db, copies new icons into i/, and git-stages the result for you (no more manual add-new-images). Use pnpm data --reconfigure to change the saved paths.

What happens automatically

  • On commit (pre-commit hook, kept under ~3s): staged files are eslint --fixed via the eslint_d daemon (the first commit of a session warms it in ~6s, every commit after is ~instant), and the README autogen blocks are regenerated only when their source (src/tool/examples.ts or src/cli.ts) changes.
  • On push to master (GitHub Actions): CI builds & tests on Linux + Windows and lints on Linux; semantic-release then derives the version, tag, CHANGELOG.md, GitHub release, and npm publish from your commit messages. Publishing requires an NPM_TOKEN secret in the repo settings.

Author

  • https://github.com/Krutoy242