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

@siteit_solutions/pc-fingerprinter

v1.0.6

Published

Generate and verify signed hardware fingerprints for custom PC builds.

Readme


✨ Features

  • 🔑 Cryptographic Signatures — fingerprints are signed with your private key, verified using your public key.
  • 🖥 Hardware Snapshot — Captures stable machine info: CPU, motherboard, BIOS, disk serials, MAC addresses, RAM size, OS.
  • 📑 Warranty Metadata — Includes buyer name, purchase date, warranty period & expiry.
  • 🧩 Parts List Support — Include parts.json with component serials, if available.
  • 🗂 Persistent Storage — Defaults to system paths (%PROGRAMDATA%, /Library/Application Support, /var/lib).
  • Simple CLI — Commands: create, show, verify.
  • 🌍 Cross Platform — Works on Windows, macOS, Linux.

🚀 Quick Start

1) Install globally

npm i -g @siteit_solutions/pc-fingerprinter
pc-fingerprinter --help

2) Generate keys

# Private key (keep safe, OFFLINE)
openssl genpkey -algorithm RSA -out private.pem -pkeyopt rsa_keygen_bits:4096

# Public key (for verification)
openssl rsa -pubout -in private.pem -out public.pem

3) Create a fingerprint (on client system)

pc-fingerprinter create   --buyer "Jane Doe"   --purchase 2025-09-18   --warrantyDays 90   --partsFile ./parts.example.json   --privKey /secure/offline/private.pem

4) Show / Verify

pc-fingerprinter show
pc-fingerprinter verify --pubKey /path/to/public.pem

Use --json with show or verify for machine-readable output.


🧰 CLI Usage (help)

Usage:
  pc-fingerprinter <command> [options]

Commands:
  create   Create and sign a fingerprint
  show     Show fingerprint file contents (no signature verification)
  verify   Verify signature and compare current hardware

Global Options:
  --help      Show help
  --version   Show version
  --json      Print machine‑readable JSON output (show/verify)

create options:
  --buyer <string>           Buyer full name (required)
  --purchase <YYYY-MM-DD>    Purchase date (required)
  --warrantyDays <number>    Warranty length in days (default: 90)
  --partsFile <path>         Optional JSON file with parts list/serials
  --privKey <path>           Path to RSA private key PEM (required)
  --out <path>               Output path (default: system fingerprint path)

show options:
  --path <path>              Path to fingerprint file (default: system fingerprint path)
  --json                     Print JSON‑only

verify options:
  --path <path>              Path to fingerprint file (default: system fingerprint path)
  --pubKey <path>            Public key PEM to use (default: bundled or via $PC_FP_PUBLIC_KEY)
  --json                     Print JSON summary instead of human output

📂 Default Paths

| OS | Fingerprint File Location | | ------- | ------------------------------------------------------------- | | Windows | C:\ProgramData\pcfingerprint\fingerprint.json | | macOS | /Library/Application Support/pcfingerprint/fingerprint.json | | Linux | /var/lib/pcfingerprint/fingerprint.json |

Default public key location (if --pubKey not provided):

<package_root>/assets/public.pem
or override via environment variable: PC_FP_PUBLIC_KEY=/path/to/public.pem

🔒 Security & Best Practices

  • The fingerprint file is tamper-evident, not undeletable. Users with admin/root can still remove it.
  • Always keep your private key offline. Distribute only your public key.
  • Make sure parts.json (if used) has accurate serials.
  • Use --json mode for scripts or remote verification.

🤝 Contributing

  1. Open an issue describing an idea or bug.
  2. Fork the repo & create a feature branch.
  3. Make changes, run tests/lint, open a pull request.

📜 License

@siteit_solutions/pc-fingerprinter is MIT licensed.