Extension Manager for GNOME Shell Extension Management
A utility for browsing and installing GNOME Shell Extensions.
At a glance
- What is it?
- Extension Manager is a GTK 4 and libadwaita desktop application for finding, installing, and controlling GNOME Shell Extensions. Flatpak is the recommended installation route, while update compatibility varies by GNOME version.
- Who is it for?
- Extension Manager is suitable for GNOME users who want a graphical client for browsing and administering Shell Extensions, particularly those who prefer Flatpak or the project's translated GTK interface. It is a weaker choice for systems where extensions must update on GNOME 40 or older GNOME 41 and 42 without installing the official GNOME Extensions app.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly C, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
Why Extension Manager Exists for GNOME Users
GNOME Shell Extensions alter or extend the GNOME Shell desktop, but obtaining and controlling them normally requires more work than installing an ordinary application. Extension Manager addresses that gap with a native graphical interface for browsing and searching the catalog at `extensions.gnome.org`, installing or removing extensions, and enabling or disabling them after installation. It also presents screenshots, images, ratings, and comments from the catalog, so users can inspect an extension's page before deciding whether it belongs in their session.
The target audience is specific: people who already use GNOME Shell and need a desktop utility for managing extensions across their installed set. The project does not present itself as a generic GNOME customization application or a command-line package manager. Its scope is extension discovery and administration. In-app updating is listed for GNOME 43 and later, although the known-issues section shows that support has practical boundaries on earlier releases.
The application is written in C using GTK 4 and libadwaita. According to the README, its interface is translated into more than 30 languages, and translations are managed through Weblate. That makes the project relevant to users who want catalog metadata and lifecycle controls in a graphical Linux application rather than navigating extension files or GNOME configuration directly.
Catalog Browsing and Extension Lifecycle Support
The catalog side of the application is connected to `extensions.gnome.org`. Extension Manager supports browsing and searching that catalog, and its displayed metadata includes screenshots, images, ratings, and comments. This puts selection information and local administration in the same interface. A user can inspect an extension and then install it, rather than treating the catalog and extension state as completely separate tasks.
The local lifecycle is more involved. Extension Manager can install and remove extensions, enable and disable them, and request in-app updates on supported GNOME releases. The README does not document extension dependency handling, rollback, update scheduling, batch operations, or a command-line interface. Those omissions matter when comparing the application with a lower-level extension tool. The confirmed feature set is centered on one-at-a-time discovery and management through the graphical interface.
There is also a compatibility gate. GNOME Shell does not load extensions that were not designed for the current Shell version. Extension Manager respects the GNOME setting that disables this validation and will allow an unsupported extension to be used. That is an intentional escape hatch, not a compatibility guarantee. The project's warning is direct: unsupported extensions are likely to behave incorrectly and may destabilize the system.
Flatpak Installation and the Source Build Route
The project recommends Flatpak and directs users to Flathub for the latest version. The README does not provide a `flatpak install` command or document a command-line launch sequence, so there is no justified command to include for either step. For the recommended installation, open the project's Flathub page and use the installation controls presented there. Independently maintained distribution packages may also exist, but the README warns that they can differ from the official Flathub version and are not guaranteed to receive support through this repository.
For development, the documented route is GNOME Builder, which resolves the relevant Flatpak SDK dependencies from the repository. The stable and development manifests under `build-aux/` contain the full dependency lists. A recent GNOME SDK is required, which makes the source route less convenient for a user who only wants the finished application.
The README also gives an explicit Debian dependency command. This command installs the named development packages, but it does not install GNOME Builder, create the Flatpak environment, or build the project by itself. It is appropriate as part of a native development setup, not as a complete substitute for the documented Flatpak installation path.
Building Extension Manager with Meson
After preparing the documented development dependencies and build environment, the README defines a three-step Meson sequence. The first command creates the `_build` directory, the second compiles the project there, and the third installs the built result. The README does not show the expected program name or a subsequent launch command, so it does not establish a complete first-run procedure for a locally built binary.
The dependency list contains `gettext`, `glycin`, `glycin-gtk4`, `gtk4`, `libadwaita`, `libjson-glib`, `libsoup`, `libxml2`, `blueprint`, and `meson`. On Debian-based systems, the documented package command installs the development headers and compiler packages needed by that stack. The exact versions are not pinned in the README, and it refers readers to the Flatpak manifests for the authoritative dependency lists.
This build information gives contributors a reproducible command sequence, but it is not a substitute for user documentation on initial configuration. In particular, the README does not say whether signing in, configuring a catalog URL, or accepting permissions is needed after launch. Any evaluation of first-run behavior must therefore remain separate from the confirmed build process.
Updating Across GNOME Versions and Its Main Failure Mode
The clearest documented limitation concerns updates. Extension Manager lists in-app updating for GNOME 43 and later, but the known-issues section says updates do not work out of the box on GNOME 40 and certain older versions of GNOME 41 and 42 unless the official GNOME Extensions app is also installed. The repository directs affected users to a separate wiki page for details and a workaround. This is a concrete adoption constraint because it adds another application to some older systems.
Version validation creates a second failure mode. A Shell extension designed for another GNOME version will normally be rejected. Extension Manager can respect a manually changed GNOME preference and permit it, but doing so accepts the possibility of incorrect behavior and system instability. The README also instructs users to restore the default setting before filing issues against GNOME components, which helps keep an unsupported-extension problem from being misreported as a general GNOME fault.
Only the documented `gsettings` procedures are shown below. The first disables GNOME Shell's extension-version validation. The second resets that key to its default state. These commands change GNOME configuration; they do not update Extension Manager or an individual extension.
Restoring GNOME's Extension Version Check
To allow Extension Manager to use extensions that do not declare support for the current GNOME Shell version, run this documented command to disable the version check:
gsettings set org.gnome.shell disable-extension-version-validation trueAfter testing or removing an unsupported extension, restore GNOME's default validation behavior with this command:
gsettings reset org.gnome.shell disable-extension-version-validationThe project does not explain rollback for extension installations or upgrades in the README. It also does not document compatibility handling beyond the version-validation setting, so users should not assume that this override makes an extension safe for their GNOME release.
Official GNOME Extensions App and Distribution Packages as Alternatives
The official GNOME Extensions app is the most relevant alternative identified by the README, although the project does not publish a full feature comparison between the two applications. The documented difference is update handling: on GNOME 40 and certain older GNOME 41 and 42 installations, Extension Manager updates can require the official app to be installed as well. On GNOME 43 and later, Extension Manager lists in-app updating as a supported feature without presenting that older-version dependency.
Users who prefer their distribution's existing GNOME tooling may choose the independently maintained package instead of Flathub. That is an alternative distribution route rather than a different management model. The tradeoff is support and version alignment: the README warns that third-party packages may differ from the official Flathub version and provides no guarantee of support for issues arising in those packages.
For Flatpak users, the documented option is the Flathub release linked by the project. That route aligns the application with the project's recommended distribution and its associated runtime dependency model. The README does not compare Flatpak's filesystem access or sandbox permissions with native packaging, so those operational differences should be assessed from the actual package configuration rather than inferred here.
Release History and GPL-3.0 Upgrade Considerations
The release list records v0.6.5 on 2025-10-01, v0.6.4 on 2025-09-17, and v0.6.3 on 2025-04-01. The repository's last push was on 2026-10-14. These are the concrete maintenance facts available from the repository record; the README does not provide a written upgrade policy or a migration guide for moving between these releases.
The project is licensed under GPL-3.0. For organizations distributing modified builds, that license creates obligations that should be reviewed under the applicable distribution circumstances. This article does not provide legal advice. The more practical technical upgrade concern documented here is GNOME compatibility, particularly whether the target Shell version can update extensions through Extension Manager and whether an older system needs the official GNOME Extensions app.
The C codebase and its GTK, libadwaita, networking, image, and XML dependencies also mean that a source build depends on a coherent development environment. The Flatpak manifests are the repository's documented reference for dependency definitions. Before upgrading an existing native installation, check the selected package source first because the README explicitly warns that independent distribution packages may not match Flathub.
Editorial conclusion
Extension Manager is suitable for GNOME users who want a graphical client for browsing and administering Shell Extensions, particularly those who prefer Flatpak or the project's translated GTK interface. It is a weaker choice for systems where extensions must update on GNOME 40 or older GNOME 41 and 42 without installing the official GNOME Extensions app. Verify first that your GNOME version supports the required update path, that Flatpak permissions match your security expectations, and that any extension you permit to bypass version validation is compatible with your Shell version.
Frequently asked questions
How do I install Extension Manager for GNOME Shell?
The README recommends Flatpak and directs users to the project's Flathub page for the latest version. It also notes that some distributions may provide independently maintained packages, which can differ from the Flathub release.
Can Extension Manager update extensions on every GNOME version?
No. The README says in-app updates do not work out of the box on GNOME 40 and certain older GNOME 41 and 42 versions unless the official GNOME Extensions app is installed. It lists in-app updating for GNOME 43 and later.
What does Extension Manager let me do with GNOME Shell Extensions?
The documented features include browsing and searching `extensions.gnome.org`, installing and removing extensions, enabling and disabling them, updating them on supported GNOME releases, and viewing screenshots, ratings, and comments.
Can Extension Manager install an extension that does not support my GNOME version?
It can respect a GNOME preference that disables extension-version validation, but the README warns that unsupported extensions may not work as intended and may cause instability. The default setting should be restored afterward.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/mjakeman-extension-manager)Was this useful?