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

@0biwank/screen-capture

v2.0.5

Published

Native screen + audio capture for macOS with file-backed HLS output.

Readme

@0biwank/screen-capture

Native macOS screen, window, camera, microphone, and system-audio capture with file-backed HLS output.

Requirements

  • macOS 14 or newer
  • Apple silicon (arm64) or Intel (x64)
  • Node.js 18 or newer, including N-API-compatible Electron releases

The npm package includes prebuilt binaries for both supported architectures and does not compile native code during installation.

Installation

npm install @0biwank/screen-capture

Usage

const capture = require('@0biwank/screen-capture');

const display = capture.listDisplaySources()[0];
const recordingId = `capture-${Date.now()}`;

capture.setSegmentReadyCallback(fullPath => {
  console.log('HLS segment ready:', fullPath);
});

const started = capture.startCapture({
  displayId: display.id,
  width: display.width,
  height: display.height,
  fps: 30,
  gopSize: 120,
  videoBitrate: 9_000_000,
  systemAudio: true,
  microphone: false,
  outputDir: '/tmp/native-capture',
  recordingId,
  segmentTime: 4,
});

if (!started) throw new Error(capture.getLastError());

Call stopCapture() to flush the final segment and close playlist.m3u8. Pause and resume are available through pauseCapture() and resumeCapture(). See index.d.ts for the complete API and option types.

Building From Source

Release binaries are built by .github/workflows/publish.yml. Local builds use:

npm ci --ignore-scripts
brew install nasm pkg-config
NATIVE_CAPTURE_ARCH=arm64 npm run build
# or NATIVE_CAPTURE_ARCH=x64 npm run build

See SOURCE.md for pinned upstream sources, checksums, and build details.

License

The distributed binary links FFmpeg configured with GPL support and x264. The package is distributed under GPL-2.0-or-later. See LICENSE and THIRD_PARTY_NOTICES.md. Distribution in another application should be reviewed for license compliance.