Tern is a stand-alone code-analysis engine for JavaScript. It is intended to be used with a code editor plugin to enhance the editor's support for intelligent JavaScript editing. Features provided are:

Tern is open-source (MIT license), written in JavaScript, and capable of running both on node.js and in the browser.

NOTE: This project is looking for a new maintainer, since the original author no longer has time to work on it.

Editor plugins

There is currently Tern support for the following editors:

Follow the links to find instructions on how to install the plugins.

Community and support

There is a discussion forum for questions and discussion around Tern. For announcements, such as new releases, there is a low-volume mailing list. For reporting bugs, I prefer that you use the github issue tracker.

Code contributions are welcome, preferably through pull requests.

If you are getting value out of Tern, especially if you are using it in a for-profit way, consider funding further development by setting up a monthly contribution. The maintainer (Marijn Haverbeke) is available for Tern-related consulting work.

Current funding status: 


The reference manual should be your first stop for figuring out how to use Tern.

If you are interested in the way the system works internally, take a look at this blog post or the video of the talk I gave about it at the Curry On conference.

Release history

13-09-2018: Version 0.22.2

Small update release that fixes crashes affecting spread operator in object notation and rest operatore in object pattern.

28-08-2018: Version 0.22

18-02-2017: Version 0.21

16-08-2016: Version 0.20

11-07-2016: Version 0.19

15-03-2016: Version 0.18

04-01-2016: Version 0.17

27-10-2015: Version 0.16

02-09-2015: Version 0.15

31-08-2015: Version 0.14

28-07-2015: Version 0.13

25-06-2015: Version 0.12

29-04-2015: Version 0.11

25-03-2015: Version 0.10

02-03-2015: Version 0.9

13-01-2015: Version 0.8

14-08-2014: Version 0.7

06-06-2014: Version 0.6.2

Small update release that fixes a crash affecting asynchronous loading of files.

06-06-2014: Version 0.6

10-10-2013: Version 0.5

12-08-2013: Version 0.4

10-07-2013: Version 0.3

11-06-2013: Version 0.2

03-05-2013: Version 0.1

First numbered release. Should be considered beta status, but useable enough to test.