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 🙏

© 2025 – Pkg Stats / Ryan Hefner

hmas-cli

v2.0.18

Published

CLI client for the H.M.A.S. message API

Readme

🧠 H.M.A.S. — Hacker Message as a Service

Welcome to H.M.A.S., the hacker-style message API. Generate AI, cyberpunk, debug, and prank messages for apps, bots, websites, terminals, and command-line tools.

# 🚀 H.M.A.S. Hacker Messages As Service

                                       ## 🧾 Summary Table

Parameter                                 Description                                      

|---------------|----------------------------------------------------------------------------------| | msg= | Fetch themed hacker messages | | as= | Custom label for sender | | talk=on | Enable default system analysis | | talk= | Custom responder name | | talkcolor= | Custom color text | | chat=on | Enable chat-style replies | chatstyle must be together with chat=on | | chatstyle= | Tone for chat replies | casual, sarcastic, panic, neutral and misc | | search= | Look up message contents | | color | Custom color | html only | | alerts | Synthetic cybersecurity alerts | | types | types=on list all alert types | | severity | alerts severity | hight medium critical low | | diff= | Compare keywords | | diffmode= | Styled Responses | classic , strike, redacted, corrupt, delta and tagged | | scenario= | Retrieve cheat-sheet real commands | | format= | Output style (json, txt, html, md, yaml) | | share= | Email the message | | mode= | Daily/weekly rotation mode | | category= | Choose a message theme | list categories api.php/categories.php | | like | Mark the last message as favorited | | liked | Retrieve Liked Messages | | send | Send Encrypted Messages Between Users send=hello&rec=user-pub-key&selfdestruct=1| | | go to hmas/secure.php to generate your keys | | inbox | Read Encrypted Messages ?inbox=read | ?inbox=delete&id= |delete messages | | | Use your secret key to read and delete messages | | share | Share any Option to any Email Address | | ai | simulate responses to real system logs or events | | threads | generate multiple messages and AI responses in sequence(ai= only) | | seeded | Contextual AI Replies (ai= only) | | usage | Retrieve your api usage api.php?usage&apikey | | help | Prints this help usage api.php?help&apikey | ℹ️ Tip: Generate your public and secret keys at /hmas/secure.php 🔐 Send and read encrypted messages at /hmas/inbox.html Happy hacking! 💻🧑‍💻

🚀 Free for a limited time — no sign-up required!

Free API Key: testkey123


🌐 Web API

Send a simple GET request and receive a random message:

GET /api.php?msg=anon&apikey=YOUR_KEY

🧾 Output Formats

Use format= to control the response type:

  • json (default)
  • txt – plain text
  • md – Markdown
  • html – HTML
  • yaml – YAML

📌 Example:

/api.php?msg=ghost&format=md&apikey=YOUR_KEY

🛰️ NEW – Talk Feature

The HMAS API now supports dynamic diagnostic responses using the talk= parameter.

You can enable an AI-style response line to appear beneath the main message.

This feature simulates a system bot or custom speaker analyzing the message and giving a follow-up.


NEW!! 🔧 Enabling Talk Mode

To activate this feature, add:

talk=on

This will append a system diagnostic response from systemd-analyze (default).

🔍 Example

api.php?msg=ghost&talk=on&apikey=testkey123

Response (Markdown or Plaintext):

ghost:
  🔓 Kernel breach: External AI routines are executing via RPC hooks.

💀 systemd-analyze: Entropy echo matches synthetic interference pattern.

🧙‍♂️ Customizing the Talk Sender

Instead of on, you can define a custom speaker like:

talk=RedOps

Now the diagnostic message will be labeled:

💀 RedOps: Behavioral anomaly suggests compromised thermal signature.

✅ Custom Talk Example

api.php?msg=hacker&talk=RedOps&format=json&apikey=testkey123

JSON Response:

{
  "message": "🧠 Hacker mode engaged...",
  "user": "hacker"
}
💀 RedOps: Cron injection conflicts with expected system entropy.

##NEW!!

❤️ Like It? Save It.

Yes, you can now show your love! Every time you retrieve a message using msg=, as=, or even search=, the last one can be liked or disliked — just like your favorite cat video 🐾.

Submit Feedback

api.php?last=like&apikey=YOUR_KEY
api.php?last=dislike&apikey=YOUR_KEY

Likes are stored in your personal memory vault. Dislikes? Well, let's just say the system will "consider it for review" — which is intern-speak for "buried under the cyber rug."


