macOS → ntfy

macOSの通知をntfyへ転送する方法

シェルスクリプトなら curl 1行でntfyへ通知を送れます。NotiFerryはそれ以外のすべてのMacアプリをカバーし、macOS通知センターの新しいアラートを読み取ってあなたのntfyトピックへ送信します。

brew install --cask n2ctech/tap/notiferry

最終更新: · macOS 15.0 以降対応 · 7日間無料トライアル

要点まとめ

  • 自作のシェルスクリプトやフックからは、curl で直接 ntfy へPOSTできます。
  • スクリプトを組めないデスクトップMacアプリについては、NotiFerryが通知センターの新規項目を読み取ってntfyトピックへ自動送信します。
  • デフォルトの公開サーバー ntfy.sh にも、HTTPSのセルフホストntfyサーバー(Bearerトークン / Basic認証)にも対応しています。
  • 3つのプライバシーモードにより、通知全文・タイトルのみ・汎用アラートのどれを送るか選択できます。

まず確認:どちら方向の通知が必要ですか?

「ntfy macOS」で検索されるケースには、向きが正反対の2つの用途があります:

  • ntfyトピックの通知をMacで受け取る(受信): ブラウザで ntfy.sh/app を開いてWeb通知を許可するか、CLIクライアントの ntfy subscribe を使います。この用途にはNotiFerryは必要ありません。
  • Mac上のアプリの通知をntfyトピックへ送る(送信): ntfy自体はmacOSの通知センターを読み取る機能を持っていません。自分で書けるスクリプトなら curl 1行で送れますが、スクリプト化できないデスクトップアプリの通知を送るには、通知センターの新しい項目を読み取ってntfyへPOSTするNotiFerryのようなブリッジが必要です。

NotiFerryがntfyへ送信するJSONペイロード

除外されていない新しい通知が届くたびに、NotiFerryは設定されたntfyサーバーのルートに対してJSON形式の POST リクエストを送信します:

POST https://ntfy.sh/
Content-Type: application/json

{
  "topic": "nf-…",
  "title": "<送信元アプリ名> — <通知タイトル>",
  "message": "<サブタイトルと本文>",
  "priority": 3,
  "tags": ["computer"]
}

送信されるテキストの範囲は、NotiFerryで選択したプライバシーモードによって決まります:

  • 通知の全文(Full notification): タイトルにアプリ名と通知タイトル、メッセージ本文にサブタイトルと本文が入ります。
  • タイトルのみ(デフォルト): タイトルにアプリ名と通知タイトルが入り、本文は New notification に置き換えられます。
  • 汎用アラート(Generic alert): アプリ名と New notification のみが送信されます。

セルフホスト型ntfyサーバーの利用と認証

デフォルトでは、NotiFerryは公開サービスの https://ntfy.sh と、nf- で始まるランダムな60文字(16進数)のトピック名を使用します。設定画面から、ご自身で運用するntfyサーバーのURLへいつでも切り替えられます。

  • リモートサーバーには HTTPS が必須です(http:// はローカルテスト用の localhost または 127.0.0.1 のみ許可されます)。
  • セルフホスト型サーバーからiPhoneのntfyアプリへバックグラウンドで即時プッシュ通知(APNs)を届けるには、ntfyのiOS設定ドキュメントに従い、サーバー側の server.yml に upstream-base-url: "https://ntfy.sh" を設定してください。
  • 認証なしのほか、アクセストークン(Bearer)またはユーザー名とパスワード(Basic)に対応しており、認証情報はmacOSキーチェーンに安全に保存されます。サーバーURL・トピック・認証情報を変更した際は、iPhoneで新しいテスト通知の受信を確認するまで転送が自動的に一時停止されます。

レート制限・バースト集約・ローカル再送キュー

公開サービスの ntfy.sh(無料枠の上限は1日250通)を利用する場合、NotiFerryはレート制限に抵触しないよう1分あたり約12通のペースに送信を調整します。配信が30秒以上遅れている状態で同一アプリの未送信通知が5件以上溜まると、最新1件にまとめて「直前の通知件数」を添えて送信します。

また、Macが一時的にオフラインになった場合やサーバーが 429 / 5xx を返した場合は、フィルタリング済みの通知を最大1,000件までローカルキューに保持し、最大1分間隔の指数バックオフで再試行します。発生から10分経っても送信できなかった古い通知は、遅れて届いて混乱を招くのを防ぐため自動的に破棄されます。

macOSメニューバー常駐

MacとiPhoneでの動作イメージ

macOSの通知センターフォルダに読み取り専用アクセスを許可し(フルディスクアクセス不要)、iPhoneの無料アプリ「ntfy」で専用トピックを購読します。テスト通知の受信を確認すると、7日間の無料トライアルが開始されます。

7日間無料トライアルをダウンロード
brew install --cask n2ctech/tap/notiferry
iPhoneに届く通知の例(ntfyアプリ内)
ntfyたった今

Claude Code — Permission required

Allow Bash tool in notiferry? · 全文表示 または タイトルのみ

ntfy · バースト集約2分前

Xcode — Build Succeeded (+4 earlier alerts)

macOS上のNotiFerryダッシュボード画面。通知転送が有効で、セッション中に9件の通知が転送され、プライバシーモードとiPhoneへのテスト送信ボタンが表示されている様子
macOS版NotiFerry:転送ステータス、プライバシーモード選択、iPhoneでのテスト受信確認。

よくある質問

NotiFerryを使うのにntfyのアカウント登録は必要ですか?

いいえ。デフォルトではntfy.sh上に長くて推測不可能なランダムトピックが自動生成されるため、iPhoneの無料アプリ「ntfy」でそのトピックを購読するだけで利用できます。

自分で立てたセルフホストのntfyサーバーも使えますか?

はい。NotiFerryの接続設定にHTTPS URLを入力し、必要に応じてBearerトークンまたはBasic認証を設定できます。iOSでバックグラウンド通知を受け取るには、サーバー側で upstream-base-url を設定してください。

シェルスクリプトからならNotiFerryなしでntfyへ送れますか?

はい。ご自身のスクリプトやClaude CodeのNotificationフックであれば、curl -d "メッセージ" https://ntfy.sh/your-topic だけで直接送信できます。NotiFerryは、スクリプト化できない一般のMacアプリの通知を通知センターから転送するためのツールです。

NotiFerryはntfyの公式プロジェクトですか?

いいえ。ntfyはPhilipp C. Heckel氏による独立したオープンソースプロジェクトおよびサービスであり、NotiFerryが運営するものではありません(NotiFerryはntfy公式ドキュメントのIntegrations一覧に掲載されています)。

ファウンディングリリース

Macアプリの通知を、あなたのntfyトピックへ自動配信。

7日間の無料トライアルは、テスト通知が実際にiPhoneへ届いたことを確認してから開始されます。その後は買い切りライセンス(€9.99・最大2台のMacで利用可能、サブスクリプションなし)で継続利用できます。購入後30日以内の全額返金保証付き(強行法規に基づく消費者の権利は影響を受けません)。

7日間無料トライアルをダウンロードまたは今すぐライセンスを購入 · €9.99
brew install --cask n2ctech/tap/notiferry
買い切り(サブスクなし) · 最大2台のMac · 定期的なオンラインライセンス認証