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

ciphertext-cli

v1.0.0

Published

Interactive terminal tool to **encrypt and decrypt text securely** using a password.

Readme

🔐 Ciphertext CLI

Interactive terminal tool to encrypt and decrypt text securely using a password.

ciphertext-cli lets you protect notes, API keys, tokens, or messages directly from your terminal with modern cryptography (AES-256-GCM + scrypt key derivation).


✨ Features

  • Interactive arrow-key menu
  • Hidden password input (like sudo)
  • Strong encryption (AES-256-GCM)
  • Tamper detection (cannot modify ciphertext without password)
  • Single command usage
  • Works offline
  • Cross-platform (Linux / macOS / Windows)

Installation

  1. Clone the repository:

    git clone <repository-url>
    cd ciphertext-cli
  2. Install dependencies:

    # Using pnpm (recommended)
    pnpm install
    
    # Or using npm
    npm install
  3. Link the command globally:

    npm link

Or just install the package globally npm install -g ciphertext-cli

Now you can use the ciphertext command directly from anywhere in your terminal!


🧭 Usage

When you run the command:

ciphertext

You will see:

? What do you want to do?
❯ Encrypt
  Decrypt

Use ↑ ↓ arrow keys and press Enter.


Encrypt

  1. Select Encrypt
  2. Enter the text
  3. Enter your password (hidden)

Output:

Encrypted:

q9YJ3xC9l0Q1YQ8yR... (base64 ciphertext)

Save this ciphertext anywhere (notes, database, git, etc).


Decrypt

  1. Select Decrypt
  2. Paste the ciphertext
  3. Enter the same password

Output:

Decrypted:

Attack at dawn

If the password is wrong or data was modified:

Wrong password or corrupted ciphertext

🔐 Security

ciphertext-cli uses modern authenticated encryption:

  • AES-256-GCM encryption
  • scrypt password key derivation
  • Random salt per encryption
  • Random IV (nonce)
  • Authentication tag verification

This means:

  • Attackers cannot read the message
  • Attackers cannot modify the message
  • Wrong passwords are detected safely

This tool is designed for protecting secrets at rest and sharing private messages.


⚠️ Important Notes

  • If you forget the password → data cannot be recovered
  • There is no backdoor
  • The encryption is local only (no servers involved)

Good use cases

  • Sending private messages
  • Personal secure notes
  • Environment variables

Bad use cases

  • Password manager replacement
  • Large file encryption
  • Enterprise key management
  • Long-term archival storage

🧪 How it works (simple)

Your password is never used directly as a key.

Instead:

password → scrypt → secure key → AES-256-GCM → ciphertext

Every encryption generates a new random salt and IV, so encrypting the same message twice produces different ciphertext.


👤 Author

Sifat Ullah


📜 License

ISC