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

keyra

v1.1.0

Published

Keyra is a stateless password generator that uses your master password and service name to create strong, unique, and repeatable passwords for every website.

Readme

Keyra

Keyra is a stateless password generator that uses your master password and service name to create strong, unique, and repeatable passwords for every website.

Features

  • Stateless Design: No passwords are stored, just remember one master password
  • Deterministic Generation: Same inputs always produce the same password
  • Highly Configurable: Customize password rules and version control
  • Secure Algorithm: Uses scrypt encryption algorithm to ensure password security
  • Version Control: Allows updating passwords for specific services without changing the master password

Try Keyra Online

Try Keyra without installation on our web application: https://9b9387.github.io/keyra

The online application offers the same functionality as the installed version but runs directly in your browser.

Usage

As a CLI Tool

# Global installation
npm install -g keyra

Available Commands

Password commands:

  • gen <service>: Generate a password for the given service.
    • -r, --rule <rule>: Specify a password rule name (must already exist).
    • -p, --password <masterPassword>: Provide master password (otherwise will prompt interactively / or use environment variable KEYRA_MASTER_PASSWORD).
    • -s, --save: Save the generated service (version=1) locally.
  • get <service>: Retrieve current password for a service.
    • -d, --detail: Show detailed metadata (rule, created time, note, etc.).
    • -v, --versions: Show all historical versions (password history). Can be combined with --detail.
    • -p, --password <masterPassword>: Provide master password (else prompt / env).
  • rotate <service>: Increment version for a service (does NOT output password directly; use get afterwards to see the new password).
  • list: List all saved service entries.
  • delete <service>: Remove stored password data for the given service.

Rule commands:

  • rule:list: Show all password rules.
  • rule:add: Interactive creation of a new password rule.
  • rule:delete <rule>: Delete an existing password rule (cannot delete default).

Global master password environment variable:

export KEYRA_MASTER_PASSWORD="yourMasterPassword"

Then you can omit -p/--password.

Examples

Generate (not saving):

keyra gen github

Generate with rule and save:

keyra rule:add   # Interactively create a custom rule, assume it is named myrule
keyra gen github -r myrule -s -p "My$ecret"  # Generate immediately and save

List saved services:

keyra list

Get current password (using env variable for master password):

export KEYRA_MASTER_PASSWORD="My$ecret"
keyra get github

Show password with details:

keyra get github -d

Show password history (all versions) with details:

keyra get github -v -d

Rotate (bump version):

keyra rotate github
keyra get github   # See the new version password

Delete a service:

keyra delete github

Manage rules:

keyra rule:list
keyra rule:add
keyra rule:delete myrule

As a Library

npm install keyra
import { KeyraData, KeyraRule, Generator } from 'keyra';

// Create custom password rule
const rule = new KeyraRule(
  'my-rule', // Rule name
  16, // Password length
  true, // Require uppercase letters
  true, // Require lowercase letters
  true, // Require numbers
  true, // Require symbols
  '!@#$%^&*', // Allowed symbols
);

// Create service data
const data = new KeyraData(
  'github.com', // Service name
  1, // Password version
  rule, // Password rule
  'My GitHub account', // Note
);

// Generate password
const generator = new Generator();
(async () => {
  const password = await generator.generate('masterPassword', data);
  console.log(password); // Output the generated password
})();

Password Rules

You can customize password generation rules with the KeyraRule class:

  • name: Rule name
  • length: Password length (minimum 4 characters)
  • requireUppercase: Whether uppercase letters are required
  • requireLowercase: Whether lowercase letters are required
  • requireNumbers: Whether numbers are required
  • requireSymbols: Whether symbols are required
  • allowedSymbols: Which symbols are allowed

Version Control

When you need to update a password for a service, you can increase the version value to generate a new password without changing your master password.

const data = new KeyraData('github.com', 2); // Version 2 will generate a different password

Security Notes

  • Your master password is never stored or transmitted
  • Password generation uses the scrypt algorithm, which has high computational cost to prevent brute force attacks
  • All password generation is done locally with no network communication

Contributing

Pull requests and issues are welcome to improve this project.

License

MIT