URL: https://www.npmjs.com/package/howsmywifi

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.

Screenshot

That's it!

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.

I've seen 98 Mbps with my iPhone on this network. Not so much today.

And Screenshots!

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.

Comments

Peter Bengtsson

Thanks! That's neat.

However, there's just something about the speedtest Flash banner ads that makes me trust Fast.com better :)

Your email will never ever be published.

Previous:
Really simple Django view function timer decorator December 8, 2017 Python, Django
Next:
Another win for Tracking Protection in Firefox December 13, 2017 Web development, Mozilla
Related by category:
How to SSG a Vite SPA April 26, 2025 JavaScript
Switching from Next.js to Vite + wouter July 28, 2023 JavaScript, Node
fnm is much faster than nvm. December 28, 2023 Node, macOS
An ideal pattern to combine React Router with TanStack Query November 18, 2024 JavaScript
Related by keyword:
How to submit a form with Playwright August 3, 2021 JavaScript
NodeJS fs walk() or glob or fast-glob August 31, 2019 JavaScript
How to use minimalcss without a server April 24, 2020 Web development, Node, JavaScript
Python slow-down of exception handling or condition checking May 14, 2015 Python