Skip to content


Subversion checkout URL

You can clone with
Download ZIP
A Karma plugin. Launch any browser on BrowserStack!
Latest commit 7d24cc3 @Dignifiedquire Dignifiedquire Merge pull request #51 from shirish87/fix_tunnelidentifier
fix: Avoid setting tunnelIdentifier if startTunnel is false


js-standard-style npm version npm downloads

Build Status Dependency Status devDependency Status

Use any browser on BrowserStack!


The easiest way is to keep karma-browserstack-launcher as a devDependency in your package.json. Just run,

$ npm install karma-browserstack-launcher --save-dev

and it will be added automatically.


// karma.conf.js
module.exports = function(config) {
    // global config of your BrowserStack account
    browserStack: {
      username: 'jamesbond',
      accessKey: '007'

    // define browsers
    customLaunchers: {
      bs_firefox_mac: {
        base: 'BrowserStack',
        browser: 'firefox',
        browser_version: '21.0',
        os: 'OS X',
        os_version: 'Mountain Lion'
      bs_iphone5: {
        base: 'BrowserStack',
        device: 'iPhone 5',
        os: 'ios',
        os_version: '6.0'

    browsers: ['bs_firefox_mac', 'bs_iphone5']

Global options

  • username your BS username (email), you can also use BROWSER_STACK_USERNAME env variable.
  • accessKey your BS access key (password), you can also use BROWSER_STACK_ACCESS_KEY env variable.
  • startTunnel do you wanna establish the BrowserStack tunnel ? (defaults to true)
  • tunnelIdentifier in case you want to start the BrowserStack tunnel outside karma by setting startTunnel to false, set the identifier passed to the -localIdentifier option here (optional)
  • retryLimit how many times do you want to retry to capture the browser ? (defaults to 3)
  • captureTimeout the browser capture timeout (defaults to 120)
  • timeout the BS worker timeout (defaults to 300
  • build the BS worker build name (optional)
  • name the BS worker name (optional)
  • project the BS worker project name (optional)
  • binaryBasePath the BS binary base bath, you can also use BROWSER_STACK_BINARY_BASE_PATH env variable. This will override the default and set the base path to the BS local binary (optional)

Per browser options

  • device name of the device
  • real_mobile allow browserstack to use a simulator
  • browser name of the browser
  • browser_version version of the browser
  • os which platform ?
  • os_version version of the platform

Browserstack iOS simulators

By default, your Selenium and JS tests will run on real iOS devices on BrowserStack. Since we are in the implementation phase, we are still working on a few things, such as adding more devices, ability to test on local URLs, etc.

In case your tests are facing any issues on real iOS devices, we also provide iOS simulators where you can run your automated tests smoothly.

To access our iOS simulators, use the following capabilities:

customLaunchers: {
  iPad_3: {
    real_mobile: false,
    device: 'iPad 3rd (6.0)',
    os: 'ios',
    'os_version': '6.0',
    'browser_version': null,
    browser: 'Mobile Safari'

List of iOS simulators you can test on:

  • device: 'iPad 3rd', 'os_version': '5.1'
  • device: 'iPad 3rd (6.0)', 'os_version': '6.0'
  • device: 'iPad Mini', 'os_version': '7.0'
  • device: 'iPad 4th', 'os_version': '7.0'
  • device: 'iPhone 4S', 'os_version': '5.1'
  • device: 'iPhone 4S (6.0)', 'os_version': '6.0'
  • device: 'iPhone 5', 'os_version': '6.0'
  • device: 'iPhone 5S', 'os_version': '7.0'

BrowserStack's REST API documentation explains how to retrieve a list of desired capabilities for browsers.

For more information on Karma see the homepage.

Check out sample code working with karma-browserstack-launcher here.

Something went wrong with that request. Please try again.