Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
This branch is 14 commits ahead, 82 commits behind HenrikBengtsson:master.

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


This repository contains tools that enhance the speedtest-cli command-line interface to This fork of speedtest-cli-extras extends the script by adding options to send results to an IFTTT Maker Channel or Loggly.


This script requires Python and speedtest-cli. If you have a working Python installation, chances are you have a package manager such as pip. Installing speedtest-cli is then as easy as running

$ pip install speedtest-cli


./ [-d] [-c] [-h] [-i secret-key] [-l]
    -d: debugging-mode (reuses previously logged speedtest result instead of queriying speedtest - faster)
    -c: CSV mode
    -h: Print CSV header (only if used together with the -c flag)
    -i: IFTTT mode. Takes an IFTTT Maker Channel secret key as argument (required)
    -l: Loggly mode. Takes a Loggly Customer Token as argument (required)
    -j: JSON mode. Posts the result as a JSON document to any URL passed as argument (required)

Example: CSV Mode

Generate headers (e.g. to start a new CSV file):

$ ./ -c -h

Run speedtest and output results in CSV format:

$ ./ -c
2014-09-06 10:07:51;2014-09-06 10:09:31;Comcast Cable;;AT&T (San Francisco, CA);20.22 km;24.536 ms;44.25 Mbits/s;4.93 Mbits/s;

The above examples print the output to STDOUT (the terminal). To record results into a file instead, use something like:

$ ./ -c -h >> file.csv
$ ./ -c >> file.csv

Every subsquent run of will add another line to file.csv.

Example: IFTTT Mode

You will need to setup a IFTTT Maker Channel first. Once this is done, IFTTT will display a unique key for you to send events to that channel. You will need this key to run in IFTTT mode.


If the event was successfully triggered, the script will not generate any output. Check your IFTTT channel to make sure everything is working. Connect this channel to another action as you like, for example to add a line to a Google Spreadsheet.

Example: Loggly Mode

You will need a Loggly account for this to work (the free account should be fine). Use your own customer token (found under Source Setup > Customer Tokens in your Loggly dashboard) to call the script:


If the event was successfully triggered, the script will not generate any output. Check your Loggly events to make sure everything is working.

Example: JSON Mode

This packages all the results of speedtest-cli as a JSON block and sends it to any URL you specify as argument. Use it for example to trigger a Zapier Webhook:

$ ./ -j

(replace the dummy URL above by the one Zapier creates for you when setting up your Webhook). I cover this use case in more details on my blog.


The speedtest-extras bash script calls speedtest-cli, captures its output, reformats it, and either outputs it on a single line with time stamps and values separated by semicolons*, sends it to an IFTTT Maker Channel called speedtest or to Loggly tagged as speedtest.

(*) Commas are not safe to use to separate the values, because some test servers report speeds with commas instead of periods. Because of this, semicolons are used instead.


This is a fork of speedtest-cli-extras by Henrik Bengtsson. The export to IFTTT was inspired by a project on Make: Magazine by Alasdair Allan. The export to Loggly was inspired by this post from Stephen Phillips.


Tools to enhance the speedtest-cli network tools






No releases published


No packages published


  • Shell 100.0%