# Install gjs with Homebrew, apk, apt, dnf, MacPorts, Nix, pacman, zypper

JavaScript Bindings for GNOME. Version 1.88.1 via Homebrew; verified 2026-06-29.

## Install

```sh
sudo av install brew:gjs
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install gjs
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install gjs
```

  Evidence: MacPorts ports tree: gnome/gjs/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- apk (92%):

```sh
sudo apk add gjs
```

  Evidence: Alpine Linux edge package indexes: gjs from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz

- Debian apt (92%):

```sh
sudo apt install gjs
```

  Evidence: Debian stable package indexes: gjs from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- dnf (92%):

```sh
sudo dnf install gjs
```

  Evidence: Fedora Rawhide package metadata: gjs from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst

- Nix (92%):

```sh
nix profile install nixpkgs#gjs
```

  Evidence: nixpkgs package indexes: pkgs/by-name/gj/gjs/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

- pacman (92%):

```sh
sudo pacman -S gjs
```

  Evidence: Arch Linux sync databases: gjs from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

- zypper (92%):

```sh
sudo zypper install gjs
```

  Evidence: openSUSE Tumbleweed package metadata: gjs from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst

## Package facts

- **Package key:** brew:gjs
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/gjs>
- **Version:** 1.88.1
- **Source summary:** JavaScript Bindings for GNOME
- **Homepage:** <https://gitlab.gnome.org/GNOME/gjs/wikis/Home>
- **Repository:** <https://gitlab.gnome.org/GNOME/gjs>
- **Upstream docs:** <https://gjs-docs.gnome.org/gjs>
- **License:** LGPL-2.0-or-later AND MIT
- **Source archive:** <https://download.gnome.org/sources/gjs/1.88/gjs-1.88.1.tar.xz>
- **Last updated:** 2026-06-29T04:06:11Z
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- gjs (cli)
- gjs-console (cli)
- gjs (alias)
- gjs-console (alias)

## Dependencies

- cairo
- gettext
- glib
- libx11
- readline
- spidermonkey

## Build dependencies

- gobject-introspection
- meson
- ninja
- pkgconf

## Uses from macOS

- libffi

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 1.88.1
- Package-manager updated: 2026-06-29
- Local data: ok
- Upstream repository: https://gitlab.gnome.org/GNOME/gjs/wikis/Home
- info: Release/tag comparison is only available for GitHub repositories.
## Project history and usage

GJS is GNOME's JavaScript runtime, built on Firefox's SpiderMonkey engine and GNOME platform libraries. It lets JavaScript programs use GNOME APIs through GObject Introspection and provides the runtime used by GNOME Shell, extensions, and many GNOME applications.

### Project history

The GJS README gives an unusually direct origin story: the idea traces to an August 2008 blog post and experimental gscript code, while the recognizable project form was developed in October 2008 at litl for the litl webbook.

GJS was soon adopted as the basis of GNOME Shell's user-interface code and extension system, and the README says it debuted as a fundamental component of GNOME 3.0. That made it a central runtime in the GNOME desktop rather than a standalone scripting curiosity.

In 2013, during the GNOME Developer Experience Hackfest, GJS was declared the first among equals for GNOME application development. The README records that this was controversial and later abandoned, but the episode shows how seriously GNOME considered JavaScript as an application language.

### Adoption history

The GJS README names GNOME Shell, Maps, Characters, Sound Recorder, and many other apps as GJS users. It also notes use in Endless OS's offline-content framework and in Cinnamon through a forked version.

Package metadata in this batch shows GJS distributed through Homebrew, Alpine, Debian, Fedora, MacPorts, Nix, Arch, Ubuntu, and openSUSE. That breadth follows from its role as a GNOME platform component and language runtime.

### How it is used

Practitioners use GJS to write JavaScript programs that call GNOME platform libraries. The README documents an interactive interpreter, whole-program execution with gjs filename.js, debugger support through -d in supported versions, and coverage-report facilities.

GJS is also used by extension authors and desktop developers because GNOME Shell and related applications expose platform behavior through JavaScript. The runtime bridges familiar JavaScript syntax with GTK, GLib, and other introspected GNOME libraries.

### Why package nerds care

GJS matters to package people because it is both a language runtime and a desktop-platform dependency. Packaging it means coordinating SpiderMonkey, GObject Introspection, GNOME libraries, ABI expectations, and application consumers.

