Skip to content

The Android app

The Android app is a full client for your instance — not just a notification receiver.

Area Capability
Watches Create, edit, enable, disable, delete, run now
AI Draft a new watch from a description; revise an existing one field by field
Alerts A feed of everything that fired across your watches, with mark-as-seen
Runs Full run history and run detail, including the model’s reasoning
Insights Accuracy dashboard, collection stats, trust registry
Settings Notification preferences, theme, config status, read-only key status
Push Native notifications with device-side tier and quiet-hour rules
  1. Build and install the app. It is not published to a store — build it from the repository with the Android toolchain.

  2. Point it at your instance. On first launch, enter your API’s base URL.

  3. Sign in with the same account you use for the panel — email and password, or Google if you configured it.

  4. Allow notifications when prompted, so push can reach you.

  5. Add push to a watch’s channels and force a run to confirm delivery.

Messages arrive as data, and the app renders the notification itself. That means your device-side preferences are honoured even when the app is closed:

  • Which tiers to show — you can suppress “unconfirmed” alerts on the device while still receiving them in the feed.
  • Quiet hours — alerts stay silent during a window you choose.
  • Tapping a notification opens the relevant watch or run.

Requires FIREBASE_SERVICE_ACCOUNT_JSON on the server; see Push notifications.

  • The app shows an offline banner rather than failing silently.
  • If your API is hosted somewhere that suspends idle instances, the first request after a quiet period can take 30–60 seconds. The app warms the connection and extends its retries for exactly this case.

Your session is stored in the device keychain, so reopening the app goes straight in. If the server rejects your token, the app returns you to sign-in rather than failing requests silently. Sign out from Settings.

Settings shows a read-only view of pooled key status. Adding, removing and rotating keys stays on the web panel deliberately — a phone is a poor place to paste credentials.