Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Scripts to aid in swarm coding.
Emacs Lisp Shell Clojure
Pull request Compare This branch is 3 commits ahead, 1 commit behind nuclearsandwich:master.
Fetching latest commit...
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


A set of scripts and dotfiles to bootstrap swarm coding.


NOTE: Only the host of the swarming session needs to follow the instructions below.

Participating Prerequisites

  • A *nix terminal. If you're on Windows, check out the PuTTY program.
  • Basic familiarity or affinity to a terminal-based editor such as Emacs or Vim.
  • Someone willing to host a swarm coding session.

Connect to a swarm host with the following commands*.

$ ssh swarm@$HOST_IP
$ tmux attach swarming

* With PuTTY, you will actually be entering the host ip in a Windows dialogue, then prompted for the username later.

Hosting Prerequisites


  1. Be on a *nix machine
  2. Have the ability to sudo


  • sshd
  • tmux
  • A terminal-based $EDITOR of your choice, Vim and Emacs (24+) are currently supported.


  • Add a user with username swarm to your machine.

    Suggested command:

    $ sudo adduser swarm --gecos "" # set password to swarm

  • Log in as the swarm user: ssh swarm@localhost


As the User swarm:

$ git clone git://
$ swarming/

Go Swarm!

After bootstrapping leiningen and symlinking the appropriate dotfiles for your chosen $EDITOR, the last command will start a tmux session called swarming as well as print a message that you can share with your swarm on how to connect.

==> Created tmux session
==> Bootstrapping Leiningen
==> Symlinking Editor Dotfiles
==> Direct the swarm to connect using $ ssh swarm@
==> Happy Swarming


The dependency on the root sshd server is both a security risk to host machine and a pain point for flexible, yet precise instructions. It'd be cool to bundle an embedded ssh daemon (Dropbear?) and run it as the non-privileged swarm user on port 5022 or something.

Since Swarm coding is not, as a rule, bound to Clojure just as it was not bound to emacs, I would like to add support for other languages such as Ruby, Python, Go, or Racket.


Copyright © 2010-2012 the Seattle Clojure Group Released under the Eclipse Public License.

Something went wrong with that request. Please try again.