Run your Javascript anywhere.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
static Making the jfComplete not disable future May 4, 2011
test Updating the sauce test Oct 1, 2011
LICENSE Adding a license Jun 13, 2011 the process.exit function was being called right away, the timeout wa… Jul 7, 2012
jfrc-example Adding example Apr 29, 2011
package.json publishing a version with new reqs Dec 9, 2011

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