Skip to content

Latest commit

 

History

15 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

Claude Usage Widget for Scriptable

iOS の Scriptable で動作する Claude 利用状況表示ウィジェットです。

Claude の Usage API から取得した使用状況を、ホーム画面・ロック画面ウィジェットで確認できます。

Features

  • Claude の使用量を iPhone のウィジェットで表示

  • ホーム画面ウィジェット対応

  • ロック画面ウィジェット対応

    • 円形ウィジェット
    • 長方形ウィジェット
    • インライン表示
  • API の limits 配列を利用した動的表示

  • モデル別制限の自動表示

  • キャッシュ表示による高速表示

  • 最後の取得成功から60分ごとの利用量更新

  • 利用量のリセット時刻に合わせた自動更新

  • 15分ごとの取得経過表示更新(API通信なし)

  • 自動取得失敗時のキャッシュ継続表示

  • 自動更新の停止と手動取得成功による再開

  • 複数Organizationの選択

  • ウィジェットのタップによる即時更新

  • Claude ロゴ表示対応

Display Example

表示例: claude-usage-widget02 png

Requirements

  • iPhone / iPad
  • Scriptable
  • Claude アカウント
  • Safari で claude.ai にログイン済み

Installation

  1. App Store から Scriptable をインストール
  2. Scriptable に新規スクリプトを作成
  3. 本リポジトリのスクリプトをコピー
  4. 初回実行
  5. Safari の Claude ログイン状態を利用して認証
  6. ホーム画面またはロック画面に Scriptable ウィジェットを追加

初回実行後は利用状況と Organization ID が保存されます。複数のOrganizationに所属している場合は、表示対象を選択できます。 ショートカット App による定期実行は不要です。

Widget Parameters

ロック画面の円形ウィジェットでは Parameter を指定できます。

Parameter 表示
5h 現在のセッション
7d すべてのプラン
model モデル別制限

Data Updates

通常はキャッシュされた利用状況を表示します。

利用量は、最後にAPI取得へ成功してから60分後を目安に更新します。API の resets_at から求めたリセット時刻の2分後が先に到来する場合は、リセット後の取得を優先します。

ホーム画面の取得経過表示は、最後にAPI取得へ成功した時刻から「15分前」「2時間前」のように分単位以上で計算します。表示更新のため、ホーム画面ウィジェットは15分ごとを目安に再描画されますが、この再描画ではAPI通信やWebViewの起動を行いません。

手動タップによる取得に成功した場合も、その成功時刻から60分を数え直します。

60分ごと、またはリセット2分後の自動取得に失敗した場合は、古い使用率と最後の取得からの経過時間を通常どおり表示し続けます。ウィジェット上にはエラーや「更新待ち」を表示せず、以後の自動API取得を停止します。

停止状態はキャッシュに保存されるため、iOSがウィジェットを再実行してもAPI通信しません。ウィジェットをタップすると直ちに手動取得し、成功した場合だけ停止状態を解除して自動更新を再開します。手動取得にも失敗した場合は、キャッシュ表示と停止状態を維持します。

ヘッダーには、最後にライブデータを取得してからの経過時間を分単位以上で表示します。取得時刻そのものはAPI取得に成功した場合だけ更新され、キャッシュの再描画では書き換わりません。

ウィジェットの実際の更新時刻は iOS によって管理されるため、指定時刻ちょうどに更新されるとは限りません。refreshAfterDate は、その日時以降に更新可能であることを iOS に伝える設定です。

詳細は Scriptable の ListWidget ドキュメントを参照してください。

Data Source

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"
        }
      }
    }
  ]
}

Configuration

主な設定項目:

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通信なし)

Authentication

認証情報は以下の用途でのみ利用します。

  • Organization ID の保存
  • Claude API へのアクセス

Organization ID は Scriptable の Keychain に保存されます。

複数のOrganizationが見つかった場合は、Scriptableアプリ内で選択画面を表示します。保存済みOrganizationが無効になった場合はIDを破棄し、候補を再検出します。認証切れを含む取得失敗では自動更新を停止し、手動タップを待ちます。

Notes

  • Claude 側の API 仕様変更により動作しなくなる可能性があります。
  • 利用状況の表示は Claude 側の API レスポンスに依存します。
  • 自動更新は iOS の判断で遅れる場合があります。
  • 個人利用を目的としたスクリプトです。
  • 本スクリプトを使用して発生したいかなる損害についても、当方は一切の責任を負いかねます。

License

MIT License

自由に利用・変更・再配布できます。 ただし、Claude API の利用規約に従って使用してください。

About

iOS Scriptable用 Claude Usage ウィジェット。Claudeの使用量をホーム画面・ロック画面でリアルタイム表示します。

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages