OpenKuma
app.openkuma
Zapstore _@zapstore.dev Read-only viewer for your Uptime Kuma monitors. Private, no ads, no tracking.
Republished from GitHub / F-Droid by the Zapstore main account.
OpenKuma is a private, read-only Android client for Uptime Kuma, the self-hosted monitoring tool. Check the health of your services from your phone, without ever changing anything on your instance. OpenKuma is strictly read-only. It is 100% free and open source, has no ads, no tracking and no Google services, and sends no data to anyone except the Uptime Kuma servers you configure, plus the push app you pick if you turn on instant updates (off by default). Features: * Connect to your Uptime Kuma servers over the Socket.IO API * Two-factor authentication (TOTP) supported * Dashboard with live counts (up, down, pending), active incidents and expiring certificates * Monitor list with instant search, sorting and local favorites * Monitor detail: status, 24h uptime, response times, general info, TLS certificate and recent checks * Certificates screen sorted by soonest expiry, with a visual warning * Events log of status changes * Offline cache so the last known state is always available * Light and dark themes, Material You on Android 12+, English and French Privacy first: only your session token is kept on the device, encrypted with the Android Keystore. Your password is never written to disk. OpenKuma is an unofficial client and is not affiliated with or endorsed by Uptime Kuma.
First release: Aug 2, 2026, 9 total releases.
Most recent release: Nov 2, 2026.
Appears in 0 app stacks.
0 sats / 0 zaps received in the past year.
Sats Received
Underlying data available via MCP: app_zaps, app_releases.
Zap Count
Underlying data available via MCP: app_zaps, app_releases.
Releases
- Nov 2, 2026 0.5.2### Fixed - **The end of a maintenance no longer sends an 'is back up' notification.** Uptime Kuma flags the switch from maintenance back to up as an important change, and the app announced it like a recovery. Now a monitor is only announced as back up if the app saw it down before.
- Oct 29, 2026 0.5.1### Fixed - **A heartbeat time shows in the phone's timezone.** Uptime Kuma sends heartbeat times in UTC with no zone marker, and the app showed them as is, so the recent events on a monitor's screen and the Events screen were off by your offset from UTC. They're now shown in the phone's timezone, like 'Auto' on the web page, in the same 'YYYY-MM-DD HH:mm:ss' format without the milliseconds.
- Oct 23, 2026 0.5.0### Added - **The dashboard says when a server stops answering.** Before, the app kept showing the last monitors it got, all green, with nothing to say they were out of date. Now a banner shows under the app bar, 'Lost connection to \<server>. Reconnecting…', or 'Cannot connect to \<server>' if it couldn't reach it at all. It shows how long ago the last update came in when there is one, and goes away on its own when the server answers again. - With several servers aggregated, each lost server gets its own line in the banner. - **In real-time mode, the always-on notification says it too**: 'Lost connection to \<server>' with the time of the last update, or 'Lost connection to 2 of 3 servers', for the servers real-time mode is watching. It goes back to 'Watching…' once they answer. Outside real-time mode, the app doesn't alert you in the background when a server stops answering.
- Oct 17, 2026 0.4.2### Fixed - **A monitor shows the address that matches its type.** Uptime Kuma's own form leaves 'https://' in the URL field of every monitor it creates, whatever the type, and the app showed that URL whenever there was one. So a ping, DNS, port or push monitor showed 'https://', or a URL pointing somewhere else, under its name. - **The list and the certificates tab now pick the address by type**: the URL for web checks (HTTP, keyword, JSON query, real browser, websocket upgrade), host:port for port, Steam, GameDig and MQTT checks, and the host for the rest. A push monitor with no host shows nothing. On the detail screen, the URL line only shows for web checks, and real-browser and websocket-upgrade monitors now show their type instead of a dash.
- Oct 3, 2026 0.4.1### Fixed - **The empty band under the status bar and above the bottom tabs is gone.** The space for the system bars was reserved twice, once by the app's frame and once more by each screen. On screens without tabs it showed as a doubled gap at the bottom. The same fix should also remove doubled side margins in landscape when the navigation bar sits on the side, but I haven't seen that one on a device. - **A refused password or two-factor code can be corrected on the add-server screen.** Once the server has asked for a code, the field stays. After any failed attempt the code is cleared and a new one is asked. The error now talks about your credentials instead of the URL, and the field says what it is for. Before, a refused code made the field disappear, the error pointed at the URL, and the refused code was sent again on the next try.
- Sep 21, 2026 0.4.0### Added - **Tap the Up, Down or Pending tile to show only the monitors in that status.** Tap it again to see the whole list, or tap another tile to switch. The selected tile gets a border in its own color. The status filter works together with search and *Favorites only* rather than replacing them, and behaves the same with several servers aggregated. It resets when the app restarts. ### Changed - **Dashboard figures no longer count group monitors.** A group is a heading over its monitors, not a row of its own, but it was counted like one: a group with a monitor down is itself down, so one outage showed as two on the Down tile. Up, Down, Pending, active incidents and expiring certificates now leave groups out, and the home-screen widget counts the same way. Some numbers may be lower after updating. - When a status filter hides every monitor, the list now says that nothing matches the current filters, instead of saying there are no monitors.
- Sep 18, 2026 0.3.0### Added - **Several Uptime Kuma servers at once**, under *Settings → Servers → Aggregate servers*. Off by default. With it on, every server carries a checkbox, and the monitors, events and certificates of the ticked ones are shown in a single list, each row tagged with the server it came from. - **Real-time mode then holds one live connection per ticked server**, not one connection covering them all: aggregating duplicates the connection path rather than sharing it, so the battery and the data that mode costs are counted per ticked server. The permanent notification follows the selection instead of staying on the one the service started with. - The periodic background check covers the ticked servers too, rather than only the one server you last had open. A run that cannot get through all of them in time resumes at the next one it had not reached, so no server sits at the back of the list and is never checked.
- Sep 12, 2026 0.2.0**Instant alerts through UnifiedPush.** With a UnifiedPush app installed (ntfy, NextPush, Sunup and others), OpenKuma is woken the moment a monitor changes state, with no connection held open and no permanent notification. There is no Google and no FCM involved, and the wake-up itself is never read: the app asks your own server, over your own session, what changed. Someone who learns the address can at most make the app refresh, never fabricate an alert. Uptime Kuma has no per-device subscription API and OpenKuma is read-only, so the address cannot be registered for you. Settings hands you one address per server, to paste into an Uptime Kuma *Webhook* notification. Set the webhook's **Request Body** to **Custom Body** with `{"wake":1}`. Left on the default `application/json`, every alert publishes fields of the monitor it concerns, its URL, hostname, description and database query among them, to an address anyone who knows can read. The card in Settings names the stage of the chain that is broken when one is, including two failures that were invisible before: an address that changed, leaving the one pasted into Uptime Kuma dead, and wake-ups arriving while the app can no longer sign in. **Real-time mode now runs a background check every 30 minutes** behind its live connection. It scheduled none at all before, so a connection killed by a battery manager, a network change or an OEM's idea of housekeeping meant nothing arrived again, ever, while the permanent notification said otherwise. **Fixed.** Notifications from two servers could overwrite each other when both had a monitor with the same id. A background sync that could not sign in was indistinguishable from one that found nothing to report, so an expired session failed silently every 30 minutes, for ever. A sync for one server could overwrite the version and uptime block shown for another. Two syncs running at once could announce the same change twice. A failed sync leaked its event collector. And a status change could be persisted and never announced, if the process died between the cache write and the diff that produces the notification.
More…
This release adds no Android permission. The UnifiedPush connector is Apache-2.0, and every library it pulls in is free software. - Aug 2, 2026 0.1.4### Fixed - **OpenKuma closed itself instantly when the server URL had no `https://` in front**, with no error and nothing kept: Socket.IO throws on a scheme-less URL and the connection was built where nothing caught it, so the app died back to the launcher and the whole form had to be retyped. The scheme is now filled in for you (`https://` unless you write `http://` yourself), an address that still can't be read says so, and a failed sign-in can no longer take the app down. - **A server that accepted the connection and then went silent left the Connect button spinning forever.** Signing in now gives up after 30 seconds and explains what to check (reachability, WebSocket support on the reverse proxy). - **The dashboard claimed "No monitors yet" with 0/0/0 counters while it was still loading.** Uptime Kuma sends the whole monitor list and its history right after login, which takes minutes on a large instance — indistinguishable from a broken connection. It now shows a loading state until the first monitor list arrives. Thanks to the reporter on Reddit for a precise bug report.