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

@grovemotorco/livery-cli

v1.0.0

Published

Generate shareable images of source code from the command line

Readme

@grovemotorco/livery-cli

Turn source code into shareable images from the command line. No browser, no network, no headless Chrome — the renderer is SVG and the rasterizer is resvg compiled to WASM, both bundled.

npm install -g @grovemotorco/livery-cli
livery render src/main.rs -o hero.png

Or without installing:

npx @grovemotorco/livery-cli render src/main.rs -o hero.png

Usage

livery render <file...> [options]
livery render --stdin --lang ts -o out.png
livery themes | languages | fonts | backgrounds  [--json]
livery init

Render several files at once with --out-dir, pipe a single image to stdout with -o -, or put it straight on the clipboard with --copy:

livery render src/*.ts --out-dir ./shots --scale 3
livery render app.py -o - -f svg > app.svg
livery render snippet.go --copy

Options

| Flag | What it does | | ---------------------------------- | ---------------------------------------------------------- | | -o, --out <path> | Output file for a single input; - means stdout | | -d, --out-dir <dir> | Output directory, for any number of inputs | | -f, --format <png\|svg> | Defaults to png | | -s, --scale <1-4> | Defaults to 2 | | --copy | Copy the PNG to the clipboard | | --lang <id> | Language; inferred from the file extension otherwise | | --theme <id\|file> | Built-in theme id, or a path to a theme JSON | | --font <id> | One of the six bundled families | | --bg <preset\|#hex\|none\|image> | Backdrop; a file path is embedded | | --ratio <r> | auto, 1:1, 4:3, 3:2, 16:9, 1.91:1, 9:16 | | --line-numbers | Show line numbers | | --highlight <3,5-8> | Band those lines | | --focus <3,5-8> | Keep those bright, dim the rest | | --config <file> | Defaults file; the nearest livery.config.json by default | | --preset <name> | Named preset from the config file | | --remote <url> | Render via a deployed API instead of locally |

livery --help lists the rest — window chrome, shadows, padding, noise, watermarks and line height.

Precedence: flags beat presets, presets beat the config file, the config file beats defaults.

Configuration

livery init writes a livery.config.json you can keep beside a project:

{
  "theme": "vitesse-dark",
  "font": { "family": "jetbrains-mono", "size": 14 },
  "window": { "controls": "mac", "radius": 12 },
  "frame": {
    "padding": { "x": 48, "y": 48 },
    "background": { "type": "preset", "id": "aurora" }
  },
  "presets": {
    "og": {
      "frame": { "aspectRatio": "1.91:1", "width": 1200 }
    },
    "docs": {
      "window": { "show": false },
      "frame": { "background": { "type": "none" }, "padding": { "x": 24, "y": 24 } }
    }
  }
}

Everything outside presets is the baseline; each key inside presets is a named override you select with --preset:

livery render src/lib.rs --preset og -o docs/hero.png

What ships

The published package is one bundled ESM file plus the assets it reads at runtime, so nothing is resolved out of node_modules at render time:

dist/cli.js       the CLI, with @grovemotorco/livery-core inlined
dist/resvg.wasm   the rasterizer
dist/assets/      Shiki grammars and themes, imported on demand
fonts/            six OFL monospace families, as TTF
backdrops/        the bundled wallpapers

Its only runtime dependency is @resvg/resvg-wasm.

Fonts are vendored as TTF rather than WOFF2 because resvg's font parser cannot decompress WOFF2 — the same files serve the browser and the rasterizer, which is what keeps an export identical to its preview.

Requirements

Node.js 20 or newer.

Related

Licence

MIT. Bundled fonts are OFL 1.1 and ship their own LICENSE.txt beside the TTFs, resvg.wasm is MPL-2.0, and the Grove Motor Co wallpapers and marks are not covered by the MIT grant — see LICENSE.