It also represents a major desktop choosing an embedded JavaScript runtime for core UI behavior. That makes GJS more like a platform runtime than a conventional command-line interpreter.

### Timeline

- 2008: The GJS README traces the idea to an August blog post and experimental gscript code.
- 2008: GJS in recognizable form is developed at litl in October.
- 2011: GNOME 3.0 debuts with GNOME Shell, using GJS as a fundamental component.
- 2013: GJS is named first among equals for GNOME application development at a GNOME Developer Experience Hackfest.
- 2018: The README records GJS use in GNOME apps, Endless OS, and Cinnamon.

### Related projects

- SpiderMonkey is the JavaScript engine embedded by GJS.
- GObject Introspection is the binding mechanism that exposes GNOME libraries to JavaScript.
- GNOME Shell is the most prominent consumer of GJS.
- Cinnamon and Endless OS are named by the README as related adopters or downstream users.

### Sources

- <https://gitlab.gnome.org/GNOME/gjs>
- <https://gitlab.gnome.org/GNOME/gjs/-/raw/master/README.md>
- <https://gitlab.gnome.org/api/v4/projects/GNOME%2Fgjs/releases>
- <https://gjs-docs.gnome.org/gjs>
- <https://gjs.guide/>


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** gjs
- **Version Scheme:** 0
- **Revision:** 0
- **Head Version:** HEAD
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** head, stable

## Other Package-Manager Records

- Debian apt - gjs - 1.82.3-1: normalized package name match | Debian stable package indexes: gjs from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Mozilla-based javascript bindings for the GNOME platform (cli tool) | https://gitlab.gnome.org/GNOME/gjs/-/blob/master/doc/README.md
- Debian apt - gjs-tests - 1.82.3-1: normalized package name match | Debian stable package indexes: gjs-tests from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Mozilla-based javascript bindings for the GNOME platform (tests) | https://gitlab.gnome.org/GNOME/gjs/-/blob/master/doc/README.md
- Debian apt - libgjs-dev - 1.82.3-1: normalized package name match | Debian stable package indexes: libgjs-dev from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Mozilla-based javascript bindings for GNOME - development files | https://gitlab.gnome.org/GNOME/gjs/-/blob/master/doc/README.md
- Debian apt - libgjs0g - 1.82.3-1: normalized package name match | Debian stable package indexes: libgjs0g from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Mozilla-based javascript bindings for the GNOME platform | https://gitlab.gnome.org/GNOME/gjs/-/blob/master/doc/README.md
- Nix - gjs: normalized package name match | nixpkgs package indexes: pkgs/by-name/gj/gjs/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - gjs - 1.80.2-1build2: normalized package name match | Ubuntu 24.04 LTS package indexes: gjs from https://archive.ubuntu.com/ubuntu/dists/noble/main/binary-amd64/Packages.gz | Mozilla-based javascript bindings for the GNOME platform (cli tool) | https://gitlab.gnome.org/GNOME/gjs/-/blob/master/doc/README.md
- Ubuntu apt - gjs-tests - 1.80.2-1build2: normalized package name match | Ubuntu 24.04 LTS package indexes: gjs-tests from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Mozilla-based javascript bindings for the GNOME platform (tests) | https://gitlab.gnome.org/GNOME/gjs/-/blob/master/doc/README.md
- Ubuntu apt - libgjs-dev - 1.80.2-1build2: normalized package name match | Ubuntu 24.04 LTS package indexes: libgjs-dev from https://archive.ubuntu.com/ubuntu/dists/noble/main/binary-amd64/Packages.gz | Mozilla-based javascript bindings for the GNOME platform | https://gitlab.gnome.org/GNOME/gjs/-/blob/master/doc/README.md
- Ubuntu apt - libgjs0g - 1.80.2-1build2: normalized package name match | Ubuntu 24.04 LTS package indexes: libgjs0g from https://archive.ubuntu.com/ubuntu/dists/noble/main/binary-amd64/Packages.gz | Mozilla-based javascript bindings for the GNOME platform | https://gitlab.gnome.org/GNOME/gjs/-/blob/master/doc/README.md
- apk - gjs - 1.88.0-r1: normalized package name match | Alpine Linux edge package indexes: gjs from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | GNOME javascript library | https://gitlab.gnome.org/GNOME/gjs
- apk - gjs-dbg - 1.88.0-r1: normalized package name match | Alpine Linux edge package indexes: gjs-dbg from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | GNOME javascript library (debug symbols) | https://gitlab.gnome.org/GNOME/gjs
- apk - gjs-dev - 1.88.0-r1: normalized package name match | Alpine Linux edge package indexes: gjs-dev from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | GNOME javascript library (development files) | https://gitlab.gnome.org/GNOME/gjs
- dnf - gjs - 1.88.0-1.fc45: normalized package name match | Fedora Rawhide package metadata: gjs from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Javascript Bindings for GNOME | https://wiki.gnome.org/Projects/Gjs
- dnf - gjs-devel - 1.88.0-1.fc45: normalized package name match | Fedora Rawhide package metadata: gjs-devel from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Development package for gjs | https://wiki.gnome.org/Projects/Gjs
- dnf - gjs-tests - 1.88.0-1.fc45: normalized package name match | Fedora Rawhide package metadata: gjs-tests from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Tests for the gjs package | https://wiki.gnome.org/Projects/Gjs
- pacman - gjs - 2:1.88.0-1: normalized package name match | Arch Linux sync databases: gjs from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | Javascript Bindings for GNOME | https://wiki.gnome.org/Projects/Gjs


