The plan is to create a pair of executables (ngrok and ngrokd) that are connected with a self-signed SSL cert. Since the client and server executables are paired, you won't be able to use any other ngrok to connect to this ngrokd, and vice versa.
Server
ngrokd can run on Linux, Windows, MacOS
Client
ngrok can run on Linux, Windows, MacOS