{"slug": "basic-local-llm-router-and-companion-plasma-tray", "title": "Basic local LLM router and companion plasma tray", "summary": "A developer built LLM-Router, an open-source Rust binary that routes LLM requests across three home-network machines — a home server plus two gaming desktops — based on LLM load and server availability, with a preference for the faster gaming machines. The router also hosts a /router/status page listing each tracked server's status, and a companion system tray app polls that page to display server status on hover; the router binary itself includes the tray, so the companion app only needs to run on other machines. The developer disclosed using AI to assist with the Rust coding, saying they reviewed the code and \"it seems sane enough.", "body_md": "AI Disclosure:\n\n*I did use AI to assist with the coding of these. I am fairly competent at rust coding, but frankly didn’t have the time to fully do this myself. I did read over the code and it seems sane enough so I just went with it.*\n\nEvery good project is a solution to a problem. So let’s start with the problem. I have 3 machines on my network that would make for good LLM servers, my home server, my gaming desktop, and my wife’s gaming desktop. One of those machines can be used for LLMS basically 24/7, but is often slower than the other two because its doing a lot more than JUST LLMs, the other two are faster, but sometimes shouldn’t be used because we’re gaming on them.\n\nFor the gaming desktops I just made a quick and dirty bash script that runs when the systems are idle that starts the lemond service and then waits for the user to press enter in the konsole window which stops the lemond service again.\n\nWith that out of the way I now needed a single endpoint to add to my hermes instances that would smartly route llm requests to one of these three machines based on LLM load and whether the LLM server is available or not, but also have a preference since the gaming machines are faster than the server.\n\nEnter LLM-Router (genius name I know) I wrote it with the help of AI in Rust because Rust is what I have the most experience with, so if it did something incredibly stupid I’d be able to tell. Then another problem surfaced; I would like to know what servers are being used, and which ones are available, but I don’t want a dashboard or anything complex, just a system tray would be good enough. So again with the help of AI I modified the server to not only route requests, but also host a /router/status page that shows the status of each tracked server. I then wrote a companion system tray app that checks this page for the servers’ status and displays them when hovered over.\n\nThe llm-router binary itself does the system tray as well so you don’t need to run both on the router host. You would just run the router binary on the router host, and the companion app on other machines. You can check them both out at the below links:\n\nscreenshot of the system tray app:", "url": "https://wpnews.pro/news/basic-local-llm-router-and-companion-plasma-tray", "canonical_source": "https://forum.level1techs.com/t/basic-local-llm-router-and-companion-plasma-tray/260093#post_1", "published_at": "2026-11-04 17:09:55+00:00", "updated_at": "2026-11-04 17:20:46.838425+00:00", "lang": "en", "topics": ["ai-tools", "ai-infrastructure", "large-language-models", "developer-tools"], "entities": ["LLM-Router", "Rust", "lemond", "Hermes"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/basic-local-llm-router-and-companion-plasma-tray", "markdown": "https://wpnews.pro/news/basic-local-llm-router-and-companion-plasma-tray.md", "text": "https://wpnews.pro/news/basic-local-llm-router-and-companion-plasma-tray.txt", "jsonld": "https://wpnews.pro/news/basic-local-llm-router-and-companion-plasma-tray.jsonld"}}