🤖HermesBlog
Hermes Practical Guides · Part 18/9/2026

Pipe Script Output to Chat

Pipe Script Output to Chat — easy-to-understand guide based on official docs

You know that feeling when you kick off a long build or a big file upload, and you end up staring at the terminal like it’s a pot of water that never boils? hermes send is like setting a little bell on that pot—it tells you the moment it’s done, no matter where you are.

What Exactly Is hermes send?

It’s a tiny command-line tool that sends a message to any chat app you already use—Telegram, Slack, Discord, Signal, you name it. Think of it as a universal “ping” button for your scripts. The best part? You don’t need to set up separate bots or tokens for each app. If Hermes already knows how to talk to your chat platform, hermes send uses that same connection automatically.

The Simplest Way to Use It

Open your terminal and type:

hermes send --to telegram "deploy finished"

That’s it. Your Telegram gets a message saying “deploy finished.” No extra setup, no new accounts.

Piping: The Real Superpower

Here’s where it gets fun. You can take the output of any command and send it straight to chat. It’s like hooking up a hose from your terminal to your phone.

echo "RAM 92%" | hermes send --to telegram

Or check your disk space and send the result:

df -h | hermes send --to slack:#sysadmin

That | symbol is called a “pipe.” It takes whatever the first command prints and feeds it to hermes send. Your script’s output becomes the message.

Sending Files and Adding Headers

Need to share a whole report or a log file? No problem:

hermes send --to discord:#ops --file /tmp/report.md

Want to add a quick subject line so people know what they’re looking at?

hermes send --to slack:#eng --subject "[CI] build.log" --file build.log

Where Can You Send? (Target Formats)

You’ve got options. Here are the common patterns:

  • --to telegram → sends to your default chat
  • --to telegram:-1001234567890 → sends to a specific group or channel
  • --to discord:#ops → uses a friendly channel name
  • --to signal:+15551234567 → sends to a phone number

Supported platforms include Telegram, Discord, Slack, Signal, SMS, WhatsApp, Matrix, and many more.

Exit Codes: Your Script’s Report Card

When hermes send finishes, it gives you a number:

  • 0 → Success! Message sent.
  • 1 → The platform rejected it (bad permissions, network issue).
  • 2 → You typed something wrong (bad arguments).

You can use these in your scripts, just like you would with curl or grep:

hermes send --to telegram "backup done" || echo "Notification failed!"

What If You Forget the Message?

Don’t worry—it won’t hang forever. If you run hermes send --to telegram without any message, file, or pipe, it gives you a clear error and exits. No frozen terminals.

Your Practical Takeaway

Start small. Pick one script you run regularly—maybe a weekly backup or a cron job—and add a single line at the end:

hermes send --to telegram "Backup completed at $(date)"

Then, next time you’re away from your desk, you’ll get a little ping on your phone. It’s a tiny addition with a big payoff: you stop babysitting your terminal and start trusting it to tell you when it needs you. That’s the whole point—let your scripts do the talking, and let your chat app do the listening.

📖 Official Docs

This article is based on the official Hermes Agent documentation:Official docs › guides/pipe-script-output