الدليل Skill
SkillbundledHermes Bundled Skills

Himalaya

Himalaya: مهارة ينشرها مجتمع Hermes. مجالها التواصل والمواعيد. الرخصة MIT. الإصدار الموثّق 1.1.0. مثبّتة افتراضيًا مع Hermes، فلا تحتاج خطوة تثبيت. تدعم: linux، macos، windows.

EmailIMAPSMTPCLICommunicationBundledHermes skill
آخر تحقق من السجل2026-08-18v1.1.0community
افتح المصدر الأصليRead in English
المعنى ببساطة

ماذا يضيف إلى Hermes؟

Himalaya: مهارة ينشرها مجتمع Hermes. مجالها التواصل والمواعيد. الرخصة MIT. الإصدار الموثّق 1.1.0. مثبّتة افتراضيًا مع Hermes، فلا تحتاج خطوة تثبيت. تدعم: linux، macos، windows.

Himalaya هي مهارة مرتبطة بمجال التواصل والمواعيد. يربط الوكيل بقناة تواصل أو تقويم. الفرق المهم هو ما إذا كان يقرأ فقط أم يستطيع الإرسال والتعديل.

هذا تفسير مبسّط مبني على وصف الناشر. أبقينا الوصف الإنجليزي بجانبه حتى تستطيع مقارنة المعنى بالمصدر.

استخدمه عندما

استخدمه عندما يكون هدفك واضحًا في التواصل والمواعيد وتستطيع تحديد البيانات والأفعال التي يحتاجها فقط.

لا تحتاجه عندما

لا تضفه لمجرد التجربة إذا كان لديك طريق أبسط داخل Hermes، أو إذا لم تستطع مراجعة المصدر والصلاحيات.

لمن يناسب؟

مناسب لمن يريد طريقة عمل قابلة للتكرار داخل Hermes.

أول اختبار آمن

استخدم حسابًا تجريبيًا أو مسودة فقط، وتأكد أن الإرسال الفعلي يحتاج موافقة صريحة.

الوصف الأصلي من الناشر، من دون ترجمة تغيّر المعنى

Himalaya CLI: IMAP/SMTP email from terminal

مصدر البيانات

فُهرس هذا الإدخال من Hermes Bundled Skills. الشرح العربي يفسّر النوع والمجال ولا يضيف وظيفة غير مذكورة في المصدر.

!
مراجعة الأمان

المصدر رسمي أو خضع لمراجعة تحريرية، لكن ذلك لا يغني عن مراجعة الصلاحيات والإصدار.

مسار تثبيت آمن

افحص، ثبّت، ثم اختبر.

  1. 01
    افتح المصدر

    طابق اسم الناشر والرخصة والوصف مع حاجتك، وراجع آخر تحديث فعلي.

  2. 02
    راجع الصلاحيات والأسرار

    لا تلصق قيمة سر داخل الموقع. استخدم أسماء متغيرات البيئة وامنح أقل نطاق ممكن.

  3. 03
    انسخ الإعداد فقط بعد المراجعة

    الأزرار أدناه تنسخ نصًا إلى الحافظة ولا تشغّل أمرًا على جهازك.

  4. 04
    اختبر بمهمة غير حساسة

    تحقق من الأدوات الظاهرة، ثم استبعد أدوات الكتابة أو الحذف التي لا تحتاجها.

طريقة الإعداد

مثبّتة مسبقًا مع Hermes.

تأتي هذه المهارة مع Hermes وتُحمَّل عندما يرى الوكيل أنها مناسبة. لا شيء لتثبيته؛ اقرأ التعريف أدناه لتعرف ما ستفعله.

افتح الصفحة الرسمية
تعريف المهارة كاملًا

ما الذي يحمّله Hermes بالضبط عند تشغيل هذه المهارة.

منقول من التوثيق الرسمي. اقرأه قبل تفعيل المهارة، فهذا النص يصبح تعليمات الوكيل نفسه.

Himalaya CLI: IMAP/SMTP email from terminal.

Skill metadata

جدول مرجعي. لا تقرأه كله، ابحث عن السطر الذي يخصّك فقط.