🔁 Retrieve Your Liked Messages

api.php?liked&apikey=YOUR_KEY
api.php?liked&max=5&page=2&format=markdown&apikey=YOUR_KEY

Parameters

  • max (1-10): How many to fetch
  • page: Which page of results
  • format: json, html, md, yaml, txt (we’re format-flexible)

Example

api.php?liked&page=1&format=html&apikey=testkey123

Will return something heartwarming like:

❤️ 🧠 Captain! A phantom process is scraping your clipboard history.
❤️ 📡 AI Guardian detected entropy drift. Bucket reversed.

Now your HMAS memories can last a little longer 💾✨.

💡 Notes

  • talk=on → enables default responder systemd-analyze
  • talk=CustomLabel → defines a custom speaker like "RedOps" or "RootAI"
  • Works with all formats: json, html, txt, md, yaml

🔗 Advanced Example with Formatting and Sharing

api.php?msg=ghost&talk=RootAI&format=html&[email protected]&apikey=testkey123
  • Format: HTML
  • Share: sends styled message to email
  • Talk: enabled with custom responder name

✅ Summary

| Parameter | Description | Example | |-----------|--------------------------------------|------------------------| | talk=on | Enables system response | talk=on | | talk= | Custom responder name | talk=RedOps | | format= | Output format (json, md, etc.) | format=json | | share= | Email the result | [email protected]|

Inject your messages with bot-like responses. Let your inner AI speak. 🧠💀

Now with colors too

Available only on the format=html

You can customize the text colors like this:

api.php?as=admin&color=red&talk=your_boss&talkcolor=green&apikey=api

Stay tunned for more features.


🆕 Search & Share API

You can now search messages and share them via email directly from the API.

🔍 Search Example

/api.php?search=memory&max=3&page=1&format=html&apikey=YOUR_KEY

📬 Share Example

/api.php?msg=ai&[email protected]&format=markdown&apikey=YOUR_KEY

You can also combine both:

/api.php?search=surveillance&[email protected]&format=html&apikey=YOUR_KEY

🧾 Advanced: Custom User Labels with as=

Override the default "user" label in responses:

GET /api.php?as=system&apikey=YOUR_KEY

Returns:

{
  "system": "🧠 Some generated message."
}

📂 Categories

Use the category= parameter to filter themed messages:

  • ai, cyberpunk, terminal, fun, debug, hacker, misc

📌 Example:

/api.php?msg=hacker&category=terminal&format=txt&apikey=YOUR_KEY

🔎 View all categories:

/categories.php

📆 Rotating Modes

Use the mode= parameter to receive a stable message for:

  • mode=daily → changes once per day
  • mode=weekly → changes once per ISO week

📌 Example:

/api.php?msg=hacker&mode=daily&apikey=YOUR_KEY

💻 CLI Access (npx hmas-cli)

Use H.M.A.S. directly from your terminal — no install required:

npx hmas-cli --msg hacker --format txt --apikey YOUR_KEY

🧰 CLI Options

| Option | Description | |---------------|---------------------------------------------| | --msg | Username or context (default: anon) | | --as | Custom label override for "user" | | --search | Search term across stored messages | | --max | Max number of results (1–10) | | --page | Pagination index for search results | | --format | Output format: json, txt, md, yaml, html | | --category | Message category | | --mode | daily / weekly rotation | | --share | Email address to send the message result | | --apikey | Your API key (or use HMAS_APIKEY env var) |

📌 Example:

HMAS_APIKEY=YOUR_KEY npx hmas-cli --search memory --max 3 --format markdown --share [email protected]

🔗 npm: hmas-cli


🧪 Live Demo

🖥 Try it: Live Web Demo


🎉 New Feature Alert: Chat with Style! 🗨️💬

We've just rolled out a new feature to spice up your interactions with the system!

You can now enable chat responses and choose the tone to make your experience more engaging and... well.....! 🎉

1. Enable Chat with chat=on 🖥️

Want some chat replies with your generated messages?

Now you can enable them with chat=on! Yes, you heard that right.

You can get a little extra conversation along with your results.

For example:

api.php?msg=admin&chat=on&format=txt

This will generate a random message and provide some chat responses!

You’ll get a taste of how the system responds, along with some hilarious (or maybe sarcastic) replies.


2. Choose Your Chat Style with chatstyle 💁‍♂️💁‍♀️

Why settle for one tone when you can switch it up? The new chatstyle feature allows you to choose from various tones for your chat responses.

  • chatstyle=sarcastic 😏
  • chatstyle=casual 😎
  • chatstyle=panic 😱
  • chatstyle=neutral 🤖
  • chatstyle=misc 😎

Examples of How to Use It

1. Sarcastic Mode: Because Who Doesn't Love Some Sass?

Want to add some sass to your results?

Just use chatstyle=sarcastic! We’ve all ready for you.

Example request:

api.php?msg=network+failure&chat=on&chatstyle=sarcastic&format=txt

And you'll get responses like this:

"Yeah, because nothing says 'reliable' like a network failure."
"Sure, just reboot the router, that’ll solve everything."
"Network failure? Oh, how original. Never saw that one coming."

Warning: Expect eye rolls and heavy sarcasm. 😏


2. Casual Mode: For Those Chill Vibes

Sometimes, you just want a casual chat. Don’t worry, we’ve got you covered.

Example request:

api.php?msg=server+status&chat=on&chatstyle=casual&format=txt

The response might look like this:

"Hey, the server's fine. No big deal."
"Just running a quick check. Everything seems good for now."
"Yup, monitoring it. Shouldn't be an issue."

Nice and laid-back, right? Just like your favorite hoodie. 😎


3. Panic Mode: The Drama You Never Knew You Needed

Need some drama in your life? Activate chatstyle=panic and watch the chaos unfold!

Example request:

api.php?msg=critical+error&chat=on&chatstyle=panic&format=txt

The response will be something like:

"WE'RE LOSING CONTROL! Everyone, please panic!"
"Shut everything down! It's a disaster!"
"CODE RED! THE SYSTEM IS GOING TO EXPLODE!"

Side note: Panic mode is great for dramatic flair, but might also cause you to question your life choices. 🤯


4. Neutral Mode: The Calm Before the Storm

For when you want everything to be calm, cool, and collected, use chatstyle=neutral.

It’s like that friendly bot that’s been programmed to remain chill no matter what happens.

Example request:

api.php?msg=system+update&chat=on&chatstyle=neutral&format=txt

Expect responses like this:

"System update is proceeding as planned. All systems normal."
"Everything is functioning within expected parameters."
"System status: stable. No issues detected."

Perfect for when you want to feel like you're talking to your favorite, calm AI assistant. 🤖


Behind the Scenes: How It Works

We’ve set up a little magic behind the scenes to make this all possible.

By the way Magic maybe is coming soon.

Pro Tip: The Future of Chat 🧠✨

The more you interact with the system, the smarter it gets.

So, get ready for some unexpected results!


In Summary:

  1. chat=on: Get chat responses to your generated messages.
  2. chatstyle=sarcastic: Add a little attitude to your replies.
  3. chatstyle=casual: Keep it chill with casual responses.
  4. chatstyle=panic: Embrace the drama. 💥
  5. chatstyle=neutral: Calm, cool, and collected.

So go ahead, try it out, and let us know which tone is your favorite.

And remember, no tone is too dramatic...except for panic mode, maybe. 😜

Happy H.M.A.S! 👾

🧪 diff API Feature — Compare Keywords Like a Log Wizard 🧙‍♂️

Welcome to the mighty diff feature of your API!

Compare sysadminy phrases like awk vs bash, or ssh vs a random gremlin from the logs.


🔗 Endpoint Format

api.php?diff=keyword1[+keyword2][&format=txt|html|json][&diffmode=...]

Parameters:

