Repository navigation
Releases: mirute02/limitchecker
Release list
limitchecker 0.2.1
hub を公開ネットワークに置いている場合は、hub 側の更新を優先してください。
接続コードの試行回数の上限が効かない状態でした。
直した不具合
| 症状 | 原因 |
|---|---|
| 接続コードの試行上限が効かない(セキュリティ) | 回数の書き戻しが握り潰されており、pairing.json が読めるが書けない状態だと上限が無効になる。10回外したあと正解が通った。フェイルクローズに変更 |
| Codex の取得が終わらず、子プロセスが溜まる | タイムアウトが機能していなかった。readline() がブロックするため締切が評価されない。cron が10分ごとに起動するため蓄積する |
| 横棒の行間が不揃いに見える | サービスの区切りを見出しの後ろに入れていたため、見出しが下のグループから切り離されて見えていた |
| 接続を開いたまま放置するとスレッドが残る | 受信側にタイムアウトが無かった |
install-agent.sh が settings.json の権限を緩める |
600 が 644 になっていた。元の権限を引き継ぐように変更 |
| パスに空白があると手順が壊れる | 引用の漏れ |
| macOS で Tailscale のアドレスを引けない | launchd の PATH に tailscale が無かった |
isdigit() が全角数字を通す点、一時ファイルが 644 で作られる点、
systemd の ReadWritePaths で初回起動が失敗しうる点もあわせて直しました。
追加した機能
- ウィジェットをタップすると、「あと何時間」と「何時に回復するか」(24時間表記)が切り替わります。 切り替えと同時に残量も更新します
ドキュメント
- README にスクリーンショットを追加(日本語・英語)
検査
公開前に APK を検査しました。.env と keystore.properties から実際の値を
読み込んで照合する方式です。トークンと署名鍵のパスワードは含まれていません。
一致した3件はループバックの既定値とアプリ名で、秘密ではありません。
検査の途中で、対照試験が 0 件になる欠陥を1つ見つけて直しました。
grep の実体が ugrep で、バイナリに -a を付けないと何も出力せずに
終わるためです。strings を通す方式に変えました。
インストール
limitchecker-0.2.1.apk をダウンロードして開いてください。
0.1.0 / 0.2.0 と同じ鍵で署名しているため、そのまま上書きできます。
hub と agent も更新してください。 上記の修正の多くはそちら側です。
cd limitchecker
git pull
./deploy/install-hub.sh
./deploy/install-agent.sh --statuslimitchecker 0.2.0
0.1.0 で実際に運用したところ、セットアップが最後まで通らない不具合が5件見つかりました。
すべて「設定は合っているのに動かない」型で、利用者側から原因が見えないものでした。
0.1.0 を使っている場合は更新してください。
直した不具合
| 症状 | 原因 |
|---|---|
| 残量が hub に届かない | agent が送信先の判定を二重に持っており、LIMITCHECKER_HUB_URL を書いていないと一度も送信しなかった |
| 設定を変えても反映されない | systemctl enable --now は動作中のサービスを再起動しない。hub は .env を起動時にしか読まない |
| 送信確認をすると表示がおかしくなる | 確認用の偽データを本番の経路に保存しており、本物の残量を上書きしていた |
| 週次リングが逼迫しても色が変わらない | 逼迫色とオレンジの色差が 44 しかなかった(他は 279)。深紅に変更し 149 を確保 |
| Codex の残量が取れない | 通信に回避策の要る環境で、ラッパーではなく生のバイナリを起動していた |
追加した機能
- 接続コード — 43文字のトークンを手で写さずに済む。6桁、5分間有効、1回限り
install-agent.sh—settings.jsonへの追記と Codex の定期実行を1コマンドで。既存の設定は壊さないinstall-agent.sh --status— 送信が届くかをその場で試す。残量の値は書き換えないLIMITCHECKER_BIND=tailscale— Tailscale のアドレスを自動で引く- 横棒グラフ — 大きいウィジェットで、枠の種類・残量・回復までの時間を並べて表示
- サービス選択 — ステータスバーと通知に Claude / Codex / 両方 のどれを出すか
- ステータスバーに4値 — 「両方」のとき、縦棒4本で両サービスの5時間枠と週次枠
見た目の改善
- 縦積みの配置を等間隔にし、上下の空きをなくした
- 1×1 まで縮小可能。幅に応じて表示する要素を減らす
- 専用のアプリアイコン
- 配色を3種に整理(選択肢を減らした)
ドキュメント
- 「うまくいかないとき」を追加。実際に踏んだ順に並べてある
- Tailscale では待ち受けアドレスと接続先 URL が別物であることを明記。
アプリには MagicDNS 名が必要で、IP では通らない - 英語版 README を追加
インストール
limitchecker-0.2.0.apk をダウンロードして開いてください。0.1.0 と同じ鍵で
署名しているため、そのまま上書きできます。
hub と agent も更新してください。 上記の不具合の多くはそちら側です。
cd limitchecker
git pull
./deploy/install-hub.sh
./deploy/install-agent.sh --statuslimitchecker 0.1.0
Claude Code の残量を Android のホーム画面と通知領域で把握するための最初のリリースです。
できること
- 二重ドーナツのウィジェット。外側が5時間枠、中央が週次枠、中心にリセットまでの時間
- 通知センターへの常設。ステータスバーには残量の形か数字を出せる
- ウィジェットは 1×1 まで縮小可能。幅に応じて表示する要素が減る
- 配色3種、ステータスバー表示4種、背景3種(不透明・半透明・透過)から選択
特徴: 認証情報を持ちません
このアプリは Claude のアカウントにログインしません。API キーも要求しません。
残量は、すでにログイン済みの Claude Code が statusLine に渡す値を使います。
アプリが保持する秘密は、自分で立てた hub のトークン1つだけです。
そのトークンも Android Keystore の鍵で暗号化して保存します。
要求する権限は INTERNET / ACCESS_NETWORK_STATE / POST_NOTIFICATIONS の3つ
(後者2つは WorkManager が追加する3つを除く)。位置情報、ストレージ、連絡先、
アクセシビリティ、電池最適化の除外は要求しません。
使うには hub が必要です
このアプリ単体では動きません。作業マシン(Mac / Linux)で hub を動かす必要があります。
git clone https://github.com/mirute02/limitchecker.git
cd limitchecker
./deploy/install-hub.sh詳しい手順はアプリ内の「hub の準備手順を表示」か、README を参照してください。
制約
- 残量は Claude Code が動いているときにしか更新されません。 10分を超えると薄く、
1時間を超えるとグレーになって「未更新」と表示します。仕様です - モデル別の週次枠は取得できません。 statusLine が返すのは5時間枠と週次枠のみです
- Codex は未対応です。 Codex CLI には、認証情報を読まずに残量を取る経路が
現時点で存在しないことを実機で確認したため、方針を曲げずに保留としています
インストール
limitchecker-0.1.0.apk をダウンロードして開いてください。提供元不明のアプリの
許可が必要です。SHA-256 は limitchecker-0.1.0.apk.sha256 にあります。
自分でビルドすることもできます(README 参照)。その場合は署名が異なるため、
このリリース版とは共存できません。