wenil 4083609b12 feat: ClaudeMeter — Wear OS rate-limit tracker for Claude Code
- wear: Compose for Wear UI, polls api.anthropic.com, shows 5h/7d utilization
- mobile: companion app — token input + Data Layer API + WiFi ADB install
- ADB pairing via libadb-android (SPAKE2 + TLS), pm install on watch
- Build: AGP 8.7.3, Gradle 8.13, Kotlin 1.9.22, compileSdk 35
2026-06-19 11:43:24 +03:00

Claude Meter — лимит Claude Code на часах

Минимальное Wear OS приложение для Galaxy Watch 6 Classic (и любых Wear OS 3+). Опрашивает api.anthropic.com так же, как Clawdmeter, но без ESP32/демона/BLE — часы ходят на API сами по WiFi.

Показывает:

  • 5h — загрузка 5-часового окна (%) и минуты до сброса
  • 7d — загрузка недельного окна (%) и минуты до сброса
  • statusnormal / banned / unknown

Цвет: зелёный <70%, янтарь 7090%, красный ≥90%.

Архитектура (минимум)

  • mobile (телефон) — одно приложение, две функции:
    1. Поле ввода OAuth-токена + кнопка «Отправить токен» (через Wearable Data Layer).
    2. Установка wear APK на часы по WiFi ADB — без компьютера, прямо с телефона. Использует dadb — pure-Kotlin ADB-клиент. Wear APK встроен в mobile APK (assets), копируется при установке.
  • wear (часы):
    • TokenReceiverServiceWearableListenerService, ловит /token даже когда app закрыто.
    • TokenStoreEncryptedSharedPreferences (токен шифруется на устройстве).
    • ApiPoller — один HttpURLConnection POST к api.anthropic.com/v1/messages (max_tokens=1, haiku — самый дешёвый запрос ради rate-limit заголовков).
    • MainActivity — Compose for Wear, авто-опрос при запуске + кнопка «Обновить».

APK

После ./gradlew assembleDebug:

  • mobile/build/outputs/apk/debug/mobile-debug.apk — для телефона (27 МБ, включает wear APK)
  • wear/build/outputs/apk/debug/wear-debug.apk — для часов (22 МБ, можно ставить и вручную)

Установка

Шаг 1: поставить mobile APK на телефон

adb install -r mobile/build/outputs/apk/debug/mobile-debug.apk

Или скопировать APK на телефон и открыть.

Шаг 2: включить отладку по WiFi на часах

  1. На часах: Settings → About watch → тапнуть 7 раз по «Build number» → Developer mode.
  2. Settings → Developer options → Debug over WiFi → включить.
  3. Запомнить IP-адрес (показан в Developer options под «Debug over WiFi»).

Шаг 3: установить wear APK с телефона

  1. Открыть Claude Meter Setup на телефоне.
  2. В секции «2. Установка приложения на часы» ввести IP часов и порт (5555).
  3. Нажать «Установить на часы».
  4. При первом подключении — подтвердить RSA-ключ на часах (появится диалог).
  5. Готово — приложение Claude Meter появилось на часах.

ADB-ключ генерируется один раз, хранится в filesDir приложения на телефоне. При следующих установках подтверждение на часах не нужно.

Шаг 4: отправить токен

  1. Скопировать accessToken из ~/.claude/.credentials.json на ПК.
  2. В секции «1. Токен Claude Code» вставить токен → «Отправить токен».
  3. На часах открыть Claude Meter — увидит токен → покажет проценты.

Токен протухает (OAuth) — перепастить на телефоне, «Отправить» снова. // ponytail: token on-device, re-paste on OAuth expiry.

Где взять токен

Claude Code хранит OAuth-токен в ~/.claude/.credentials.json:

{"claudeAiOauth": {"accessToken": "***..."}}

Что добавлять потом (не сейчас)

  • Фоновое обновлениеWorkManager periodic (~15 мин). Сейчас по тапу + при запуске.
  • Complication на циферблате — always-on виджет с %. Больше бойлерплейта, делаем когда v0 зайдёт.
  • График истории — Room + простая диаграмма. YAGNI пока.
  • Авто-рефреш токена — если Claude Code добавит refresh-token flow. Сейчас ручная перепоставка.
S
Description
Wear OS rate-limit tracker for Claude Code
Readme
53 KiB
Languages
Kotlin 100%