| Parameter | Description | |------------|-------------| | diff | One or two keywords joined by + (or just one — we'll summon a random phrase for the second) | | format | Output format: txt, html, or json | | diffmode | Visual diff style: classic, strike, redacted, corrupt, delta, tagged |


🧠 Keyword Comparison Modes

| Example | Result | |--------------------------------|------------------------------------------| | diff=ssh+cron | Compares ssh vs cron phrases | | diff=ssh | Compares ssh vs a random log phrase | | diff=banana+donkey | Both invalid? We punt you to the keyword list | | diff= or diff=list | You get the full list of valid keywords |


🎨 Diff Modes

Want to see what kind of visual magic we support? Try:

?diffmode=list

Available Modes:

  • classic – Old school: - removed, + added
  • strike – ~~deleted~~ and ++added++ (Markdown vibes)
  • redacted – [REDACTED], because who needs transparency?
  • corrupt – Text scrambled like your thoughts at 3AM
  • delta – Inline arrows: foo→bar
  • tagged – Annotated with [!] and [!!] so your log looks like it’s yelling

🧪 JSON Output (Sample)

[
  "awk output phrase...",
  "bash output phrase...",
  "- awk phrase line\n+ bash phrase line",
  "classic"
]

Or use ?format=json&diffmode=delta and marvel at those ➡️.

🐾 Final Note

This API doesn’t just compare logs — it tells stories of heroic cron jobs, fallen sshd soldiers,

and redacted mysteries. Use it wisely.

🧙‍♂️ Happy diffing!

🔍 Scenario API Endpoint: Pentester Command Hunter

Welcome to the Scenario Endpoint — your lightweight, keyword-driven command retriever.

It’s like man, grep, and a Red Team intern had a baby.

🧠 What Is It?

This API endpoint lets you search through multiple well-known pentesting cheat sheets (real ones!)

for any command-line tool or keyword.

All results are cleaned and updated.


🔗 Endpoint

GET /api.php?scenario={keyword}

🔁 Example:

/api.php?scenario=ssh

🔎 Response:

{
  "scenario": "ssh",
  "commands": [
    "ssh user@host",
    "nmap -p 22 --script ssh-brute target",
    "hydra -L users.txt -P rockyou.txt ssh://target"
  ],
  
}

🧾 Another Example:

/api.php?scenario=nmap
{
  "scenario": "nmap",
  "commands": [
    "nmap -sS -p 1-65535 -T4 target",
    "nmap -A -T4 target",
    "nmap --script vuln target"
  ],
  "count": 17
}

✅ Bonus Endpoint

/api.php?scenarios=list

Returns all known, discovered tools and scenario keywords.


📬 Secure Message Exchange API Feature

Welcome to the Secure Message Exchange System, the James Bond of your API suite. 🕶️

All users can now whisper secrets to each other — securely, discreetly, and even destructively.

🚀 New Feature: Encrypted Messaging with Self-Destruct & Manual Deletion

Say goodbye to boring old API calls and hello to:

  • 🔐 AES-256-CBC encrypted messages
  • 📥 Inbox for API key holders
  • 💣 Messages that self-destruct after reading (because drama matters)
  • 🗑️ Manual deletion by the recipient

📤 Send a Secure Message

Endpoint

GET /api.php?as=admin&send=Your+Message&rec=RECIPIENT_API_KEY&apikey=SENDER_API_KEY

Optional: Self-Destruct After Reading

Add this:

&selfdestruct=1

Example:

/api.php?as=admin&send=Mission+starts+at+midnight&rec=abc123&apikey=xyz789&selfdestruct=1

This encrypts the message, stores it in the database, and sends an email to the recipient (notification only)


📥 Read Your Inbox

Endpoint

GET /api.php?as=admin&inbox=read&apikey=RECIPIENT_API_KEY

Example Response

{
  "inbox": [
    {
      "id": 42,
      "from": "senderKey123",
      "message": "This message will self-destruct...",
      "sent_at": "2025-05-20 18:00:00"
    }
  ]
}

Messages with selfdestruct=1 are deleted immediately after this call.


🗑️ Manual Message Deletion

Didn’t like what you read? Or just doing spring cleaning? Recipients can delete messages by ID.

Endpoint

GET /api.php?as=admin&inbox=delete&apikey=RECIPIENT_API_KEY&id=MESSAGE_ID

Example

/api.php?as=admin&inbox=delete&apikey=abc123&id=42

Response

{ "success": "Message deleted." }

🧠 Pro Tips

  • Don’t put flags like selfdestruct inside the message body. It’s an API parameter, not a dramatic tagline (though we appreciate the flair).
  • All messages are encrypted using AES-256-CBC. Your secrets are safe — even from your cat walking over your keyboard.
  • Message id is now returned for easy UI sorting and deletion.

🎨 Coming Soon

  • A beautiful, frontend inbox UI.
  • Dark mode. Because secrets deserve good lighting too.

Stay secure, stay sneaky. 😎

🥷 Why You’ll Love It

  • ✅ Fast
  • ✅ Local

Try it

Stay safe. Hack responsibly.

⚙️ Developer Features

  • MySQL + PHP or flat-file support
  • Fully featured CLI tool
  • Daily/weekly rotating logic
  • Email integration via SMTP (ProtonMail supported)
  • Easily embeddable widget

📝 License

© 2025 by [Carlostkd]


🤘 Credits

Built with 💻 + ☕ for hackers, bots, and curious minds