So I picked up my first Meshtastic device about 4 months ago. It’s become a problem ever since! But one thing I really wanted to get out of Meshtastic was a way to reduce my reliance on my ISP for accessing and controlling my homelab.

I wanted a way to SSH into my servers and diagnose or fix things without needing to rely on my ISP at all. So, that naturally gave way to the idea of MeshExec


MeshExec is a little binary that attaches to your serially-connected Meshtastic node, and looks for messages in a specified private channel for aliases to execute. Then it will execute whatever commands you specify and automatically chunk them and send them back through the mesh in a staggered fashion. This chunking is done to both fit inside the max message size that Meshtastic supports, and so that the mesh is not overwhelmed with messages and drops them.

You define the aliases, the shell used to execute the commands, etc. So you can basically use it to do whatever you want over the mesh! I’ve set up a handful of aliases to do simple diagnostics on my homelab servers. Things like restarting docker containers, checking the top 3 processes consuming the most memory, etc.

I decided to use aliases because I figured direct shell access to a server is SUPER dangerous, especially if you accidentally attach the daemon to a public channel.


No idea if this will be useful to anyone else, but I made it as easy to use as possible if anyone does want to use it. Here’s the link to the repo if anyone wants to give it a go.

I just wanted to share how I’ve been using Meshtastic and gone full-prepper to have control over my homelab (or local-only Home Assistant) without needing an ISP.

If anyone decides to give this a try, I’d love to know your thoughts or answer any questions you have!