Skip to content
Switch branches/tags

Latest commit


Git stats


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


A random surfer.

Meanderer is a configurable tool that directs PhantomJS to randomly browse the internet using a dictionary and some search engines. The word-list was adapted from the RiTaJS dictionary.


  • Install PhantomJS,
  • Optionally, install Python 3.x
  • Download or clone this repository
  • Enter the meanderer directory and either use python or directly run phantomjs bin/meanderer.js

The reason for the 'runner' is to handle when PhantomJS exits unexpectedly (i.e. it crashes) and the process ends. The runner starts the phantomjs meanderer instance, passing along any arguments and echoing the output back to the command line. If/when PhantomJS crashes, the runner will start it again.

By default, some basic information is sent to the output while running. Pass the -quiet flag when launching to prevent that.


Various settings can be configured via a JSON file.

I encourage you to look at the type definitions for the Config for more information on each of the properties in the file. For example, if you want to keep a record of what it's doing, enable the url logging: config.logging.enabled and/or enable screenshot capture: config.capture.enabled.

You can specify an alternate location for the configuration JSON file when starting it: -config path/to/config.json


This should work anywhere that PhantomJS runs, and it works nicely on the Raspberry Pi.

Although there are no official builds of PhantomJS for the Raspberry Pi, it can be built from source if you have a few hours to kill. Or, if you prefer, there are some pre-built PhantomJS binaries from fg2it, so you don't have to bother building it yourself. Download the version that applies to your Pi and follow the instructions there to get it installed and running. Use phantomjs --version to verify the installation.


Uses Haxe and the phantomjs haxelib.

  • haxelib install phantomjs
  • haxe build.hxml

Note: I chose to use Python (requires Python 3) as the default target for the runner since Python is available on many systems, but if you prefer, building for c++ will make an executable command line application that does the same job on your system of choice.


Adding noise to your internet connection history.

The UK government recently approved the Investigatory Powers Bill and, among other things, internet service providers will now have to keep records of your browsing history for a year and make that information available to a large number of government departments.

Along with various new powers, with the IP Bill the government are retroactively making the last 10+ years of illegal bulk-data collection by the UK's security services, legal. Sadly, as well as being a invasion of privacy for every citizen, it is unlikely to have any real benefit. Mass surveillance is often invoked as an essential tool to fight terrorism. But there is precious little evidence for this style of 'collect it all' surveillance succeeding in preventing terrorism, or being a useful tool to do so.

This project aims to highlight some of these issues, and add a bit more noise to your browsing history.



A random surfer.




No releases published


No packages published