README.md
July 5, 2026 · View on GitHub
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.
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:
- Install
node-gtkitself (done by the create tool) - 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
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.