Announcing xterm.js 2.0

We are excited to announce a new major update for xterm.js; xterm.js 2.0! This new release includes the following great updates:

  1. Launch of official project website with public API docs and blog
  2. Migration of code base to ES2015 modules to make development much easier
  3. Significant features and improvements

Let’s take a quick look on each one of this updates.

Project website

Xterm.js definitely deserved it’s own place in the web, so we gifted xtermjs.org to it! Here you can find the official docs for the public API of the project, including some high-level guides and a blog, where we will post articles about xterm.js, like releases, presentations, engineering etc.

⚠️ Attention: From now on, our public API is only the one documented in http://xtermjs.org/docs/. Any other attributes, methods or events that you might be relying in previous versions should not be considered stable and might change without notice!

Migration to ES2015

Xterm.js used to be a huge monolith and it was a real pain to work on, especially when dealing with core parts like rendering. We decided to take a big step forward, break the code base into multiple native ES2015 modules and ship xterm.js as a UMD monolith which can be imported using either native modules, CommonJS, RequireJS or no module system at all!

This will allow us to develop xterm.js faster, with less hassle and friction and at the end ship a better open source project to the world.

⚠️ Migrating from xterm.js 1.0 to 2.0

Since this is a major xterm.js release, we had to break our public API because of this update, so take a look here before migrating!

The only thing that you have to take into account when migrating from xterm.js 1.0 to 2.0 is importing the appropriate files. The xterm.js core is not stored as two built files (one JavaScript and one CSS) into the dist directory of the code base (instead of src, where they used to be).

To learn more about how to import xterm.js properly into your project, take a look at the Importing documentation page.

Note: If you are importing xterm.js using CommonJS, there should be nothing to change there, since we updated the package.json file of the project accordingly.

Features and improvements

Xterm.js 2.0 ships with a few great improvements:

  • New APIs to get and set terminal options
  • New API to clear terminal
  • Better mouse and mouse wheel support
  • Improved scrolling in oh-my-zsh

As always, this release could not be made possible without the contribution of our amazing contributors, so THANK YOU for making this happen!

Xterm.js 2.0 is available at npm, bower and GitHub Releases as usual, so go get it and create amazing terminal apps now!