
Inframagotchi: a cat whose health is your homelab's
Dashboards are honest and nobody opens them. A small creature on the corner of your screen gets looked at fifty times a day. Inframagotchi is a tamagotchi for your infrastructure: a manga stray cat whose health is your lab's health. Fun on the surface, real monitoring underneath.
What you get. A glance tells you how the lab is doing, without opening anything: bright eyes, a sweat drop, a stress vein, a bandage, X-eyes. Open source, drawn entirely in code, no third-party image, on one machine or with the engine on your server and the cat on your laptop.
1. The cat knows one number
The drawing never reads your systems. It receives one value, health from 100 to 0, and a second one, activity, which only sets the tempo of its animation:
probes → scheduler → health state → render(health, activity)
A rule keeps it believable: movement = activity × gate(health). A cat in bad shape does not run around, and everything freezes when it is knocked out. When the engine itself stops answering, a tombstone and a little ghost appear, with the reason: connection lost, timeout, engine down.
2. Why a native window, not a browser tab
A browser cannot read systemctl, a certificate's expiry or a disk's usage. A small local runtime can. Inframagotchi is a Python app that draws through the system's own web view (pywebview), and pushes the health to the cat.
sudo pacman -S --needed webkit2gtk-4.1 python-gobject python-cairo # Arch; equivalents elsewhere
uv venv --system-site-packages # the environment must see the system's GTK bindings
uv sync
uv run python app.py
3. Engine on the server, cat on the laptop
uv run python app.py --serve # on the server: engine only
uv run python app.py --connect http://localhost:8080 # on the laptop, through an SSH tunnel
uv run python app.py --connect ... --pet --pet-size 180 # frameless, always on top
Keep the engine bound to the machine itself and reach it by an SSH tunnel: your health data stays off the network. Our launcher checks /health first, starts the tunnel if needed, and says where to look instead of opening an empty window.
4. A bestiary
Five creatures share the same contract: the cat (the hero), a dog that pants, a goldfish whose bowl clouds over, a hamster, a llama that chews with disdain. Each one degrades in its own way, with the manga codes everyone reads: stars, a drop, a vein, eye-bags, a spiral.
Traps
Only one pet at a time: stop the previous one by its PID file, never by searching for its name (see SSH for an agent workstation).
Keep it fun or it dies. We tried public-domain artwork: it was ugly and not funny, and was dropped. The rule is drawn in code, original, and the motion carries the joke.
Found this useful? Tell us what to measure next.