artoo.js The client-side scraping companion.


artoo.js ships with a variety of settings for you to adjust.

You can change the library’s settings either by changing them directly through JavaScript:

artoo.settings.debug = true;

// Or if you need to merge settings:
  debug: false

Or by specifying a precise configuration in a custom bookmarklet generated by artoo.jsgrunt task.


  • autoExec boolean [true] : should the given script be evaluated when artoo is started?
  • autoInit boolean [true] : should artoo launch his initialization routine when loaded? If the routine is not automatically launched, you’ll have to do it yourself with artoo.init().
  • reExec boolean [true] : should the given script be evaluated every time the bookmarklet is invoked in the page?
  • debug boolean [false] : should debug mode be activated.
  • scriptUrl string [null] : the url of a distant script to be injected and executed as soon as artoo is started.
  • eval string [null] : the string of a script to be executed through eval as soon as artoo is started.
  • reload boolean [false] : should artoo be reloaded when injected more than once.


artoo enables you to load some remote dependencies alongside jQuery when he is injected within a webpage.

Note that the injected dependencies will be injected safely into your webpage by checking whether they can be injected into the global scope or not.

To do so, just add an array of desired dependencies in the settings.


Requesting the async library through a cdn.

  "dependencies": [
      "name": "async",
      "url": "//",
      "globals": ["async"]


  • name string : name of the dependency as registered in artoo.deps.
  • url string : remote url where it is possible to load the dependency.
  • globals string or array : array of variable names or single variable names that will be injected to the global scope by the loaded dependency so we can track inject them safely.
  • force ?boolean [false] : should the dependency be forced into the global scope?


// Given we requested async

// If no conflicts occured

// A conflict occured, dependencies are available through 'artoo.deps'


  • cache.delimiter string ['%'] : the delimiter to be used to wrap cache’s storage keys.


  • instructions.autoRecord boolean [true] : should artoo starts to record instructions on his own?


  • jquery.force boolean [false] : should artoo force jQuery injection?
  • jquery.version string [2.1.1] : jQuery version to be injected.


  • log.enabled boolean [true] : should artoo be able to log?
  • log.welcome boolean [true] : should the logo be displayed on start?


  • store.engine string ['local'] : engine to use for Either local or session.