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

@rom-weaver/cli

v0.19.1

Published

A command-line ROM toolkit: patch, compress, extract, convert, identify, bake in cheat codes, and edit supported game saves. No telemetry.

Readme

Your ROM workflow. One toolkit.

Patch, compress, extract, convert, and identify ROMs and disc images. Bake in cheat codes and edit supported game saves in your browser or CLI. Play supported games in the browser with EmulatorJS.

Works offline in your browser or CLI. Your files stay on your device. No telemetry.

Install

Choose the webapp, self-hosting, or CLI path below.

Webapp

Open rom-weaver.com/apply-patches. Add your ROM and patches, then download the result. Files are processed on your device. No install or account is needed.

For offline use, first cache the app and any needed identify packs, cheat databases, and emulator cores. Remote files still need a connection. See offline behavior and privacy.

Start with your first patch to practise on supplied homebrew files. For your own files:

Use the task chooser for the other browser workflows.

Self-hosting

Use the published Docker image or static release archive. The self-hosting guide covers both, including HTTPS, reverse proxies, and subpaths.

CLI

Native release assets cover macOS arm64 and x86-64; Linux x86-64 GNU plus x86-64, arm64, and i686 musl; and Windows arm64, x86-64, and x86.

Three recommended ways to install:

brew install rom-weaver/tap/rom-weaver
curl -fsSL https://rom-weaver.com/install.sh | sh
npm install --global rom-weaver

Homebrew covers macOS arm64/Intel and Linux arm64/x86-64. The install script covers macOS and Linux: it downloads the latest release to ~/.local/bin and checks its build provenance, refusing a definite verification failure. If the check cannot run, it warns and continues unless strict verification is enabled; see Verify a download. npm is the only channel covering every supported target at once, and needs Node.js 22+.

Windows, Scoop, PowerShell, cargo-binstall, mise, Docker, shell completions, and building from source are all in Install the CLI.

All three methods above carry the identify and cheat databases, so they need no extra step. Methods that install only the executable - cargo install, cargo binstall, and mise - need rom-weaver setup afterwards to download that data, which identify, probe --identify, and cheat baking read.

Hitting Permission denied? See File permissions.

The development guide covers the full toolchain setup, webapp builds, and tests.

Why

A patch job can require extraction, several patches in order, checksum checks, and compression. rom-weaver runs those steps together and can save the recipe as a bundle.

Browser and CLI explains the two interfaces. Comparison with similar tools covers alternatives.

Performance

The performance guide records measured compression and extraction times, output sizes, hardware, and test settings. Results vary by format and input; some compression cases are slower than the reference tool.

The CLI and browser share one Rust engine. Browser workers and storage add costs, so native timings do not predict browser performance.

Features

  • Change games. Apply or create patches, arrange patch chains, bake supported cheats, and share patch bundles.
  • Prepare files. Identify games and revisions, compare checksums, extract archives, convert containers, compress files, trim padding, and undo PPF3 patches with undo data.
  • Play and manage progress. Test supported games in the browser. Import or export emulator saves, edit supported game saves, and create fresh supported saves.
  • Work locally. Process files without uploads or accounts. Cached app assets work offline; CLI commands support scripts and JSON output.

The plain-language feature map links every feature to its browser or CLI guide. Exact limits live in the format tables, cheat reference, and save reference.

Notices

Beta status

rom-weaver is beta software and follows Semantic Versioning, but until v1.0, breaking changes may still happen between minor releases. Patching, compressing, extracting, and bundling are covered by automated tests. Hands-on testing happens on macOS and Linux; Windows is covered by hosted CI but has seen much less real-world use, so expect rougher edges there and please report anything Windows-specific. If you rely on the APIs or CLI flags, expect things to be a bit tougher: those interfaces may still change as the project heads toward v1.0. Some browser features are hidden behind the beta setting. The feature map lists them. The rom-weaver-core, -checksum, -containers, and -patches crates are published to crates.io only so rom-weaver-cli can use them. The CLI and the webapp are the supported interfaces; using those crates as libraries in another project is not supported.

First complete public release

v0.7.2 was the first complete public release. The changelog and the git history go back further, but v0.6.0 through v0.7.1 failed partway through the release pipeline or were only partially published. v0.7.1 completed most of the pipeline, but it still missed the crates.io CLI package, shipped a broken unscoped npm launcher, and built the static webapp archive with mismatched release metadata. Starting with v0.7.2, all public install methods were intended to work together. Install commands above resolve the current release unless you explicitly pin a version.

LLM-assisted development

rom-weaver is built by a full-time software engineer in my spare time. Claude and ChatGPT are used during development for brainstorming, implementation, debugging, and review. I make the engineering decisions and review and test the resulting work myself; the goal is high-quality, dependable software, but AI-assisted code may still need extra scrutiny.

Translations

Localized translations are early and may be entirely wrong in places. Manual edits and corrections are welcome.

Screenshots

Screenshot inventory and capture instructions.

Documentation

Start with the browser-first documentation home or the repository documentation index. Both link to the task chooser, feature map, guided samples, and FAQ. CLI, deployment, integration, development, architecture, and format references have their own pages.

Contributing and support

Bug reports and contributions are welcome. Read the contribution guide and code of conduct before submitting a change. Because rom-weaver is dual-licensed, code and documentation changes need a one-time signature on the Contributor License Agreement. The CLA Signed check asks for it on your first pull request. One signature covers every repository in the rom-weaver organization whose contribution process references the agreement. You keep the copyright in your work. Report suspected vulnerabilities through GitHub's private reporting form in the security policy. If rom-weaver has been useful to you, you can support continued development through GitHub Sponsors or Ko-fi.

License

Copyright © Brandon Casey and rom-weaver contributors

The public distribution is licensed under AGPL-3.0-or-later. Commercial licensing is also available for first-party rom-weaver code. Bundled third-party components retain their own licenses. Release builds include a generated combined attribution and license inventory and corresponding license texts. Those third-party terms continue to apply under every rom-weaver licensing option.