# Pushling: 開発者・スクリプト・AIエージェントのためのプッシュ通知

> Pushlingは、アプリ・定期ジョブ・CI・AIエージェントからの通知を、1回のHTTPリクエスト、CLI、MCPで送り、iPhone・Android・Webのひとつの受信箱で受け取れるサービスです。Tiida Techが開発しています。

開発中・一般提供前. スクリプト、CI、AIエージェントから、1回のHTTPリクエストで通知を送れます。ひとつの受信箱で受け取り、届いたか・読んだか・確認したかまで分かります。

## AIエージェントに、そのまま渡す

コーディングエージェントに貼り付けると、プロジェクトにPushlingを組み込みます。

```text
https://pushling.com/llms.txt を読み、Pushlingで長い処理の終了と失敗を通知し、取り消せない操作の前には確認を求めるようにしてください。
```

## 通知から、そのまま答える。

通知に選択肢を付けると、受け取った人がワンタップで答えられます。スクリプトやエージェントはその答えを待って進みます。

```sh
curl "$PUSHLING_URL/1/messages.json" \
  -F "token=$APP_TOKEN" -F "user=$USER_KEY" \
  -F 'message=移行を実行しますか？' \
  -F 'answers=実行する|やめる'
```

- 選択肢は4つまで。自由入力の返信も付けられます。
- どの端末から答えても、最初の答えだけが記録されます。
- 期限までに答えが無ければ「いいえ」として扱います。
- エージェントは ask_user と wait_for_answer、スクリプトは pushling ask で待てます。

現在はWebとAndroidで答えられます。iOSは開発中です。

## いつもの道具から送る。

### API

どの言語からも1リクエスト。

```sh
curl "$PUSHLING_URL/1/messages.json" \
  -H 'content-type: application/json' \
  -d '{"token":"…","user":"…",
       "title":"決済の確認",
       "message":"未確認の決済が1件あります",
       "priority":2,"retry":60,"expire":3600}'
```

### CLI

ターミナルやシェルスクリプトから。

```sh
pushling send \
  --title "夜間バックアップ" \
  --message "失敗しました" \
  --priority 1
```

### MCP

AIエージェントが送信と配信記録の確認を。

```json
{
  "mcpServers": {
    "pushling": {
      "type": "http",
      "url": "$PUSHLING_URL/mcp",
      "headers": {
        "Authorization": "Bearer …"
      }
    }
  }
}
```

開発版のAPIです。名前や接続先は変わる可能性があります。

## 鳴らし方は5段階。

- `-2` 履歴だけ: プッシュせず、次の同期で受信箱へ。
- `-1` 静かに: 音を鳴らさずに届けます。
- `0` 通常: おやすみ時間を守ります。
- `1` 重要: おやすみ時間でも鳴らします。
- `2` 確認が必要: 人が確認するまで30秒〜3時間の間隔で鳴らし続けます。

OSの集中モードやサイレント設定は解除しません。

## 通知に要るものは、ひと通り。

- 画像: PNG・JPEG・WebP・GIF、5MBまで。
- リンク: タイトル付きのURLを添えられます。
- 有効期限: 指定した時間で期限切れになります。
- 通知音: 標準・やわらかい・明るい・無音。
- おやすみ時間: 受け取る人がそれぞれ設定します。
- 端末の指定: すべての端末にも、1台だけにも。
- 二重送信の防止: 同じ冪等キーは24時間、1件として扱います。
- プロジェクト: アプリごとのキーで、受信箱でも分けて表示。
- 個人メモ: 絵文字・メモ・対応状態は端末の中だけに。

HTML表示、コールバック、エンドツーエンド暗号化、グループ配信はまだ対応していません。

## 「届いた」で、終わらせない。

段階ごとに記録するので、通知がどこで止まったか分かります。

- `ACCEPTED` 受付: 二重送信を防ぐ鍵とともに一度だけ記録。
- `PUSHED` 配信基盤: Web Push・FCM・APNsが受け付けた時点。
- `STORED` 端末に保存: 本文と画像を保存してから受信を返します。
- `READ` 既読: 受信箱で開いた記録。
- `CONFIRMED` 人が確認: 緊急通知を人が確認。送信元も確かめられます。
- `DONE` 対応完了: 自分の対応状態。この端末だけに残ります。

## 使っている端末で受け取る。

- Web: 開いている間に同期。Web Pushにも対応。
- Android: FCMによる背景での受信を検証中。
- iOS: APNsでの受信を実機で試験済み。

開発版の画面で、通知は試験データです。Pushlingへの名前変更前の画面を含みます。

## 基本は買い切り。残したい人だけPremium。

- Basic (買い切り): 通知の送信と受信、端末内の履歴; 個人メモ・絵文字・対応状態・チャンネル; 手動のバックアップと取り込み
- Premium (任意のサブスクリプション（計画中）): サーバーに残る履歴; 共有のコメントと対応状態; 端末間のクラウド同期

価格と提供時期は未定です。Premiumを終えても、Basicと端末内の履歴は消えません。

## よくある質問

### いつ使えますか？

未定です。購入とアカウント登録はまだ受け付けていません。

### Pushoverと互換性はありますか？

互換ではありません。Pushoverの公開APIに近いパラメーターと同じ5段階の重要度を使いますが、独自のサービスで、キーもPushlingで発行します。

### AIエージェントから送れますか？

送れます。質問して答えを待つこともできます。MCPサーバーの ask_user と wait_for_answer を使うか、llms.txtにあるHTTP APIをエージェントに呼ばせてください。

### 通知はすぐに届きますか？

速く届けることを目指していますが、配信基盤や端末の状態で遅れることがあります。どこまで届いたかは記録で確かめられます。

### どこで動いていますか？

Cloudflare上で動いています。

---

PushlingはTiida Techが開発しています。 https://pushling.com/ja/
