元メモ ntfyを使ったスマホへの通知の実用例を探す
今は cli の実行完了に使っている

概要

深掘り内容

現在の自分の使い方(このリポジトリでの実例)

watch.sh:23NTFY_URL="https://ntfy.sh/m1104m-cli-notify" を定義し、LINEメモを検知→Claude Codeでレポート生成→Cloudflare Pagesへデプロイ、という一連のバッチ処理が完了した際に通知を送っている(コミット 88e1c23 Deploy reports to Cloudflare Pages and notify via ntfy)。これがメモにある「今は cli の実行完了に使っている」の実体と考えられる。

1. システム・サーバー監視

curl -d "Only $avail GB available" -H "Priority: high" ntfy.sh/mytopic

2. CI/CD連携

3. ホームオートメーション・IoT

4. 定期実行の死活監視(デッドマンズスイッチ)

At/In ヘッダーでの遅延送信を利用し、一定時間ごとに未来の警告メッセージを予約し続け、プロセスが正常に動いていれば都度上書き、止まったら予約通り警告が届く、という仕組みが組める。長時間バッチや監視スクリプト自体が異常終了・ハングした場合に気づけるのが利点(現状の「正常終了時だけ通知」を補完する形)。

while true; do
  curl -H "In: 5m" -d "Heartbeat stopped!" ntfy.sh/mytopic/check
  sleep 60
done

5. CLI通知を拡張する高度な機能

現状は本文だけのシンプルな通知と推測されるが、以下のヘッダーを足すだけで情報量を増やせる。

機能ヘッダー用途例
優先度Priority: 51エラー時だけ最優先で振動させる
タイトルTitle: ...「line-obsidian: レポート生成完了」等を明示
絵文字タグTags: white_check_mark / warning成功✅・失敗⚠️を視覚的に区別
クリック時URLClick: https://...通知タップでPages上のレポートを直接開く
アクションボタンActions: view, レポートを開く, https://...ボタンから即座に遷移
MarkdownMarkdown: yesリンクや強調をリッチ表示

複合例(ドアベル通知だが構造は流用可能):

curl \
  -H "Title: Door camera alert" \
  -H "Priority: 5" \
  -H "Tags: warning" \
  -H "Click: https://home.nest.com/" \
  -H "Actions: http, Open door, https://api.nest.com/open" \
  -d "Someone at the door. 🐶" \
  ntfy.sh/doorbell

これを watch.sh に当てはめると、成功時は Tags: white_check_mark + Click: <生成されたPages URL>、失敗時は Priority: high + Tags: warning として通知を出し分けられる。

注意点(セキュリティ)

ntfy公式ドキュメントは「トピック名はパスワードと同じ」と明記している。m1104m-cli-notify のようなトピック名を知っている第三者は誰でも購読・投稿が可能(ntfy.sh はレート制限とfail2banで一定の防御はしている)。個人利用・通知内容が非機密であれば実用上大きな問題にはなりにくいが、機密情報を流す場合はセルフホストまたは require-login などのアクセス制御が推奨されている。

参考リンク

次のアクション

  1. watch.sh のntfy通知に Title / Tags / Click(生成されたPages URLへのリンク)を追加し、通知だけで内容と結果がわかるようにリッチ化する。
  2. 通知が届かない=バッチが異常終了/ハングしたケースを検知したいなら、In ヘッダーを使ったデッドマンズスイッチ方式の導入を検討する。
  3. m1104m-cli-notify は公開トピックなので、通知内容に個人情報や機微な内容を含めないか、含めるならセルフホストや require-login の導入を検討する。