SwitchYard is the control layer for a small rack of RouterOS v7 boxes — four to ten of them, on one LAN, the size of fleet that is too big to configure by hand and far too small to justify enterprise network management. A Rust core holds the model and talks to the hardware over the RouterOS REST API; a Tauri desktop client is the face of it. The core listens on localhost only, because a management tool that can reconfigure your network has no business being reachable from it.
What it does
- Inventory — every device registered, versioned and given a role, with unmanaged kit (the access point nobody wants to talk about) recorded as a known tier rather than quietly ignored
- Endpoints — what is actually plugged in and where, enriched by mDNS so hosts arrive with names attached instead of bare MAC addresses
- Path tracing — the real route a packet takes between two points on the LAN, derived from the devices rather than guessed from a diagram
- Firmware — which boxes are behind, and applying the updates
- An audit log — every action recorded and kept, because "what changed on Tuesday" is the question you always end up asking
What it deliberately will not do
Two whole categories are ruled out on purpose, not for lack of time. It draws no graphs and stores no history — LibreNMS does that, and does it properly. It never snapshots, exports or restores a config — that is Oxidized's job. SwitchYard will show you a live value and link out to the tool that owns it. A tool that half-does three jobs is worse than one that does its own and knows where the edges are.
Not lying about state
Every mutation is read-validate-write-reread: fetch the target fresh, diff it against what you asked for, write, then read it back to confirm the device agreed. Nothing volatile is cached between sessions, so the screen is never showing you a remembered network that has since moved on. The things that do persist — inventory, config-state snapshots, map positions and the audit log — are records of what happened, not a stale copy of what is.
