himalaya について
Himalaya Email Workflows は、コマンドラインメールクライアント Himalaya を操作するスキルです。メール、フォルダー、フラグ、添付ファイル、テンプレートを扱い、スクリプト向けの JSON 出力も説明します。
主な機能
- 01メール一覧の取得と絞り込み
- 02メールの閲覧、作成、返信、転送
- 03フォルダーとメールフラグの管理
- 04添付ファイルの取得とテンプレート利用
- 05スクリプト向け JSON 出力
活用シーン
- 01クエリによる未読メールの確認
- 02JSON 出力を使ったメール処理の自動化
- 03テンプレート返信の作成と送信
- 04フォルダー間でのメール移動やコピー
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ factorial-io/ skills --skill himalayaインストール後、Claude Code で/himalayaを入力して読み込まれたか確認します。
詳細
Himalaya メールワークフロー
IMAP/Maildir/Notmuch バックエンドに対応した CLI メールクライアントです。
コマンド構造
すべてのコマンドは次の形式です:himalaya <resource> <action>
| リソース | アクション |
|---|---|
envelope | list、thread |
message | read、write、reply、forward、copy、move、delete |
folder | list、add、delete、purge、expunge |
flag | add、set、remove |
attachment | download |
template | write、reply、forward、save、send |
クイックリファレンス
受信トレイの振り分け
重要: フラグはクエリフィルター(使用する場合)より前に指定する必要があります。
# List unread/new messages (use --output json for cleaner parsing)
himalaya envelope list --output json 'not flag Seen'
# List all envelopes (default: INBOX)
himalaya envelope list --output json
# List with specific folder and page
himalaya envelope list -f Archive -p 2
# Read message by ID
himalaya message read 123
# Mark as seen
himalaya flag add 123 seen
# Move to folder (TARGET first, then ID)
himalaya message move Archive 123
検索(クエリ DSL)
Himalaya は IMAP SEARCH 構文ではなく、独自のクエリ DSL を使用します。
# Filter by date
himalaya envelope list after 2025-01-01
himalaya envelope list before 2025-01-15
himalaya envelope list date 2025-01-10
# Filter by sender/recipient
himalaya envelope list from [email protected]
himalaya envelope list to [email protected]
# Filter by content
himalaya envelope list subject urgent
himalaya envelope list body "project update"
# Filter by flag (use 'not flag Seen' for unread)
himalaya envelope list 'not flag Seen'
himalaya envelope list flag flagged
# Combine with operators
himalaya envelope list from [email protected] and subject urgent
himalaya envelope list "from alice or from bob"
himalaya envelope list not flag seen
# Sort results
himalaya envelope list order by date desc
himalaya envelope list subject report order by from asc
メールの作成
# New message (opens $EDITOR)
himalaya message write
# Reply / Reply-all
himalaya message reply 123
himalaya message reply 123 --all
# Forward
himalaya message forward 456
添付ファイル(MML 構文)
添付ファイルにはコマンドラインフラグではなく、メッセージ本文内の MML を使用します。
To: [email protected]
Subject: Files attached
Here is the document.
<#part filename=/path/to/file.pdf><#/part>
Inline image:
<#part disposition=inline filename=/path/to/image.png><#/part>
整理
# List folders
himalaya folder list
# Move message(s) - TARGET folder comes first, then IDs
himalaya message move Archive 123 456
# Copy message(s) - TARGET folder comes first, then IDs
himalaya message copy Backup 123
# Delete (marks as deleted)
himalaya message delete 123
# Expunge (permanent delete)
himalaya folder expunge INBOX
スクリプト作成
# JSON output for parsing
himalaya envelope list --output json
himalaya envelope list --output json | jq '.[].id'
# Specific account
himalaya envelope list -a work
# Combine for automation
himalaya envelope list --output json 'not flag Seen' | jq -r '.[].id' | while read id
himalaya message read $id
end
共通フラグ
| フラグ | 説明 |
|---|---|
-a, --account <NAME> | 特定のアカウントを使用します |
-f, --folder <NAME> | 対象フォルダー(デフォルト:INBOX) |
-o, --output <FORMAT> | plain または json(スクリプト作成/AI による解析では json を推奨) |
-p, --page <N> | ページ番号(1 から始まります) |
-s, --page-size <N> | 1 ページあたりの結果数 |
注: プログラムで出力を解析する場合は、必ず --output json を使用してください。プレーン出力には WARN ログメッセージが含まれるため、解析の妨げになります。フラグはクエリフィルターより前に指定する必要があります。
テンプレート(非対話型)
$EDITOR を開かずにメッセージを生成します。
# Generate template (stdout)
himalaya template write
himalaya template reply 123
himalaya template forward 456
# Pipe and send
echo "To: [email protected]\nSubject: Hi\n\nHello" | himalaya template send
よくある間違い
| 誤り | 正しい例 | 理由 |
|---|---|---|
himalaya list | himalaya envelope list | リソースのプレフィックスが必要です |
himalaya read 123 | himalaya message read 123 | リソースのプレフィックスが必要です |
himalaya write -a file.pdf | 本文内の MML <#part> | -a フラグはありません |
--query "FROM x" | from x | IMAP ではなく Himalaya DSL です |
himalaya search ... | himalaya envelope list ... | search コマンドはありません |
himalaya envelope list 'query' -o json | himalaya envelope list --output json 'query' | フラグはクエリより前に指定する必要があります |
himalaya message move 123 Folder | himalaya message move Folder 123 | 対象フォルダーを先に指定します |
コメント
Markdown 対応