mcpField
H
himalaya

himalaya

github.com/factorial-io生産性160 回インストール15 週間前に更新
リポジトリ

himalaya について

Himalaya Email Workflows は、コマンドラインメールクライアント Himalaya を操作するスキルです。メール、フォルダー、フラグ、添付ファイル、テンプレートを扱い、スクリプト向けの JSON 出力も説明します。

主な機能

  1. 01メール一覧の取得と絞り込み
  2. 02メールの閲覧、作成、返信、転送
  3. 03フォルダーとメールフラグの管理
  4. 04添付ファイルの取得とテンプレート利用
  5. 05スクリプト向け JSON 出力

活用シーン

  1. 01クエリによる未読メールの確認
  2. 02JSON 出力を使ったメール処理の自動化
  3. 03テンプレート返信の作成と送信
  4. 04フォルダー間でのメール移動やコピー

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/factorial-io/skills --skill himalaya

インストール後、Claude Code で/himalayaを入力して読み込まれたか確認します。

詳細

Himalaya メールワークフロー

IMAP/Maildir/Notmuch バックエンドに対応した CLI メールクライアントです。

コマンド構造

すべてのコマンドは次の形式です:himalaya <resource> <action>

リソースアクション
envelopelist、thread
messageread、write、reply、forward、copy、move、delete
folderlist、add、delete、purge、expunge
flagadd、set、remove
attachmentdownload
templatewrite、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 listhimalaya envelope listリソースのプレフィックスが必要です
himalaya read 123himalaya message read 123リソースのプレフィックスが必要です
himalaya write -a file.pdf本文内の MML <#part>-a フラグはありません
--query "FROM x"from xIMAP ではなく Himalaya DSL です
himalaya search ...himalaya envelope list ...search コマンドはありません
himalaya envelope list 'query' -o jsonhimalaya envelope list --output json 'query'フラグはクエリより前に指定する必要があります
himalaya message move 123 Folderhimalaya message move Folder 123対象フォルダーを先に指定します

コメント