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

@cuytamvan/cuypwm

v1.0.0

Published

CLI Password Manager berbasis **Bun**, dengan tampilan cantik pakai [`@clack/prompts`](https://www.npmjs.com/package/@clack/prompts) dan [`chalk`](https://www.npmjs.com/package/chalk).

Readme

cuy-pwm

CLI Password Manager berbasis Bun, dengan tampilan cantik pakai @clack/prompts dan chalk.

Fitur

  • Enkripsi credential pakai RSA 4096-bit + AES-256-GCM (hybrid) — key pair di-generate lewat openssl saat pertama kali dijalankan.
  • Simpan berbagai jenis credential: GitHub, GitLab, Gmail, Akun Bank, Akun Website, SSH Credential (host/port/user/pass), SSH Key (private+public key).
  • Generate password dengan checklist karakter (UPPERCASE, lowercase, numeric, symbol) + custom panjang password (default 8).
  • Data tersimpan lokal di ~/.cuy-pwm/source.json, key pair di ~/.cuy-pwm/keys/.

Instalasi

Pastikan Bun dan openssl sudah terpasang di sistem kamu.

cd cuy-pwm
bun install

Menjalankan

bun run src/index.ts
# atau
bun run start

(Opsional) Install sebagai command global

bun link
cuy-pwm

Alur Pertama Kali Dijalankan

  1. Aplikasi cek apakah ~/.cuy-pwm/keys/private.pem dan public.pem sudah ada.
  2. Kalau belum ada, aplikasi akan menanyakan apakah private key ingin diproteksi passphrase, lalu men-generate key pair RSA 4096-bit via openssl genrsa & openssl rsa -pubout.
  3. Passphrase (kalau dipilih) tidak pernah dikirim lewat argumen command line — dikirim lewat environment variable ke proses openssl supaya tidak tampak di ps aux.

Struktur Data (source.json)

Tipe dasarnya mengikuti bentuk berikut, dengan field tambahan menyesuaikan tipe credential:

interface BaseEntry {
  id: string;
  type: "github" | "gitlab" | "gmail" | "bank" | "website" | "ssh_cred" | "ssh_key";
  source: string;
  description: string;
  createdAt: string;
}

// github, gitlab, gmail, bank, website
interface SimpleCredentialEntry extends BaseEntry {
  username: string;
  encrypted_password: string;
  extra?: Record<string, string>; // mis. account_number, url
}

// ssh_cred
interface SshCredEntry extends BaseEntry {
  username: string;
  encrypted_password: string;
  host: string;
  port: number;
}

// ssh_key
interface SshKeyEntry extends BaseEntry {
  encrypted_private_key: string;
  public_key: string;
}

Semua field sensitif (encrypted_password, encrypted_private_key) dienkripsi hybrid: AES-256-GCM untuk data asli, lalu AES key-nya dienkripsi pakai RSA public key kamu. Ini supaya SSH private key yang panjang tetap bisa dienkripsi (RSA murni punya batas ukuran plaintext).

Catatan Keamanan

  • Jangan commit folder ~/.cuy-pwm ke git manapun.
  • Kalau private key diproteksi passphrase, kamu akan diminta passphrase tiap kali membuka/melihat credential yang terenkripsi.
  • File source.json aman dibagikan/backup karena semua data sensitif sudah terenkripsi — asal private.pem tidak ikut bocor.