Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time
November 21, 2022 10:38
November 21, 2022 10:38

JavaScript bindings for GNOME

Use the GNOME platform libraries in your JavaScript programs. GJS powers GNOME Shell, Polari, GNOME Documents, and many other apps. Under the hood it uses SpiderMonkey, Mozilla's JavaScript engine originally developed for Firefox.


Available as part of your GNOME distribution by default. In most package managers the package will be called gjs.


GJS includes a command-line interpreter, usually installed in /usr/bin/gjs. Type gjs to start it and test out your JavaScript statements interactively. Hit Ctrl+D to exit.

gjs filename.js runs a whole program. gjs -d filename.js does that and starts a debugger as well.

There are also facilities for generating code coverage reports. Type gjs --help for more information.

-d only available in gjs >= 1.53.90


For instructions on how to get started contributing to GJS, please read the contributing guide,


GJS probably started in August 2008 with [this blog post][havocp] and [this experimental code][gscript]. GJS in its current form was first developed in October 2008 at a company called litl, for their [litl webbook] product. It was soon adopted as the basis of [GNOME Shell]'s UI code and extensions system and debuted as a fundamental component of GNOME 3.0.

In February 2013 at the GNOME Developer Experience Hackfest GJS was declared the ['first among equals'][treitter] of languages for GNOME application development. That proved controversial for many, and was later abandoned.

At the time of writing (2018) GJS is used in many systems including Endless OS's [framework for offline content][eos-knowledge-lib] and, as a forked version, [Cinnamon].

Reading material


JavaScript & SpiderMonkey

GNOME Contribution


Dual licensed under LGPL 2.0+ and MIT.


The form of this README was inspired by [Nadia Odunayo][hospitable] on the Greater Than Code podcast.