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

material-eza

v0.1.0

Published

Material Design icons for ls — installs a Nerd Font, eza, and a Material icon theme (473 mappings) with zsh aliases in one command

Readme

material-eza

Material Design icons for ls. One command installs a Nerd Font, eza, and a Material icon theme — 257 file extensions + 216 file/folder names mapped to Material Design glyphs — and aliases ls/ll/la/lt in your zsh.

󰉋 src        󰌠 main.py       󰛦 app.ts        docker-compose.yml
󰩦 tests      󰗀 index.html   󰅩 data.json    󰂺 README.md

Install

curl (recommended):

curl -fsSL https://raw.githubusercontent.com/deepakmarathe/material-eza/main/install.sh | bash

Homebrew:

brew tap deepakmarathe/material-eza https://github.com/deepakmarathe/material-eza
brew install --HEAD deepakmarathe/material-eza/material-eza
material-eza

npm:

npx material-eza

Then set your terminal font to a Nerd Font (e.g. JetBrainsMono Nerd Font — the installer installs it) and open a new terminal.

Options

install.sh [--no-font] [--no-aliases] [--uninstall]

| Flag | Effect | |---|---| | --no-font | skip the Nerd Font step (you already use one) | | --no-aliases | install the theme only; leave ~/.zshrc untouched | | --uninstall | remove the theme + zsh block (keeps eza and fonts) |

Env overrides: MATERIAL_EZA_FONT_CASK (brew font cask), MATERIAL_EZA_ZSHRC (rc file to edit).

What it does

  1. Nerd Font — checks for any installed Nerd Font; installs JetBrains Mono Nerd Font if missing (brew cask on macOS, ~/.local/share/fonts on Linux).
  2. eza — installs via brew/apt/dnf/pacman/zypper/cargo if missing.
  3. Theme — installs theme.yml to ~/.config/eza/theme.yml (backs up any existing one). On macOS it also symlinks ~/Library/Application Support/eza/theme.yml, which is where eza actually looks by default there.
  4. zsh — appends one marker-fenced block to ~/.zshrc (idempotent — re-running replaces it):
export EZA_CONFIG_DIR="$HOME/.config/eza"
alias ls='eza --icons=auto'
alias ll='eza -l --icons=auto --git'
alias la='eza -la --icons=auto --git'
alias lt='eza --tree --icons=auto --level=2'

How the mapping stays correct

theme.yml is generated, never hand-edited. scripts/generate.py holds human-readable tables (py → language_python, components → puzzle, …) and resolves every name against Nerd Fonts' official glyphnames.json at build time. An unknown glyph name aborts the build, so a typo can't ship a wrong or missing icon. test/smoke.sh then runs the real eza against a fixture tree and asserts the exact codepoints rendered.

Regenerate after editing the tables:

python3 scripts/generate.py && test/smoke.sh

FAQ

Why don't I see colored VS Code–style folder icons? Terminals render font glyphs, one color per cell — multi-color SVG icons like VS Code's are technically impossible in (almost all) terminals. This is the closest a terminal gets: the Material glyph shapes, tinted by eza's color scheme.

Icons show as boxes (□)? Your terminal font isn't a Nerd Font. Set it in your terminal profile settings.

Why don't icons appear when piping (ls | grep …)? eza disables the theme along with colors for non-TTY output — same behavior as ls colors.

A filetype I use is missing. Unmapped types fall back to eza's built-in icons, so nothing is ever blank. PRs welcome: add a line to the table in scripts/generate.py, regenerate, done.

bash/fish? The theme itself works in any shell (macOS symlink covers the default path; on Linux ~/.config/eza is the default). Only the alias block is zsh-specific — add equivalent aliases to your shell's rc.

License

MIT. Glyphs are Material Design Icons (Apache-2.0) via Nerd Fonts (MIT); this repo ships only codepoint mappings, not fonts.