要点まとめ
- 自作のシェルスクリプトやフックからは、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の通知センターを読み取る機能を持っていません。自分で書けるスクリプトなら
curl1行で送れますが、スクリプト化できないデスクトップアプリの通知を送るには、通知センターの新しい項目を読み取って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分経っても送信できなかった古い通知は、遅れて届いて混乱を招くのを防ぐため自動的に破棄されます。
MacとiPhoneでの動作イメージ
macOSの通知センターフォルダに読み取り専用アクセスを許可し(フルディスクアクセス不要)、iPhoneの無料アプリ「ntfy」で専用トピックを購読します。テスト通知の受信を確認すると、7日間の無料トライアルが開始されます。

よくある質問
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一覧に掲載されています)。