Skip to content

romgrk/node-gtk

Repository files navigation

NODE-GTK

node-gtk

GTK bindings for NodeJS

Usage · Installing · Documentation · Contributing


node-gtk lets you build native GTK apps on linux, macOS and windows with full ESM, TypeScript and CSS hot-reload support. Prebuilt binaries are available for Node.js versions 22, 24 and 26.

A web browser build with node-gtk

Usage

The create tool generates a complete, ready-to-run GTK/Adwaita project, so you can start building immediately after installing GTK4:

npx node-gtk create <your-app>

Also see our hello world, web browser or system monitor examples.

When it's time to ship (Linux for now — see doc/bundling.md):

npx node-gtk flatpak    # a Flatpak users install with one click (Flathub-ready)
npx node-gtk bundle     # a self-contained portable directory / tar.gz

Installing

There are two steps:

  1. Install node-gtk itself (done by the create tool)
  2. Install the native libraries you use (see examples per platform below)

Linux

# archlinux
pacman -S gtk4 libadwaita

# fedora
dnf install gtk4 libadwaita

# ubuntu
# Already installed :)

macOS

brew install gtk4 libadwaita adwaita-icon-theme

Windows

# Already installed :)

Note

Windows doesn't have the dependencies we need in a package manager, therefore node-gtk ships prebuilt versions of GTK 4 / Adwaita, so npm install node-gtk is all you need if your dependency is in our list of prebuilt libraries.

build from source

Building from source, or contributing? See Building from source.

Documentation

Read our documentation here

Other notes

node-gtk is a gobject-introspection library for nodejs. It makes it possible to use any introspected C library, such as GTK, usable. It is similar in essence to GJS or PyGObject.

MIT License

About

GTK bindings for NodeJS

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors