← all work

zltrouter

002 · 2026 · open source
the brief

The router's stock web UI is slow: several taps and a page reload to answer one question (did the signal actually move?), and nothing you can pipe into a terminal or check from your phone.

So I read the device's own served JavaScript and worked out its undocumented JSON API: the reqproc/proc_get and proc_post endpoints, a nonce-salted SHA-256 login, and the CSRF token dance behind every write. That became a small Click CLI covering status, network mode, SMS, and USSD, with raw passthroughs for anything not first-classed, and a guard that refuses to spend your last login attempt before the router locks you out.

A FastAPI dashboard sits on the same client for what a one-shot command can't do: a pinned signal meter with rolling 15-minute RSRP history for walking the router around the house, the SMS inbox, interactive USSD menus, and a browser-side speed test that measures the device you opened it on. It installs as a user service (systemd, LaunchAgent, or Task Scheduler) and serves zero CDN assets, so it still works when the router's LAN is your only network.

what it does
  • Signal, band, SNR, and network mode from a single command
  • Live dashboard with rolling 15-minute RSRP walk-test history
  • SMS inbox, sending, mark-read and delete; interactive USSD menus
  • Lockout guard that refuses to spend the last login attempt
next project Multi-channel fulfillment dashboard →