This was one of those late-evening-after-the-kids-are-asleep project. Followed by some next-morning-sober-readme-fixes-and-npmjs-paperwork.
It's a little Node script that will open https://fast.com with puppeteer, and record, using
document.querySelector('#speed-value') what my current Internet speed is according to that app. It currently only works on OSX but it should be easy to fix for someone handy on Linux or Windows.
You can either run it just once and get a readout. That's basically as useful as opening
fast.com in a new browser tab.
The other way is to run it in a loop
howsmywifi --loop and sit and watch as it tries to figure out what your Internet speed is after multiple measurements.
The whole point of this was for me to get an understanding of what my Internet speed is and if I'm being screwed by Comcast. The measurements are very erratic and they might sporadically depend on channel noise on the WiFi or just packet crowding when other devices is overcrowding the pipes with heavy downloads such as video chatting or watching movies or whatever.
As a bonus, it will take a screenshot (if you pass the
--screenshots flag) of the fast.com page each time it has successfully measured. Not sure what to do with this. If you have ideas, let me know.