Visual connectivity for webapps
JavaScript HTML CSS
Latest commit 283c944 Jan 14, 2018 @sporritt sporritt 2.5.13 final
Failed to load latest commit information.
.vscode CSS files lower case names Feb 9, 2017
css final step for filename case change Apr 30, 2017
demo 2.5.11 Dec 21, 2017
dist 2.5.13 final Jan 13, 2018
doc 2.5.13 final Jan 13, 2018
img import fonts Jul 15, 2015
jekyll 2.5.13 alpha Jan 10, 2018
src introduce a couple of string constants. dont precalculate the orienta… Jan 10, 2018
tests change test for 'directed' to expect "undefined" by default instead o… Jan 3, 2018
.babelrc first set of commits for conversion to typescript. not compiling righ… Oct 21, 2017
.eslintrc.json first set of commits for conversion to typescript. not compiling righ… Oct 21, 2017
.gitignore add _build to gitignore Nov 23, 2017
Gruntfile.js fix refs to tests in gruntfile and reinstate bind shim, for phantom js Aug 23, 2017 2.2.9 final Jan 13, 2017
bower.json 2.5.7 final Oct 22, 2017
build-support.js updates to assist in migrating to new site Dec 18, 2014
build.json CSS files lower case names Feb 9, 2017
index.d.ts Fixes duplicate definition for Endpoint + fixes return for getInstanc… Jan 3, 2018
index.html begin splitting monolithic test file into separate areas of functiona… Aug 23, 2017
install.js add a recursive npm install/grunt build script Jan 26, 2017
jsPlumb-LICENSE.txt Merged MIT and GPLv2 license texts to one file, licence field in bowe… Jan 21, 2016
jsplumb.tgz 2.5.13 final Jan 13, 2018
logo-bw.png 1.5.4 rc3 Nov 18, 2013
package.json version -> 2.5.13 Jan 10, 2018
todo.txt udpate every adapter to use Mottle for internal events Sep 4, 2014


jsPlumb provides a means for a developer to visually connect elements on their web pages. It uses SVG and runs on all browsers from IE9 and later.

The final version of jsPlumb to support IE8 was 1.7.10. You can still get 1.7.10 from a tag, if you need it.

If you're new to jsPlumb, please do take the time to read the documentation. There are a few integration issues that you should be aware of: z-index needs special attention, for example.

This project is the 'Community Edition' of jsPlumb. The 'Toolkit Edition' is a commercially-licensed wrapper around this.

This project is not the correct place to report issues for the Toolkit edition. The Toolkit is not a public project. Issues reported for the Toolkit edition in this issue tracker will be cleared.

Project Structure

At any time there is a built version in the dist directory, which contains the concatenated and minified files, as well as a full set of demos and tests, and there is a version under development in src. If taking something that is working and adapting it for your needs is what you want to do, use the files in the dist directory. If you need to work directly with the version in development - maybe there's a bug fix you need or whatever - you need the files in the src directory.

Note that the demos in the demos directory are always pointing at the current development version, and therefore have a long list of imports.


jsPlumb uses GitHub's issue tracker for enhancements and bugs. But please do check the Google Group before posting an issue, particularly if you're just asking a question.


No external dependencies.





jsPlumb in action

Links to various demonstrations can be found here.


Documentation can be found in the doc folder of the project, or you can view it online here.

API documentation is in the apidoc folder of the project, and online here.

jsPlumb Helper Projects

  • Bezier curve functions:

  • Simple geometry functions:

  • Drag+drop:

  • Events:


There is a full suite of unit tests checked in to the test and dist/test directories.


The Twitter account for this project is jsplumblib

..but of course things fall through the cracks with Twitter. So maybe use this instead:

Mailing List

Sign up for the jsPlumb announcements mailing list here.


All 1.x.x and 2.x.x versions of jsPlumb Community edition are dual-licensed under both MIT and GPLv2.