gdget ("gadget") installs pinned Godot 4 addons into a project from a committed
manifest. Use it for addons that ship prebuilt native libraries, such as GDExtensions,
so you commit a small addons.toml file instead of the binaries. It also installs
GDScript addons straight from git repositories, pinned to a commit.
gdget verifies every download against a pinned sha256 hash or commit, caches downloads per user, and replaces addon folders atomically. It never touches folders it didn't install.
Download the archive for your platform from the
releases page, extract gdget, and add
it to your PATH.
Alternatively, if you have Rust 1.89 or later, install from crates.io:
cargo install gdget --locked-
In your Godot project folder (the one that contains
project.godot), add an addon from the Godot Asset Store:gdget add PUBLISHER/ASSET
Replace
PUBLISHER/ASSETwith the part of the asset's store address after/asset/, such asdevprice/godot-slang. To add a specific release, append@VERSION, as indevprice/godot-slang@v6.0.0. To add an addon from any other site, pass the link to its zip instead. To add one from a git repository, pass the repository's clone URL, and add--path FOLDERif it holds several addons:gdget add https://github.com/DevPrice/godot-addons.git --path inventory
gdget downloads the addon, pins its hash or commit in
addons.toml, and installs it toaddons/NAME/. -
Add the installed addon and gdget's working files to
.gitignore:/addons/NAME/ /.gdget/ /addons.local.toml
-
Commit
addons.tomland.gitignore.
When someone else clones the project, they run gdget sync to install the pinned
addons. To sync automatically on checkout, see Automate syncing.
- Command reference: commands, flags, environment variables, and exit codes.
- Manifest reference: the
addons.tomlformat and how gdget finds the addon folder in an archive. - Develop an addon locally: use your local build instead of the pinned release.
- Automate syncing: Git hooks and GitHub Actions.
- Publish an addon for gdget: how to package a release.
Before you begin, install Rust 1.89 or later from rustup.rs.
-
Clone the repository:
git clone https://github.com/DevPrice/gdget.git cd gdget -
Build a release binary:
cargo build --release
The binary is
target/release/gdget(gdget.exeon Windows). -
Run the tests and lints that CI runs:
cargo test cargo clippy --all-targets -- -D warnings cargo fmt --checkThe tests use a local HTTP server and don't need network access.
gdget is licensed under the MIT License.