Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 1,000,000+ packages pre-installed, including jsctags with all npm packages installed. Try it out:

var jsctags = require("jsctags")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

jsctags v5.2.2

jsctags generator


jsctags generator using tern


For access to the binary:

npm install -g git+

Otherwise, add to your project's package.json under dependencies or dev-dependencies:

"jsctags": "git://"


$ jsctags [--dir=/path/to] /path/to/file.js [-f]
$ cat /path/to/file.js | jsctags [--dir=/path/to] [--file=/path/to/file.js] [-f]

By default, jsctags will output a JSON file. Use the -f flag to output an exuberant ctags-compatible file.

const jsctags = require('jsctags');
const fs = require('fs');

const file = '/path/to/file.js';
const dir = '/path/to/';
const content = fs.readFileSync(file, 'utf8');

jsctags(file, dir, content, function(e, tags) {

Usage with Vim

If you'd like to take a JavaScript project and generate a tags file that Vim can parse, you can use the below command. It searches your directory for any .js files, excluding ./node_modules, formats the tags correctly for Vim and outputs them into tags.

find . -type f -iregex ".*\.jsquot; -not -path "./node_modules/*" -exec jsctags {} -f \; | sed '/^$/d' | LANG=C sort > tags

If you would like tags generated for files within node_modules/, just remove the -not -path "./node_modules/* part of the command:

find . -type f -iregex ".*\.jsquot; -exec jsctags {} -f \; | sed '/^$/d' | LANG=C sort > tags




RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free