Skip to content

About

Render a public Uptime Kuma status page in your terminal.

Resources

Stars

0 stars

Watchers

0 watching

Forks

 
 

Latest commit

 

History

17 Commits

Folders and files

Repository files navigation

uptime-kuma-status

crates.io license

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.

Install

requires rust toolchain https://rustup.rs/

cargo install uptime-kuma-status

Or from a checkout:

cargo install --path .

Usage

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 URL

That costs one extra HTTP request at startup, and only for URLs that need it.

Reading the display

■● socktop.io            99.04% ▄▂█▃█▃▃▂▃▄▆▄▆▇▃▄▂▃▄█▄▄▃▄▆▂▂▅█▃▃██▃▇▅   250ms
▲  ▲                     ▲      ▲                                      ▲
│  │                     │      │                                      └ latest ping
│  │                     │      └ one cell per heartbeat, oldest left
│  │                     └ uptime over 24 hours
│  └ current status
└ which group it belongs to

Theming

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.

Development

cargo test                  # 52 unit tests, no network needed
cargo clippy --all-targets

Test Status Page

You are welcome to use my status page if you just want to give it a try

uptime-kuma-status https://status.wittyoneoff.com/status/wittyoneoff

Contributing

Issues 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.

License

MIT

About

Render a public Uptime Kuma status page in your terminal.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages