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

kirsch

v0.7.3

Published

A versatile bitmap font with an organic flair.

Readme

kirsch

Table of Contents

Overview

kirsch /ˈkɪərʃ/ n.

  1. (German) cherry.

  2. (Russell A. Kirsch, 1929 - 2020) American engineer recognized as the developer of the first digital image scanner and the inventor of the pixel.

  3. A monospace bitmap font with a 6x16 bounding box (5px avg width, 4px descent, 12px ascent, 5px x-height, 9px cap height). It draws from a variety of letterforms and motifs to create a distinct humanist feel at a compact size.

    Some glyphs come from Cozette, often with modifications to adhere to kirsch's design.

Gallery

kirsch glyphs

kirsch glyph map

kirsch sample

Installation/Usage

Download from Releases. Included are bitmap formats - OTB, BDF, PCF, DFONT (for Mac users) - as well as TTF. 2x versions are available for HiDPI screens. Note that PCF doesn't contain glyphs past U+FFFF.

For the crispiest viewing experience, try to use the bitmap formats when possible. If bitmap fonts are not supported on your platform (e.g. Windows, VSCode), then use the TTF at font sizes that are multiples of 16px.

[!TIP] If you need font size in pt, use the following conversion:

pt = px * 72 / dpi

e.g. 16px on a 96dpi screen is 16px * 72 / 96dpi = 12pt.

Nerd Fonts

kirsch comes with custom Nerd Fonts glyphs. Support is still WIP. For the sake of visual clarity, kirsch's Nerd Fonts glyphs tend to bleed heavily beyond their widths. I've drawn these glyphs with the expectation that they will look best when padded before and after with a single space.

Patched Nerd Fonts that cover the rest of the Nerd Fonts are available. The "Mono" variant uses smaller glyphs (single- instead of double-width) and works for terminals that can't mix widths.

Propo

For terminals like foot with partial bleed, a Propo variant of kirsch is available. This variant adjusts the glyphs such that their cells won't be cut off by the terminal's font renderer.

Nixpkgs

Thanks to @ejiektpobehuk, kirsch is available on Nixpkgs as kirsch.

Nix Flakes

kirsch releases are also pushed to FlakeHub. kirsch (aliased to default) is the base package, while kirsch-nerd includes Nerd Fonts patches.

Web

I would generally discourage usage of kirsch on the web due to lack of bitmap support. But for the stubborn and the brave, WOFF2 is available. There is also a CDN-hosted stylesheet for convenience.

<link
  rel="stylesheet"
  href="https://cdn.jsdelivr.net/npm/kirsch@latest/kirsch.css"
/>

Design Notes

Unlike my previous font eldur, which had a mere 4px avg. char width to work with, kirsch has a 5px avg. char width. That 1px of extra width affords a surprising amount of leeway for the design. Far more glyphs fit comfortably into 5px width - e.g. "m" and "w" - meaning that those glyphs won't break kerning and intrude on the spaces of neighboring glyphs. Glyphs that don't fit into 5px width can now work with 7px width, which maintains balance and legibility without affecting kerning too negatively.

Flourishes

rogue fijian xylophone

The flourishes - e.g. in "i" or "f" - are a stylistic choice, but they also serve a functional purpose. Without the flourishes, "i" would take up 1px of width, leaving 4px of awkward space. 2px flourishes on each side of the "i" give it a 5px width, thereby addressing the kerning issue in a stylish way.

In "l"'s case, the script-style flourishes further distinguish it from other vertical characters like 1I|.

Gaps

bad queen peg 69

One of kirsch's distinctive features is the presence of a gap at the bowls of the letters. Filling in the gap would make the letters either too square or too bunched-up, while leaving the gap open declutters the letterforms. The gaps also evoke script-style stroke endings.

Contributing

Issues, feature/glyph requests, and pull requests are all welcome! Font files are edited via bited.

Credits

These are projects that have inspired/helped me create kirsch and are 100% worth checking out.

Licensing

Made with ♥ by the kirsch Project Authors. Released under the OFL-1.1 License.