This plugin enables slaves to auto-discover nearby Jenkins master and join it automatically, thereby forming an ad-hoc cluster.

This plugin consists of two pieces:

  1. A self-contained CLI client that discovers a nearby Jenkins (via a UDP broadcast) and joins it
  2. A plugin that needs to be installed on Jenkins master to accept swarm clients

The primary use case of this came from "Jenkins slave appliance" — a virtual machine pre-packaged with the swarm client CLI — that someone can just grab and run.

With the swarm client, a person who's willing to contribute some of his computing power to the cluster just needs to run this virtual machine, and the cluster automatically gets additional resources. Because it's packaged as a VM, he need not worry about the builds/tests interfering with the host system or alter its settings unexpectedly.


  1. Install the swarm plugin from the update center
  2. Download the CLI agent from here.
  3. Run the CLI agent like java -jar path/to/swarm-client-jar-with-dependencies.jar. There's no required command option, but run with the -help option to see the available options.

Available Options

% java -jar swarm-client-jar-with-dependencies.jar -help
 -autoDiscoveryAddress VAL : Use this address for udp-based auto-discovery
 -description VAL          : Description to be put on the slave
 -disableSslVerification   : Disables SSL verification in the HttpClient.
 -executors N              : Number of executors
 -fsroot FILE              : Directory where Jenkins places files
 -help (--help)            : Show the help screen
 -labels VAL               : Whitespace-separated list of labels to be assigned
                             for this slave. Multiple options are allowed.
 -master VAL               : The complete target Jenkins URL like 'http://server
                             :8080/jenkins'. If this option is specified,
                             auto-discovery will be skipped
 -mode MODE                : The mode controlling how Jenkins allocates jobs to
                             slaves. Can be either 'normal' (utilize this slave
                             as much as possible) or 'exclusive' (leave this
                             machine for tied jobs only). Default is normal.
 -name VAL                 : Name of the slave
 -password VAL             : The Jenkins user password
 -username VAL             : The Jenkins username for authentication


Error configuration : "xxx.xxx.xxx.xxx doesn't have the URL configuration yet"

This error indicates that the Jenkins master running at the given URL has never configured, and therefore the swarm client cannot determine its HTTP URL. To fix this problem, please go to the system configuration screen of this Jenkins, and click "submit".


Version 1.12, 1.11 (2014 Jan 15)
Version 1.10 (2013 Oct 21)
Version 1.9 (2013 May 18))
Version 1.8 (2012 Nov 21)
Version 1.6 (2012 Mar 18)
Version 1.5 (2011 Aug 11)
Version 1.4 (2010 Aug 14)
Version 1.3 (2010 Jan 14)
Version 1.2 (2009 Dec 30)
Version 1.1 (2009 Jul 15)
Version 1.0 (2009 May 23)