## Related links

- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Language runtime packages](https://www.automicvault.com/pkg/language-runtime-packages/) - Matched language runtime, compiler, or interpreter metadata.
- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [Web development packages](https://www.automicvault.com/pkg/web-dev-tools/) - Matched web development metadata.
- [cairo](https://www.automicvault.com/pkg/brew/cairo/) - Runtime dependency declared by Homebrew.
- [gettext](https://www.automicvault.com/pkg/brew/gettext/) - Runtime dependency declared by Homebrew.
- [glib](https://www.automicvault.com/pkg/brew/glib/) - Runtime dependency declared by Homebrew.
- [spidermonkey](https://www.automicvault.com/pkg/brew/spidermonkey/) - Runtime dependency declared by Homebrew.
- [gobject-introspection](https://www.automicvault.com/pkg/brew/gobject-introspection/) - Build dependency declared by Homebrew.
- [meson](https://www.automicvault.com/pkg/brew/meson/) - Build dependency declared by Homebrew.
- [ninja](https://www.automicvault.com/pkg/brew/ninja/) - Build dependency declared by Homebrew.
- [pkgconf](https://www.automicvault.com/pkg/brew/pkgconf/) - Build dependency declared by Homebrew.
- [boa](https://www.automicvault.com/pkg/brew/boa/) - Shares av.db curated category or tags: cli, javascript, language-runtime.
- [deno](https://www.automicvault.com/pkg/brew/deno/) - Shares av.db curated category or tags: cli, javascript, language-runtime.
- [duktape](https://www.automicvault.com/pkg/brew/duktape/) - Shares av.db curated category or tags: cli, javascript, language-runtime.
- [fibjs](https://www.automicvault.com/pkg/brew/fibjs/) - Shares av.db curated category or tags: cli, javascript, language-runtime.
- [jerryscript](https://www.automicvault.com/pkg/brew/jerryscript/) - Shares av.db curated category or tags: cli, javascript, language-runtime.
- [mujs](https://www.automicvault.com/pkg/brew/mujs/) - Shares av.db curated category or tags: cli, javascript, language-runtime.
- [node](https://www.automicvault.com/pkg/brew/node/) - Shares av.db curated category or tags: cli, javascript, language-runtime.
- [ringojs](https://www.automicvault.com/pkg/brew/ringojs/) - Shares av.db curated category or tags: cli, javascript, language-runtime.
- [libdazzle](https://www.automicvault.com/pkg/brew/libdazzle/) - Local package facts share a topical domain. Shared terms: cairo, cli, gettext, glib, gnome.
- [vala](https://www.automicvault.com/pkg/brew/vala/) - Local package facts share a topical domain. Shared terms: cli, gettext, glib, gnome, gobject.
- [gspell](https://www.automicvault.com/pkg/brew/gspell/) - Local package facts share a topical domain. Shared terms: cairo, cli, gettext, glib, gnome.

## Combined YAML source

View the package source record on GitHub. [combined/gjs.yml](https://github.com/automic-vault/db/blob/main/combined/gjs.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
