iOS の Scriptable で動作する Claude 利用状況表示ウィジェットです。
Claude の Usage API から取得した使用状況を、ホーム画面・ロック画面ウィジェットで確認できます。
-
Claude の使用量を iPhone のウィジェットで表示
-
ホーム画面ウィジェット対応
-
ロック画面ウィジェット対応
- 円形ウィジェット
- 長方形ウィジェット
- インライン表示
-
API の
limits配列を利用した動的表示 -
モデル別制限の自動表示
-
キャッシュ表示による高速表示
-
最後の取得成功から60分ごとの利用量更新
-
利用量のリセット時刻に合わせた自動更新
-
15分ごとの取得経過表示更新(API通信なし)
-
自動取得失敗時のキャッシュ継続表示
-
自動更新の停止と手動取得成功による再開
-
複数Organizationの選択
-
ウィジェットのタップによる即時更新
-
Claude ロゴ表示対応
- iPhone / iPad
- Scriptable
- Claude アカウント
- Safari で claude.ai にログイン済み
- App Store から Scriptable をインストール
- Scriptable に新規スクリプトを作成
- 本リポジトリのスクリプトをコピー
- 初回実行
- Safari の Claude ログイン状態を利用して認証
- ホーム画面またはロック画面に Scriptable ウィジェットを追加
初回実行後は利用状況と Organization ID が保存されます。複数のOrganizationに所属している場合は、表示対象を選択できます。 ショートカット App による定期実行は不要です。
ロック画面の円形ウィジェットでは Parameter を指定できます。
| Parameter | 表示 |
|---|---|
5h |
現在のセッション |
7d |
すべてのプラン |
model |
モデル別制限 |
通常はキャッシュされた利用状況を表示します。
利用量は、最後にAPI取得へ成功してから60分後を目安に更新します。API の resets_at から求めたリセット時刻の2分後が先に到来する場合は、リセット後の取得を優先します。
ホーム画面の取得経過表示は、最後にAPI取得へ成功した時刻から「15分前」「2時間前」のように分単位以上で計算します。表示更新のため、ホーム画面ウィジェットは15分ごとを目安に再描画されますが、この再描画ではAPI通信やWebViewの起動を行いません。
手動タップによる取得に成功した場合も、その成功時刻から60分を数え直します。
60分ごと、またはリセット2分後の自動取得に失敗した場合は、古い使用率と最後の取得からの経過時間を通常どおり表示し続けます。ウィジェット上にはエラーや「更新待ち」を表示せず、以後の自動API取得を停止します。
停止状態はキャッシュに保存されるため、iOSがウィジェットを再実行してもAPI通信しません。ウィジェットをタップすると直ちに手動取得し、成功した場合だけ停止状態を解除して自動更新を再開します。手動取得にも失敗した場合は、キャッシュ表示と停止状態を維持します。
ヘッダーには、最後にライブデータを取得してからの経過時間を分単位以上で表示します。取得時刻そのものはAPI取得に成功した場合だけ更新され、キャッシュの再描画では書き換わりません。
ウィジェットの実際の更新時刻は iOS によって管理されるため、指定時刻ちょうどに更新されるとは限りません。refreshAfterDate は、その日時以降に更新可能であることを iOS に伝える設定です。
詳細は Scriptable の ListWidget ドキュメントを参照してください。
Claude Usage API のレスポンスに含まれる limits 配列を利用しています。
例:
{
"limits": [
{
"kind": "session",
"group": "session",
"percent": 5,
"resets_at": "2026-08-20T03:00:00Z"
},
{
"kind": "weekly_all",
"group": "weekly",
"percent": 65,
"resets_at": "2026-08-25T00:00:00Z"
},
{
"kind": "weekly_scoped",
"group": "weekly",
"percent": 100,
"resets_at": "2026-08-25T00:00:00Z",
"scope": {
"model": {
"display_name": "Fable"
}
}
}
]
}主な設定項目:
const RESET_REFRESH_DELAY_MINUTES = 2;
const DATA_REFRESH_MINUTES = 60;
const AGE_REFRESH_MINUTES = 15;| 設定 | 説明 |
|---|---|
RESET_REFRESH_DELAY_MINUTES |
リセット時刻からライブ取得までの待機時間 |
DATA_REFRESH_MINUTES |
最後の取得成功から次の定期取得までの間隔 |
AGE_REFRESH_MINUTES |
ホーム画面の取得経過表示を再描画する間隔(API通信なし) |
認証情報は以下の用途でのみ利用します。
- Organization ID の保存
- Claude API へのアクセス
Organization ID は Scriptable の Keychain に保存されます。
複数のOrganizationが見つかった場合は、Scriptableアプリ内で選択画面を表示します。保存済みOrganizationが無効になった場合はIDを破棄し、候補を再検出します。認証切れを含む取得失敗では自動更新を停止し、手動タップを待ちます。
- Claude 側の API 仕様変更により動作しなくなる可能性があります。
- 利用状況の表示は Claude 側の API レスポンスに依存します。
- 自動更新は iOS の判断で遅れる場合があります。
- 個人利用を目的としたスクリプトです。
- 本スクリプトを使用して発生したいかなる損害についても、当方は一切の責任を負いかねます。
MIT License
自由に利用・変更・再配布できます。 ただし、Claude API の利用規約に従って使用してください。
