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

@thezelijah/majik-message

v1.1.1

Published

Encrypt and decrypt messages on any website. Secure chats with keypairs and seed-based accounts. Open source.

Readme

Majik Message

Developed by Zelijah

Majik Message is a browser extension for encrypting and decrypting text directly in your browser. It is not a chat platform — it does not host conversations or store messages on a server. Instead, it allows you to securely encrypt text, share it with contacts, and decrypt it on any webpage, giving you full control over your data.

npm npm downloads npm bundle size License TypeScript



Features

  • Text Encryption Anywhere

    • Highlight any text on a webpage (e.g., Gmail, Facebook), right-click, and select Encrypt to generate a secure string. Only authorized contacts can decrypt it.
  • Local Account with Seed Phrase

    • Accounts are derived from a seed phrase — no registration required.
    • Add multiple contacts who can decrypt your messages.
    • Share your account via invite key for collaborative access.
    • Save, export, and import your account as a JSON file or backup key.
  • Page-Wide Decryption

    • Decrypt all valid encrypted strings on a page in a single action.
  • Automatic Scanner

    • Enable the scanner in settings to automatically detect and decrypt valid encrypted text on any webpage in real-time.
  • Privacy-First Design

    • All encryption and decryption occur locally. Messages are never stored on a server unless explicitly saved by the user.

Usage

Encrypt Text

  • Highlight text → right-click → Encrypt.
  • Replace the text with an encrypted string or copy it.

Decrypt Text

  • Highlight encrypted string → right-click → Decrypt
  • Decrypt the entire page → right-click → Decrypt Page
  • Or enable the scanner to auto-detect and decrypt strings on a page

Account Management

  • Create an account from a seed phrase.
  • Add contacts or share your account via an invite key.
  • Export/import your account via JSON or backup key.

Architecture

Browser Extension

Injects a content script for detecting and modifying page text.

Encryption

Uses standard cryptographic algorithms (AES, RSA or other implemented schemes) for end-to-end encryption.

Contacts & Accounts

Local storage using browser storage APIs (optional JSON backup).

Scanner

Observes DOM mutations to detect and auto-decrypt valid encrypted strings.


How to Use Majik Message

1. Creating an Account

Majik Message uses seed-based accounts. No email or registration is required.

  1. Open the Side Panel.
  2. A seed phrase will be automatically generated.
    • You may regenerate a new seed phrase at any time by clicking the dice icon.
  3. Enter a display name.
    • If left empty, your public key address will be used by default.
  4. Enter a password, then click Apply to create the account.
  5. Upon creation, a JSON backup file will be downloaded automatically.
    • Important: Keep this file secure and private.
      Anyone with access to this backup can open your account and decrypt your messages.

Once the account is created, it becomes the active account for encryption and decryption.


2. Encrypting Messages (Manual / Side Panel)

You can encrypt text directly from the Side Panel without interacting with a webpage.

  1. Open the Side Panel.
  2. Go to the Message tab.
  3. Toggle the mode to Encrypt.
  4. Choose recipients:
    • Encrypt for yourself only, or
    • Add one or more contacts so they can decrypt the same message.
  5. Enter your text into the input box.
  6. Choose an output option:
    • Copy encrypted text to clipboard
    • Download as a .txt file
    • Download as a .json file

3. Encrypting Text Inside a Web Page

You can encrypt text directly inside any webpage (e.g., Gmail, Facebook).

  1. Open a page with a text editor (e.g., Gmail compose, Facebook post).
  2. Write or compose your message normally.
  3. Highlight the text you want to encrypt.
    • You can press Ctrl + A to select all text.
  4. Right-click to open the context menu.
  5. Select Majik Message → Encrypt.
  6. Choose:
    • Encrypt for yourself, or
    • Encrypt for a specific contact.

The selected text will be replaced with an encrypted string.


4. Decrypting Messages

Decrypt an Entire Page

  1. Right-click anywhere on the page.
  2. Select Majik Message → Decrypt Page.
  3. All valid encrypted strings on the page will be decrypted.
    • Decryption only works if the active account has access to the message.

Decrypt a Selected Text

  1. Highlight the encrypted text.
  2. Right-click to open the context menu.
  3. Select Majik Message → Decrypt.

5. Automatic Scanning and Decryption

Majik Message can automatically detect and decrypt encrypted content on any page.

  1. Open the Side Panel.
  2. Go to the Scanner tab.
  3. Enable Scan.
  4. Enter your account password when prompted.

Once enabled:

  • Any page you load (e.g., Gmail, Facebook) will be scanned.
  • If encrypted content valid for your active account is detected, it will be decrypted automatically.

6. Sharing Your Account (Invite Key)

You can allow others to encrypt messages for you by sharing your invite key.

  1. Open the Side Panel.
  2. Go to the Accounts tab.
  3. Hover over your account.
  4. Click the Share icon.
  5. Copy and share your invite key.

Others can use this key to add you as a contact.


7. Adding Contacts

To decrypt messages from others or allow shared encryption:

  1. Open the Side Panel.
  2. Go to the Contacts tab.
  3. Click the Add Friend icon.
  4. Paste the other user’s invite key.

The contact will be added to your directory.


8. Importing an Existing Account

You can restore an account using a previously saved backup.

  1. Open the Side Panel.
  2. Go to the Accounts tab.
  3. Choose Import Account.
  4. Select your saved JSON backup file.
  5. Enter the associated password.

The account will be restored and can be set as active.


Notes and Security Reminders

  • All encryption and decryption are performed locally in your browser.
  • Majik Message does not store messages or host conversations.
  • Backup files and seed phrases grant full access to an account—store them securely.
  • Decryption depends on the currently active account.

Contributing

If you want to contribute or help extend support to more platforms, reach out via email. All contributions are welcome!


License

Apache-2.0 — free for personal and commercial use.


Author

Made with 💙 by @thezelijah

About the Developer


Contact