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.
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.gzThere are two steps:
- Install
node-gtkitself (done by the create tool) - Install the native libraries you use (see examples per platform below)
# archlinux
pacman -S gtk4 libadwaita
# fedora
dnf install gtk4 libadwaita
# ubuntu
# Already installed :)brew install gtk4 libadwaita adwaita-icon-theme# 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.
Building from source, or contributing? See Building from source.
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.

