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

@texel/yyz-cli

v0.1.0

Published

The yyz CLI: dev server, headless render, build, scaffold. Run with Deno.

Readme

@texel/yyz-cli

The yyz command line for yyz. It's an npm package run with Deno (chosen for Deno's first‑class headless canvas2d + webgpu). The CLI is written with only node: + npm: imports; the few Deno‑specific touchpoints (Deno.serve, Deno.upgradeWebSocket, the deno‑canvas surface, git via node:child_process) are isolated, so a node/bun port is additive.

Install

deno install -gA -n yyz npm:@texel/yyz-cli

Commands

yyz [serve] sketch.js          # dev server + live reload   (-o / --open to open the browser)
yyz build  sketch.js           # folder build (index.html + bundle.js) -> --dir (default ./dist)
yyz build  sketch.js --inline  # a single self-contained .html
yyz render sketch.js                   # headless render (Deno) -> --output (default ./output)
yyz render sketch.js --frames=120      # ...render an explicit number of frames (from 0)
yyz render sketch.js --format=gif      # ...a single animated GIF (pure-JS gifenc; no ffmpeg)
yyz render sketch.js --format=mp4      # ...mp4 / webm video (ffmpeg) at highest quality
yyz render sketch.js --target ./r2.js  # ...or pipe frames to a custom Sink module
yyz new    sketch.js --template default|print|svg
yyz commit sketch.js           # git add/commit, print the short hash

Flags: -o/--open, --port (9966), --output, --target, --dir, --inline, --frames=N (how many to render, from 0; defaults to one loop), --format=png|jpeg|webp|gif|mp4|webm, --encoder=js|ffmpeg (gif: js=gifenc default or ffmpeg 2‑pass; mp4/webm use ffmpeg headless), --quality=0..1 (video CRF/bitrate, default 1 = highest), --pixelRatio/--exportPixelRatio, --fps, --duration, and any --key=value as a sketch param (e.g. --seed=mint).

In the browser (serve or a built page): Cmd/Ctrl+S exports the current frame; Cmd/Ctrl+Shift+S records the loop (default mp4) — via WebCodecs natively, or the dev server's ffmpeg with settings.export = { encoder: "ffmpeg" }. window.yyzRecord({ format, encoder, quality, frames }) does the same from the console.

How it works

  • serve — esbuild bundles your sketch + the engine + a tiny client; Deno.serve hosts it; Deno.upgradeWebSocket drives a full‑page live reload on rebuild. Cmd+S exports a frame to disk (git tag, -unstaged when uncommitted; Cmd+K commits first); Cmd+Shift+S records video — WebCodecs in the page, or streamed to the server's ffmpeg (/__yyz/record/*).
  • render — imports your sketch directly (no bundler), draws each frame on a Skia canvas (@napi-rs/canvas), streams to the resolved Sink (a file sequence, or an encoder: gifenc / ffmpeg mp4·webm·gif), with a TTY progress bar (muted by --silent).
  • config~/.config/yyz/config.json (global) and yyz.config.js (project) set the output dir, etc.

Dependencies: esbuild (bundling), @parcel/watcher (robust native file watching), png-tools (PNG DPI metadata), @napi-rs/canvas (the headless Skia canvas, loaded on demand), gifenc + mp4-muxer/webm-muxer (small pure‑JS encoders), and @texel/yyz-core. ffmpeg (mp4/webm + hi‑q gif) is found on PATH — never bundled, so it stays out of the base install.