gotify について
gotifyは、REST API経由でセルフホスト型Gotifyサーバーを管理するコマンドラインクライアントです。プッシュ通知の送信やメッセージ送信元・受信クライアントの管理に使え、メッセージ取得、プラグイン操作、WebSocketでのリアルタイム受信にも対応します。
主な機能
- 01タイトルと優先度付き通知の送信
- 02アプリと受信クライアントの管理
- 03メッセージ一覧とページ指定取得
- 04プラグインの一覧・有効化・無効化
- 05サーバーの稼働状況とバージョン確認
- 06WebSocketでリアルタイムメッセージを受信
活用シーン
- 01デプロイやバックアップの通知送信
- 02Gotifyアプリと端末クライアントの管理
- 03最新または指定範囲のメッセージ確認
- 04リアルタイム通知の受信と処理
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ wmy2981/ skills --skill gotifyインストール後、Claude Code で/gotifyを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
.claude-plugin/plugin.jsonreferences/api_doc_spec.jsonscripts/.env.examplegotify_client.py詳細
Gotify CLI クライアント
セルフホスト型の Gotify サーバーで、REST API v2.0.2 を介してプッシュ通知を送信・管理します。
実行ルール
依存関係、環境変数、設定を事前に確認せず、ユーザーが要求したコマンドを直接実行してください。問題がある場合は、スクリプトが明確なエラーを出して失敗します。その場合にのみ確認して修正してください。
環境変数
| 変数 | 必須 | 用途 |
|---|---|---|
GOTIFY_URL | ✅ | サーバーのベース URL(例:https://gotify.example.com) |
GOTIFY_CLIENT_TOKEN | ✅ | クライアントトークン — アプリとクライアントの管理、メッセージの読み取り |
GOTIFY_APP_TOKEN | ✅ | アプリケーショントークン — メッセージの送信 |
スクリプトはこれらの変数を ~/.wmyskills/.env(スキル間で共有)から自動的に読み込みます。スクリプトのディレクトリに scripts/.env がある場合は、そちらが優先されます。テンプレートには scripts/.env.example を使用してください。既存のファイルを上書きせず、変数を ~/.wmyskills/.env に追加してください。トークンがない場合は明確なエラーが表示されます。--token を使って、呼び出しごとにトークンを指定することもできます。
要件
# Core — stdlib only (no install needed)
# WebSocket (optional, for ws-subscribe only):
pip install websocket-client
使い方
スクリプト:scripts/gotify_client.py
python scripts/gotify_client.py <command> [options]
🔔 通知の送信
python scripts/gotify_client.py send \
--message "Deployment succeeded" \
--title "CI/CD Alert" \
--priority 5
| フラグ | 必須 | 説明 |
|---|---|---|
--message / -m | ✅ | メッセージ本文(Markdown に対応) |
--title / -t | 通知のタイトル | |
--priority / -p | 0~10(0=サイレント、10=緊急。省略時は送信されず、API では 0 が使用されます) | |
--extras | プラグイン固有データ用の JSON 文字列 | |
--token | アプリトークンを上書き |
Extras の例(Firebase プッシュ設定):
python scripts/gotify_client.py send -m "Hello" --extras '{"firebase":{"priority":"high"}}'
📱 アプリケーション(メッセージの送信元)
# List all applications
python scripts/gotify_client.py list-apps
# Create a new application
python scripts/gotify_client.py create-app \
--name "Backup Bot" \
--description "Backup notifications" \
--default-priority 3
# Delete an application
python scripts/gotify_client.py delete-app --id 5
create-app フラグ | 必須 | 説明 |
|---|---|---|
--name | ✅ | アプリケーション名 |
--description / -d | 説明 | |
--default-priority | デフォルトのメッセージ優先度(0~10) | |
--image | アプリケーション画像の URL | |
--internal | 内部用として指定(フラグのみ。値は不要) |
create-appが返すtokenは、メッセージ送信用のアプリトークンです。安全に保管してください。
📲 クライアント(通知を受信するデバイス)
# List all clients
python scripts/gotify_client.py list-clients
# Create a new client
python scripts/gotify_client.py create-client --name "iPhone"
# Delete a client
python scripts/gotify_client.py delete-client --id 3
📬 メッセージ
# List recent messages (default: 30)
python scripts/gotify_client.py list-messages --limit 50
# Pagination — get messages after ID 100
python scripts/gotify_client.py list-messages --since 100
# Use a specific token to list messages (app or client token)
python scripts/gotify_client.py list-messages --token <token>
# Delete a single message
python scripts/gotify_client.py delete-message --id 42
# Bulk delete: all messages with ID < 500
python scripts/gotify_client.py delete-messages --before 500
# Bulk delete from a specific app
python scripts/gotify_client.py delete-messages --app-id 3 --before 500
list-messages フラグ | 説明 |
|---|---|
--limit | 返すメッセージの最大数(1~200。デフォルトは 30) |
--since | メッセージ ID のオフセット。この値より大きい ID のメッセージを返します |
--token | トークンを上書き(デフォルトでは環境変数のクライアントトークンを使用) |
🔌 プラグイン
# List installed plugins
python scripts/gotify_client.py list-plugins
# Enable a plugin
python scripts/gotify_client.py toggle-plugin --id 1
# Disable a plugin
python scripts/gotify_client.py toggle-plugin --id 1 --disable
❤️ サーバーのヘルス状態とバージョン
# Health check
python scripts/gotify_client.py health
# Version info
python scripts/gotify_client.py version
📡 リアルタイム WebSocket ストリーム
ライブメッセージを購読します(websocket-client が必要です)。
pip install websocket-client
python scripts/gotify_client.py ws-subscribe
# Override token:
python scripts/gotify_client.py ws-subscribe --token <client-or-app-token>
出力は、受信したメッセージごとに 1 つの JSON オブジェクトです。
API キーの基本事項
- アプリトークン(
GOTIFY_APP_TOKEN):/messageを介したメッセージの送信に使用します - クライアントトークン(
GOTIFY_CLIENT_TOKEN):それ以外の場所で、アプリ/クライアント/メッセージを管理するために使用します - トークンは
X-Gotify-Keyヘッダーを介して渡されます(この処理はスクリプトが自動で行います)
トラブルシューティング
| エラー | 原因 | 対処方法 |
|---|---|---|
GOTIFY_URL not set | 環境変数がありません | GOTIFY_URL=https://your-server を設定します |
401 Unauthorized | トークンが正しくないか、設定されていません | 必要なトークンの種類を確認し、環境変数を検証します |
403 Forbidden | 送信時にクライアントトークンを使用しています | /message にはアプリトークンを使用します |
Connection refused | サーバーが停止しています | health を実行して確認します |
No app token | トークンが設定されていません | GOTIFY_APP_TOKEN を設定するか、--token を使用します |