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

dynawall

v1.0.0

Published

macOS dynamic video wallpaper — source-transparent, compiles locally

Readme


What it does

Plays any video file as your desktop wallpaper — looped, fullscreen, behind all your icons and windows. Works across all connected monitors. Pauses when you lock your screen, resumes when you unlock. Keeps playing after sleep/wake and monitor hotplug.

# Set a video
dynawall set ~/Movies/cyberpunk-city-4k.mp4

# Go
dynawall start

# Shuffle a random video from your collection
dynawall random ~/Wallpapers/

# Check status
dynawall status
# running  video=/Users/you/Wallpapers/aurora-4k.mp4

Install

macOS 12+ + Xcode CLI Tools (xcode-select --install)

# Try it now — no install needed
npx dynawall set ~/path/to/video.mp4
npx dynawall start

# Or install globally
npm i -g dynawall

All commands

dynawall set <video>       # Choose a video file
dynawall start             # Start wallpaper
dynawall stop              # Stop wallpaper
dynawall restart           # Restart (pick up new video after set)
dynawall random <dir>      # Random video from a folder
dynawall status            # Running? Which video?
dynawall list              # View video history

Multi-monitor

Each connected display gets its own fullscreen video window. Plug in a new monitor? It auto-detects and adds a window. Unplug? Cleanly removes it. No config needed.

Lock screen behavior

  • Lock → video pauses (saves battery on laptops)
  • Unlock → video resumes from where it stopped
  • Sleep → gracefully tears down
  • Wake → rebuilds and resumes

Random wallpaper

Got a folder full of 4K wallpapers? Point dynawall at it:

dynawall random ~/Wallpapers/

Supports MP4, MOV, M4V, MKV, WebM. Picks one at random, sets it, and if already running, restarts with the new video.

Pro tip — random wallpaper on login:

echo 'dynawall random ~/Wallpapers/ && dynawall start' >> ~/.zprofile

How it works

  you run: npx dynawall start
                │
                ▼
         ┌──────────┐
         │  cli.js   │  Node.js CLI — parses args, manages process
         └─────┬────┘
               │ spawns
               ▼
   ┌───────────────────┐
   │   dynawall-core    │  Compiled from WallpaperCore.swift
   │                     │
   │  • NSWindow per    │  Borderless window at desktop level
   │    monitor          │
   │  • AVPlayer loop   │  Hardware-accelerated video playback
   │  • Health timer    │  Auto-recovers if playback stalls
   │  • Event listener  │  Screen/sleep/wake/lock/unlock
   └───────────────────┘

No Electron. No WebKit. Pure macOS native APIs — AVPlayer + NSWindow + NSWorkspace.

Source-transparent

The entire native core is one file: WallpaperCore.swift — 135 lines. It compiles on your machine during npm install using your local swiftc. No pre-built binaries. No binary blobs. Read it, audit it, compile it yourself.

Requirements

  • macOS 12+ (Monterey / Ventura / Sonoma / Sequoia)
  • Xcode Command Line Tools
  • Node.js 16+

License

MIT