SourceBundled (installed by default)
Pathskills/email/himalaya
Version1.1.0
Authorcommunity
LicenseMIT
Platformslinux, macos, windows
TagsEmail, IMAP, SMTP, CLI, Communication

Reference: full SKILL.md

شرح للفكرة نفسها. اقرأه ببطء، فبقية الأقسام تبني عليه.

Himalaya is a CLI email client that lets you manage emails from the terminal using IMAP, SMTP, Notmuch, or Sendmail backends.

This skill is separate from the Hermes Email gateway adapter. The gateway adapter lets people email the agent and uses Hermes' built-in IMAP/SMTP adapter; this skill lets the agent operate a mailbox from terminal tools and requires the external himalaya CLI.

References

شرح للفكرة نفسها. اقرأه ببطء، فبقية الأقسام تبني عليه.

  • references/configuration.md (config file setup + IMAP/SMTP authentication)
  • references/message-composition.md (MML syntax for composing emails)

Prerequisites

شرح للفكرة نفسها. اقرأه ببطء، فبقية الأقسام تبني عليه.

  1. Himalaya CLI installed (himalaya --version to verify)
  2. A configuration file at ~/.config/himalaya/config.toml
  3. IMAP/SMTP credentials configured (password stored securely)

Installation

Shell8 أسطر
# Pre-built binary (Linux/macOS — recommended)
curl -sSL https://raw.githubusercontent.com/pimalaya/himalaya/master/install.sh | PREFIX=~/.local sh

# macOS via Homebrew
brew install himalaya

# Or via cargo (any platform with Rust)
cargo install himalaya --locked

Configuration Setup

خطوات عملية بالترتيب. نفّذ خطوة وتأكد أنها نجحت قبل الانتقال للتالية.

Run the interactive wizard to set up an account:

Shellسطر واحد
himalaya account configure

Or create ~/.config/himalaya/config.toml manually:

TOML29 سطرًا
[accounts.personal]
email = "you@example.com"
display-name = "Your Name"
default = true

backend.type = "imap"
backend.host = "imap.example.com"
backend.port = 993
backend.encryption.type = "tls"
backend.login = "you@example.com"
backend.auth.type = "password"
backend.auth.cmd = "pass show email/imap"  # or use keyring

message.send.backend.type = "smtp"
message.send.backend.host = "smtp.example.com"
message.send.backend.port = 587
message.send.backend.encryption.type = "start-tls"
message.send.backend.login = "you@example.com"
message.send.backend.auth.type = "password"
message.send.backend.auth.cmd = "pass show email/smtp"

# Folder aliases (himalaya v1.2.0+ syntax). Required whenever the
# server's folder names don't match himalaya's canonical names
# (inbox/sent/drafts/trash). Gmail is the common case — see
# `references/configuration.md` for the `[Gmail]/Sent Mail` mapping.
folder.aliases.inbox = "INBOX"
folder.aliases.sent = "Sent"
folder.aliases.drafts = "Drafts"
folder.aliases.trash = "Trash"
Heads up on the alias syntax. Pre-v1.2.0 docs used a [accounts.NAME.folder.alias] sub-section (singular alias). v1.2.0 silently ignores that form — TOML parses fine, but the alias resolver never reads it, so every lookup falls through to the canonical name. On Gmail this means save-to-Sent fails after SMTP delivery succeeds, and himalaya message send exits non-zero. Any caller (agent, script, user) that retries on that exit code will re-run the entire send — including SMTP — producing duplicate emails to recipients. Always use folder.aliases.X (plural, dotted keys, directly under [accounts.NAME]).

Hermes Integration Notes

شرح للفكرة نفسها. اقرأه ببطء، فبقية الأقسام تبني عليه.

  • Reading, listing, searching, moving, deleting all work directly through the terminal tool
  • Composing/replying/forwarding — piped input (cat << EOF | himalaya template send) is recommended for reliability. Interactive $EDITOR mode works with pty=true + background + process tool, but requires knowing the editor and its commands
  • Use --output json for structured output that's easier to parse programmatically
  • The himalaya account configure wizard requires interactive input — use PTY mode: terminal(command="himalaya account configure", pty=true)

