Xuất tập lệnh ống tới nền tảng nhắn tin``Hermes send
là một CLI nhỏ, có thể viết được tập lệnh để gửi tin nhắn đến bất kỳ nền tảng nhắn tin Hermes đã được định cấu hình. Hãy nghĩ về nó như mộtcurl
` đa nền tảng để nhận thông báo - bạn không cần phải chạy
cổng, bạn không cần LLM và bạn không cần dán lại mã thông báo bot
vào từng tập lệnh của bạn.
Sử dụng nó cho:
- Giám sát hệ thống (bộ nhớ, đĩa, nhiệt độ GPU, công việc chạy dài đã hoàn thành)
- Thông báo CI/CD (triển khai xong, kiểm tra thất bại)
- Các tập lệnh Cron cần ping cho bạn kết quả
- Tin nhắn một lần nhanh từ terminal
- Dẫn đầu ra của bất kỳ công cụ nào đến bất kỳ đâu ( `make | Hermes send --to Slack:#builds
)
Lệnh sử dụng lại thông tin xác thực và bộ điều hợp nền tảng tương tự mà
Hermes Gateway đã được sử dụng nên không có bề mặt cấu hình thứ hai để
duy trì.
Bắt đầu nhanh
# Plain text to the home channel for a platform
Hermes send --to Telegram "deploy finished"
# pipe in stdout from anything
echo "RAM 92%" | Hermes send --to Telegram:-1001234567890
# Send a file
Hermes send --to Discord:#ops --file /tmp/report.md
# Attach a subject/header line
Hermes send --to Slack:#eng --subject "[CI] build.log" --file build.log
# Thread target (Telegram topic, Discord thread)
Hermes send --to Telegram:-1001234567890:17585 "threaded reply"
# List every configured target
Hermes send --list
# Filter by platform
Hermes send --list Telegram
`
---
## Tham chiếu đối số
| Cờ | Mô tả |
|------|-------------|
|
-t, --to TARGET
` | Điểm đến. Xem [target formats](#target-formats). |
|
`message
` (vị trí) | Văn bản tin nhắn. Bỏ qua để đọc từ
--file
` hoặc stdin. |
|
-f, --file PATH
` | Đọc nội dung từ một tập tin.
--file -
` buộc stdin. |
|
-s, --subject LINE
` | Thêm tiêu đề/dòng chủ đề trước phần nội dung. |
|
-l, --list
` | Liệt kê các mục tiêu có sẵn Bộ lọc nền tảng vị trí tùy chọn. |
|
-q, --quiet
` | Không có thiết bị xuất chuẩn khi thành công (chỉ mã thoát - lý tưởng cho các tập lệnh). |
|
--JSON
` | Phát ra kết quả JSON thô của lần gửi. |
|
-h, --help
` | Hiển thị văn bản trợ giúp tích hợp. |
### Định dạng mục tiêu
| Định dạng | Ví dụ | Ý nghĩa |
|--------|----------|---------|
|
`platform
` |
`Telegram
` | Gửi tới kênh chủ được cấu hình của nền tảng |
|
`platform:chat_id
` |
`Telegram:-1001234567890
` | Trò chuyện / nhóm / người dùng số cụ thể |
|
`platform:chat_id:thread_id
` |
`Telegram:-1001234567890:17585
` | Chủ đề cụ thể hoặc chủ đề diễn đàn Telegram |
|
`platform:#channel
` |
`Discord:#ops
` | Tên kênh thân thiện với con người (được giải quyết theo thư mục kênh) |
|
`platform:+E164
` |
`Signal:+15551234567
` | Nền tảng địa chỉ điện thoại: Signal, SMS, WhatsApp |
Bất kỳ nền tảng nào Hermes gửi bộ điều hợp để hoạt động như một mục tiêu:
`Telegram
,
`Discord
,
`Slack
,
`Signal
,
`sms
,
`WhatsApp
,
`Matrix
,
`Mattermost
,
`Feishu
,
`DingTalk
,
`WeCom
,
`weixin
,
`email
` và
những người khác.
### Mã thoát
| Mã | Ý nghĩa |
|------|----------|
|
`0
` | Gửi (hoặc liệt kê) thành công |
|
`1
` | Phân phối không thành công ở cấp nền tảng (xác thực, quyền, mạng) |
|
`2
` | Lỗi sử dụng/đối số/cấu hình |
Mã thoát tuân theo quy ước Unix tiêu chuẩn để tập lệnh của bạn có thể
phân nhánh trên chúng giống như cách chúng làm trên
`curl
` hoặc
`grep
.
---
## Độ phân giải nội dung thư``Hermes send
` giải quyết nội dung thư theo thứ tự sau:
1. **Đối số vị trí** —
`Hermes send --to Telegram "hi"
2. **
--file PATH
** —
`Hermes send --to Telegram --file msg.txt
3. **Stdin đường ống** —
`echo hi | Hermes send --to Telegram
``Khi stdin là TTY (không có ống), Hermes **không** đợi đầu vào - bạn sẽ
thay vào đó nhận được một lỗi sử dụng rõ ràng. Điều này giúp các tập lệnh không bị treo nếu chúng
vô tình bỏ sót cơ thể.
---
## Ví dụ trong thế giới thực
### Giám sát: Cảnh báo bộ nhớ/đĩa
Thay thế các lệnh gọi
`curl https://API.Telegram.org/...
` đặc biệt trong cơ quan giám sát của bạn
với một dòng di động duy nhất:
``` bash
#!/usr/bin/env bash
ram_pct=$(free | awk '/^Mem:/ \{printf "%d", $3 * 100 / $2}')
if [ "$ram_pct" -ge 85 ]; then
Hermes send --to Telegram --subject "⚠ MEMORY WARNING" \
"RAM $\{ram_pct}% on $(hostname)"
fi
`
``Vì
`Hermes send
` sử dụng lại cấu hình Hermes của bạn nên tập lệnh tương tự sẽ hoạt động trên
bất kỳ máy chủ nào được cài đặt Hermes — không cần xuất mã thông báo bot vào
môi trường của từng máy một cách thủ công.
:::tip[Don't alert the gateway about itself]
Đối với các cơ quan giám sát có thể kích hoạt khi cổng đang gặp khó khăn (OOM
cảnh báo, cảnh báo đầy đĩa), hãy tiếp tục sử dụng lệnh gọi
`curl
` tối thiểu thay vì
`Hermes send
. Nếu trình thông dịch Python không thể tải vì hộp này
đập mạnh, bạn vẫn muốn cảnh báo đó tắt.
:::
### CI/CD: Kết quả Build và Test
``` bash
# In .GitHub/workflows/deploy.yml or any CI script
if ./scripts/deploy.sh; then
Hermes send --to Slack:#deploys "✅ $\{CI_COMMIT_SHA:0:7} deployed"
else
tail -n 100 deploy.log | Hermes send \
--to Slack:#deploys --subject "❌ deploy failed"
exit 1
fi
`
### Cron: Báo cáo hàng ngày
``` bash
# Crontab entry
0 9 * * * /usr/local/bin/generate-metrics.sh \
| /home/me/.Hermes/bin/Hermes send \
--to Telegram --subject "Daily metrics $(date +%Y-%m-%d)"
`
### Tác vụ chạy dài: Ping khi hoàn thành
``` bash
./train.py --epochs 200 && \
Hermes send --to Telegram "training done" || \
Hermes send --to Telegram "training failed (exit $?)"
`
### Viết kịch bản với
`
--JSON
` và
--quiet
`
``` bash
# Hard-fail a script if delivery fails; don't clutter logs on success
Hermes send --to Telegram --quiet "keepalive" || {
echo "Telegram delivery failed" >&2
exit 1
}
# Capture the message ID for later editing / threading
msg_id=$(Hermes send --to Discord:#ops --JSON "build started" \
| jq -r .message_id)
`
---
##
`Hermes send
` có cần chạy cổng không?**Thường là không.** Đối với mọi nền tảng mã thông báo bot - Telegram, Discord, Slack,
Signal, SMS, WhatsApp Cloud API và hầu hết các thứ khác — cuộc gọi
`Hermes send
điểm cuối REST của nền tảng trực tiếp bằng cách sử dụng thông tin đăng nhập từ
~/.Hermes/.env
` và
~/.Hermes/config.yaml
. Đó là một quy trình con độc lập
sẽ thoát ngay khi tin nhắn được gửi.
Cổng trực tiếp chỉ bắt buộc đối với **nền tảng plugin** dựa trên
kết nối bộ điều hợp liên tục (ví dụ: một plugin tùy chỉnh giúp duy trì
một WebSocket tồn tại lâu dài được mở). Trong trường hợp đó bạn sẽ nhận được một lỗi rõ ràng
chỉ vào cổng; khởi động nó với
`Hermes gateway start
` và thử lại.
---
## Liệt kê và khám phá mục tiêu
Trước khi gửi đến một kênh cụ thể, bạn có thể kiểm tra những gì có sẵn:
``` bash
# Every target across every configured platform
Hermes send --list
# Just Telegram targets
Hermes send --list Telegram
# Machine-readable
Hermes send --list --JSON
`
``Danh sách được xây dựng từ
~/.Hermes/channel_directory.JSON
, mà
cổng làm mới vài phút một lần khi nó đang chạy. Nếu bạn thấy
"chưa phát hiện được kênh nào", hãy khởi động cổng một lần (
`Hermes Gateway
start
) để nó có thể điền vào bộ đệm.
Những cái tên thân thiện với con người (
`Discord:#ops
,
`Slack:#engineering
) đã được giải quyết
dựa vào bộ đệm này tại thời điểm gửi, do đó bạn không cần phải ghi nhớ số
ID.
---
## So sánh với các phương pháp khác
| Tiếp cận | Đa nền tảng | Tái sử dụng tín dụng Hermes | Cần cổng | Tốt nhất cho |
|----------|-------|----------------------|--------------|----------|
|
`Hermes send
` | ✅ | ✅ | Không (mã thông báo bot) | Mọi thứ bên dưới |
|
`curl
` thô cho từng nền tảng | Mỗi kịch bản riêng biệt | Hướng dẫn sử dụng | Không | Cơ quan giám sát quan trọng |
| Việc làm
`cron
` với
--deliver
` | ✅ | ✅ | Không | Nhiệm vụ đại lý theo lịch trình |
| Công cụ đại lý
`send_message
` | ✅ | ✅ | Không | Bên trong một vòng lặp đại lý |
Hermes send
` được coi là bề mặt đơn giản nhất có thể. Nếu bạn cần
một đại lý để quyết định những gì cần nói, hãy sử dụng công cụ
`send_message
` từ bên trong
trò chuyện hoặc công việc định kỳ. Nếu bạn cần chạy theo lịch trình với nội dung do LLM tạo,
sử dụng
`cronjob(action='create', prompt=...)
` với
`deliver='Telegram:...'
.
Nếu bạn chỉ cần tạo một chuỗi thô, hãy liên hệ với
`Hermes send
.
---
## Liên quan
- [Automate Anything with Cron](/docs/guides/automate-with-cron) —
các công việc đã lên lịch có đầu ra tự động phân phối tới bất kỳ nền tảng nào.
- [Gateway Internals](/docs/developer-guide/gateway-internals) —
bộ định tuyến phân phối mà
`Hermes send
` chia sẻ với phân phối định kỳ.
- [Messaging Platform Setup](/docs/user-guide/messaging/) —
cấu hình một lần cho mỗi nền tảng.