A framework for launching environments and running JS

Usage no npm install needed!

<script type="module">
  import jellyfish from '';


Jellyfish -- Browser launcher and Javascript execution engine.

Jellyfish bridges the gap between server and client side javascript by allowing control of all the major browsers from a node script.

From running unit tests across platforms, to automating browser based workflows, jellyfish aims to free javascript from the confines of a single environment.


npm install jellyfish

Or from source:

git clone git://
cd jellyfish
npm link .


MacOSX 10.6
Ubuntu 10.x


Firefox 3.x, 4b
Google Chrome
Safari (MacOSX)
Selenium 2/WebDriver
Sauce Labs OnDemand
Zombie (headless node.js browser)

(Provides hooks to Saucelabs OnDemand platform allowing execution in all major browsers.)


npm require

var jellyfish = require('jellyfish'),
  , assert = require('assert');

init a browser (createFirefox, createChrome, createZombie)

var browser = jellyfish.createFirefox();

goto a web site


verify the title

.js("document.title", function(o) {
  assert.equal(o.result, " Jellyfish Home")

run some local javascript

.jsfile("./test.js", function(o) {
  assert.equal(o.result, "alerted: Jellyfish local file loaded successfully!")

run some remote javascript, stop the browser, then exit

.jsurl("", function(o) {
  assert.equal(o.result, "alerted: Jellyfish remote file loaded successfully!")
  browser.stop(function() {
    setTimeout(process.exit(), 2000);


var jellyfish = require('jellyfish')

var browser = jellyfish.createFirefox(function(){
  browser.couch({uri:'my couch url', port:5984, db:'mydbname'})

// You can just do browser.couch() and it will default to:
// {uri:'localhost', port:5984, db:'jellyfish'}

// Do stuff and it will automatically get reported to couch!


  , "firefox": "/path/to/binary" //binary path to firefox if you want to set it manually
  , "chrome": "path/to/binary" //binary path
  , "safari": "path/to/binary" //binary path
  , "interface": "Airport" // required for safari testing (proxy setting)
  , "username": "username" //sauce labs username
  , "accessKey": "apikey" //sauce labs apikey
  , "browserName": "firefox" //sauce labs default browser
  , "version": "4.0" // sauce labs default browser version