gnome-extensions
Manage GNOME Shell extensions
TLDR
List all the installed extensions
Display information about a specific extension
Enable a specific extension
Disable a specific extension
Uninstall a specific extension
Display help for a specific subcommand (like list)
Display version
SYNOPSIS
gnome-extensions COMMAND [ARGS…]
PARAMETERS
app [DIRECTORY]
Launch Extensions app or install DIRECTORY as user extension.
create ZIPFILE [--template TEMPLATE]
Create a new extension ZIP from template.
disable UUID [--user|--system]
Disable extension by UUID.
enable UUID [--user|--system]
Enable extension by UUID.
info UUID
Show detailed info about extension.
install UUID.zip [--user|--system]
Install extension from ZIP file.
list [--enabled|--installed] [SHELL_VERSION]
List enabled or installed extensions.
prefs UUID
Launch preferences dialog for extension.
refresh
Reload extensions after shell restart.
reset UUID [--user|--system]
Reset extension to default settings.
show UUID [--user|--system]
Print extension metadata.
uninstall UUID [--user|--system]
Uninstall extension by UUID.
DESCRIPTION
The gnome-extensions command is a powerful command-line interface for managing extensions in the GNOME Shell desktop environment.
GNOME extensions add custom functionality to the shell, such as new applets, themes, workflows, or accessibility features, often sourced from extensions.gnome.org. This tool enables users to list, install, enable, disable, reset, and configure extensions without the graphical Extensions app.
It supports both user-specific (--user) and system-wide (--system) installations, making it ideal for automation, scripting, remote servers, or headless GNOME setups. Commands interact with the shell's extension directory (~/.local/share/gnome-shell/extensions or /usr/share/gnome-shell/extensions) and require a D-Bus session bus for most operations.
Key benefits include batch operations, integration with package managers, and compatibility checks against the current shell version. It's essential for developers testing extensions or sysadmins deploying customized GNOME environments.
CAVEATS
Most commands require a running GNOME Shell session and D-Bus; fails on Wayland without session bus. User installs need write perms to ~/.local/share/gnome-shell. Shell must be restarted (Alt+F2 r Enter) for changes outside refresh. Not all extensions support --system.
COMMON WORKFLOW
Download ZIP from extensions.gnome.org, then gnome-extensions install extension.zip && gnome-extensions enable extension@uuid. Use list --enabled to verify.
DEVELOPER USE
gnome-extensions create myext.zip --template classic to scaffold; test with enable and prefs.
HISTORY
Introduced in GNOME 3.36 (2020) as replacement for deprecated gnome-shell-extension-tool. Matured in GNOME 40+ with subcommand unification and D-Bus integration. Tracks GNOME Shell releases for compatibility.
SEE ALSO
gnome-shell(1), gnome-tweaks(1), dconf(1)