Common Operations

شرح للفكرة نفسها. اقرأه ببطء، فبقية الأقسام تبني عليه.

List Folders

Shellسطر واحد
himalaya folder list

List Emails

List emails in INBOX (default):

Shellسطر واحد
himalaya envelope list

List emails in a specific folder:

Shellسطر واحد
himalaya envelope list --folder "Sent"

List with pagination:

Shellسطر واحد
himalaya envelope list --page 1 --page-size 20

Search Emails

Shellسطر واحد
himalaya envelope list from john@example.com subject meeting

Read an Email

Read email by ID (shows plain text):

Shellسطر واحد
himalaya message read 42

Export raw MIME:

Shellسطر واحد
himalaya message export 42 --full

Reply to an Email

To reply non-interactively from Hermes, read the original message, compose a reply, and pipe it:

Shellسطران
# Get the reply template, edit it, and send
himalaya template reply 42 | sed 's/^$/\nYour reply text here\n/' | himalaya template send

Or build the reply manually:

Shell8 أسطر
cat << 'EOF' | himalaya template send
From: you@example.com
To: sender@example.com
Subject: Re: Original Subject
In-Reply-To: <original-message-id>

Your reply here.
EOF

Reply-all (interactive — needs $EDITOR, use template approach above instead):

Shellسطر واحد
himalaya message reply 42 --all

Forward an Email

Shellسطران
# Get forward template and pipe with modifications
himalaya template forward 42 | sed 's/^To:.*/To: newrecipient@example.com/' | himalaya template send

Write a New Email

Non-interactive (use this from Hermes) — pipe the message via stdin:

Shell7 أسطر
cat << 'EOF' | himalaya template send
From: you@example.com
To: recipient@example.com
Subject: Test Message

Hello from Himalaya!
EOF

Or with headers flag:

Shellسطر واحد
himalaya message write -H "To:recipient@example.com" -H "Subject:Test" "Message body here"

Note: himalaya message write without piped input opens $EDITOR. This works with pty=true + background mode, but piping is simpler and more reliable.

Move/Copy Emails

Move to folder (target folder comes first, then the message ID):

Shellسطر واحد
himalaya message move "Archive" 42

Copy to folder (target folder comes first, then the message ID):

Shellسطر واحد
himalaya message copy "Important" 42

Delete an Email

Shellسطر واحد
himalaya message delete 42

Manage Flags

Add flag:

Shellسطر واحد
himalaya flag add 42 --flag seen

Remove flag:

Shellسطر واحد
himalaya flag remove 42 --flag seen

Multiple Accounts

شرح للفكرة نفسها. اقرأه ببطء، فبقية الأقسام تبني عليه.

List accounts:

Shellسطر واحد
himalaya account list

Use a specific account:

Shellسطر واحد
himalaya --account work envelope list

Attachments

شرح للفكرة نفسها. اقرأه ببطء، فبقية الأقسام تبني عليه.

Save attachments from a message:

Shellسطر واحد
himalaya attachment download 42

Save to specific directory:

Shellسطر واحد
himalaya attachment download 42 --downloads-dir ~/Downloads

Output Formats

شرح للفكرة نفسها. اقرأه ببطء، فبقية الأقسام تبني عليه.

Most commands support --output for structured output:

Shellسطران
himalaya envelope list --output json
himalaya envelope list --output plain

Debugging

قسم لحل المشكلات. ابحث فيه عن العطل الذي يشبه حالتك بدل قراءته كاملًا.

Enable debug logging:

Shellسطر واحد
RUST_LOG=debug himalaya envelope list

Full trace with backtrace:

Shellسطر واحد
RUST_LOG=trace RUST_BACKTRACE=1 himalaya envelope list

Tips

شرح للفكرة نفسها. اقرأه ببطء، فبقية الأقسام تبني عليه.

  • Use himalaya --help or himalaya <command> --help for detailed usage.
  • Message IDs are relative to the current folder; re-list after folder changes.
  • For composing rich emails with attachments, use MML syntax (see references/message-composition.md).
  • Store passwords securely using pass, system keyring, or a command that outputs the password.