Render a public Uptime Kuma status page in your terminal.
Built to sit in a tmux pane next to socktop on a wall-mounted rack display with socktop swipe, but its useful just from your terminal as well. May do some stuff with waybar and quickshell in the future, stay tuned.
Generally this project is meant to support the feature implemented, I am not looking to expand this out to a complete CLI or tui for all uptime kuma features. The current web interface is already good for doing that and that would be redundant. There are also others who have started on that project.
requires rust toolchain https://rustup.rs/
cargo install uptime-kuma-statusOr from a checkout:
cargo install --path .uptime-kuma-status <STATUS_PAGE_URL> [OPTIONS]
ARGS:
<STATUS_PAGE_URL> e.g. https://status.example.com/status/myslug, or
whatever URL your setup serves the page from
OPTIONS:
--interval <secs> refresh period, default 60 (minimum 5)
--max <n> max monitors shown per screen (default: as many as fit)
--ascii ASCII-only glyphs for terminals with poor Unicode fonts
-h, --help print this help
KEYS:
q / Esc / Ctrl-C quit
r refresh now
The URL is the page you would open in a browser. A trailing slash, a query string, and a reverse-proxied sub-path all work.
/status/<slug> is only Uptime Kuma's default path, so it is not required
either. If the URL does not carry a slug - a page published at the site root
via Uptime Kuma's entry page setting, or moved somewhere else by a reverse
proxy - the slug is read from the manifest link in the page's own HTML:
uptime-kuma-status https://status.kuma.pet/ # same page, no slug in the URLThat costs one extra HTTP request at startup, and only for URLs that need it.
■● socktop.io 99.04% ▄▂█▃█▃▃▂▃▄▆▄▆▇▃▄▂▃▄█▄▄▃▄▆▂▂▅█▃▃██▃▇▅ 250ms
▲ ▲ ▲ ▲ ▲
│ │ │ │ └ latest ping
│ │ │ └ one cell per heartbeat, oldest left
│ │ └ uptime over 24 hours
│ └ current status
└ which group it belongs to
Adopts your terminal theme - the screenshots above are Catppuccin Frappe.
If your font renders the block and shape characters poorly, --ascii swaps
every glyph, including the window border, for plain ASCII.
cargo test # 52 unit tests, no network needed
cargo clippy --all-targetsYou are welcome to use my status page if you just want to give it a try
uptime-kuma-status https://status.wittyoneoff.com/status/wittyoneoffIssues and pull requests are welcome. The scope is deliberately fixed: displaying public Uptime Kuma status pages, and nothing else. Features requiring authentication, or support for other monitoring systems, are out of scope by design.
MIT
