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

cnefx-cli

v0.2.0

Published

Native Nikon pixel-shift synthesis to NEFX.

Readme

cNEFX

Merge Nikon pixel-shift captures into NEFX files on Linux, macOS and Windows. cNEFX accepts complete 4, 8, 16 or 32-frame sequences from the Z8, Zf, Z6III and Z5II. It runs natively, with no Nikon software or Python runtime required.

Experimental: validation against authentic captures, NX Studio references and Lightroom Classic is partial.

Install

Install with mise (recommended):

mise use -g github:ChrAlpha/cNEFX@latest
cnefx merge --help

Or run without adding cNEFX to your global configuration:

mise x github:ChrAlpha/cNEFX@latest -- cnefx merge --help

For Node.js users, run with pnx:

pnx cnefx-cli merge --help

Or install globally with pnpm:

pnpm add -g cnefx-cli

Update with mise upgrade github:ChrAlpha/cNEFX or pnpm update -g cnefx-cli. You can also build from source or download native archives from Releases. Builds cover Linux x86_64/ARM64, macOS Apple silicon and Windows x86_64. Check the accompanying .sha256 file, extract the archive, and add its bin directory to PATH. Builds are unsigned and not notarized; older-system compatibility is not established.

Merge pixel-shift captures

Use lossless-compressed, 14-bit FX NEF files. Pass a card folder, files or a file-name pattern; no other option is needed:

cnefx merge /path/to/DCIM/100NZ_8

cNEFX finds the pixel-shift sequences, as NX Studio does, and writes each one beside its first capture, e.g. SGL_6243_merged.NEFX. Other photos are skipped. With AE bracketing every exposure is its own sequence and output. Running the same command again only merges what is missing, so an interrupted or partly failed run can simply be repeated; existing files are never replaced.

Use --output FILE.nefx for a single sequence or --output-directory DIR to publish all outputs with a manifest.json together. HE/HE* is unsupported; HLG, other image areas and untested firmware/settings remain unvalidated.

Output modes

--outputs N sets the outputs per sequence and defaults to 1. Several outputs are named NAME_merged_01.NEFX onward; --output accepts only one.

| Captures | Allowed outputs | Dimensions per output, relative to the source crop | | --- | --- | --- | | 4 | 1 | Original width and height | | 8 | 1, 2 | Original width and height | | 16 | 1, 4 | 2x width and height for one output; original for four | | 32 | 1, 2, 4, 8 | 2x width and height for one or two outputs; original for four or eight |

Options

  • --jobs N: set the worker limit (1-256; default: all cores). Use --jobs 1 for lower memory use.
  • --chromatic-aberration-correction: enable correction when supported by the capture metadata; disabled by default.
  • --json: write a structured report to stdout for scripts.
  • cnefx merge --help: show all options.

Build from source

Requires a C++20 compiler and CMake 3.21+. The build downloads and statically links a pinned LibRaw release.

git clone https://github.com/ChrAlpha/cNEFX.git
cd cNEFX
cmake --preset release
cmake --build --preset release
./build/release/cnefx merge --help

With Visual Studio, the executable is build/release/Release/cnefx.exe. Use the executable's full path or add its directory to PATH for the merge examples above.

Development

See AGENTS.md for the source map, C++ API notes, build checks, packaging and contribution guidelines. Project scope tracks supported behavior and remaining validation gaps. The former Python implementation is available at the v0.0.1 tag.

License

MIT. Distributions also include LibRaw's third-party license files.

Acknowledgements