{/ Эта страница автоматически создается из навыков SKILL.md с помощью сайта/scripts/generate-skill-docs.py. Редактируйте исходный SKILL.md, а не эту страницу. /}

Гималаи

Himalaya CLI: электронная почта терминала IMAP/SMTP.

Метаданные навыки

Источник Встроенный (устанавливается по умолчанию)
Путь навыки/электронная почта/Гималаи
Версия 1.1.0
Автор сообщество
Лицензия Массачусетский технологический институт
Платформы Linux, MacOS, Windows
Теги Электронная почта, IMAP, SMTP, CLI, Связь

Справочник: полный SKILL.md:::информация

Ниже приведено полное описание навыка, который Hermes загружает при активации этого навыка. Это то, что агент видит в качестве инструкций, когда навыки активны.

Интерфейс командной строки электронной почты Himalaya

Himalaya — это CLI-клиент электронной почты, позволяющий управлять письмами из терминала с использованием серверов IMAP, SMTP, Notmuch или Sendmail.

Справочные материалы

Предварительные требования

  1. Установлен Himalaya CLI (himalaya --version для проверки)
  2. Файл конфигурации в ~/.config/himalaya/config.toml
  3. Настроены учётные данные IMAP/SMTP (пароль хранения в безопасном месте).

Установка

# Готовый бинарник (Linux/macOS — рекомендуется)
curl -sSL https://raw.githubusercontent.com/pimalaya/himalaya/master/install.sh | PREFIX=~/.local sh

# macOS через Homebrew
brew install himalaya

# Или через cargo (любая платформа с Rust)
cargo install himalaya --locked

Настройка конфигурации

Запустите интерактивный мастер для настройки учётной записи:

himalaya account configure

Или создайте ~/.config/himalaya/config.toml вручную:

[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"  # или используйте 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"

# Псевдонимы папок (синтаксис himalaya v1.2.0+). Требуются, когда
# имена папок сервера не совпадают с каноническими именами himalaya
# (inbox/sent/drafts/trash). Gmail — частый случай — см.
# `references/configuration.md` для маппинга `[Gmail]/Sent Mail`.
folder.aliases.inbox = "INBOX"
folder.aliases.sent = "Sent"
folder.aliases.drafts = "Drafts"
folder.aliases.trash = "Trash"

Внимание по синтаксису псевдонимов. В документации к v1.2.0 используется раздел [accounts.NAME.folder.alias] (единственное число alias). v1.2.0 теряет такую форму — TOML парсится нормально, но преобразователь псевдонимов его не читает, поэтому каждый запрос падает на Каноническое имя. В Gmail это означает, что сохранение при доставке завершается ошибкой после успешная доставка SMTP, и «отправка сообщения Гималаев» завершается ненулевым кодом. Любой вызывающий (агент, скрипт, пользователь), который повторяет такой код при выполнении, перезапустить всю отправку — включая SMTP — создать дублирующиеся письма получателям. Всегда используйте folder.aliases.X (множественное число, точечные ключи, непосредственно в разделе [accounts.NAME]).

Заметки по поддержке Hermes

Часто используемые операции

Список папок

himalaya folder list

Список писем

Список писем в INBOX (по умолчанию):

himalaya envelope list

Список писем в адрес:

himalaya envelope list --folder "Sent"

Список с пагинацией:

himalaya envelope list --page 1 --page-size 20

Поиск писем

himalaya envelope list from john@example.com subject meeting

Чтение писем

Чтение писем по удостоверению личности (показывает обычный текст):

himalaya message read 42

Экспорт сырого MIME:

himalaya message export 42 --full

Ответ на письмо

Чтобы ответить неинтерактивно из Гермеса, прочитайте исходное сообщение, составьте ответ и передайте через трубку:

# Получить шаблон ответа, отредактировать и отправить
himalaya template reply 42 | sed 's/^$/\nВаш текст ответа здесь\n/' | himalaya template send

Или выберите ответ вручную:

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

Ваш ответ здесь.
EOF

Ответ всем (интерактивно — требуется $EDITOR, вместо этого воспользуйтесь подходом с шаблоном выше):

himalaya message reply 42 --all

Пересылка писем

# Получить шаблон пересылки и передать с изменениями
himalaya template forward 42 | sed 's/^To:.*/To: newrecipient@example.com/' | himalaya template send

Описание новых писем

Неинтерактивно (используйте это из Гермеса) — передайте сообщение через стандартный ввод:

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

Привет от Himalaya!
EOF

Или с флагом заголовков:

himalaya message write -H "To:recipient@example.com" -H "Subject:Test" "Текст сообщения здесь"

Примечание: запись сообщения Himalaya без передачи через канал открывает $EDITOR. Это работает с pty=true + фоновый режим, но передача через трубу проще и надёжнее.

Перемещение/копирование писем

Перемещение в рычаге:

himalaya message move 42 "Archive"

Копирование в адрес:

himalaya message copy 42 "Important"

Удаление писем

himalaya message delete 42

Управление флагами

Добавить флаг:

himalaya flag add 42 --flag seen

Удалить флаг:

himalaya flag remove 42 --flag seen

Несколько учётных записей

Список учётных записей:

himalaya account list

Используйте конкретную учётную запись:

himalaya --account work envelope list

Вложения

Сохранить вложения из сообщений:

himalaya attachment download 42

Сохранить в конкретный каталог:

himalaya attachment download 42 --dir ~/Downloads

Форматы

Большинство команд используют --output для структурированного вывода:

himalaya envelope list --output json
himalaya envelope list --output plain

Отладка

Включить отладочную регистрацию:

RUST_LOG=debug himalaya envelope list

Полная трассировка с обратным следом:

RUST_LOG=trace RUST_BACKTRACE=1 himalaya envelope list

Советы