Skip to main content

An extension manager to replace Google's WebStore

Project description

Well, “manager” might be stretching it a bit. The idea is not having to manually look up and install updates when using a Chromium-like browser that doesn’t use the WebStore plugin to handle these things. This is done by employing this method which uses JSON preference files to point to local extension packages.


pip install maninex

Python 3.3 or higher required. Older Python 3 versions may work as well, but Python 2 won’t.


usage: maninex [option]

  -h, --help        show this help message and exit
  -c, --clean       clean up (i.e. remove) backed up extension files
  -i, --install     install all extensions that aren't already installed
  -l, --list        list all extensions and their current status
  -p, --print-skel  print the contents of a skeleton config file to stdout
  -r, --remove      remove all extensions that are installed but not in the
                    config file
  -s, --scan        scan for installed extensions not in the config file and
                    add them to the config file
  -u, --update      update all extensions

set up paths and extensions in maninex.conf

Maninex depends on a configuration file named “maninex.conf” for which it will look in three places: First in $XDG_CONFIG_HOME, then in $HOME/.config and finally in the same directory that the script is in. maninex --print-skel prints out a base config file with some basic instructions. Therefore, to get started you can run maninex --print-skel > ~/.config/maninex.conf.

Edit maninex.conf and add extensions by their ids under the [extension] header. You can use the scan option to add extensions you manually installed before (see below). To find out an extension’s id, search for the it on the Chrome WebStore. The final part of the extension page’s URL is the id. For example, this is the url of uBlock Origin and its id is therefore “cjpalhdlnbpafiamejdnhcphjbkeiagm”. Every extension id should occupy one line under the [extension] header. Optionally you can prepend an identifier for the extension like this: uBlock Origin = cjpalhdlnbpafiamejdnhcphjbkeiagm

This is recommended as it will make messages more descriptive, for example Extension "cjpalhdlnb…" installed. will become Extension "My Extension" installed.

Run maninex -i to install all the extensions in the config file. Run maninex -u to look up and download updates.

Other functionality


This will remove old extension files that were backed up during previous updates.


List all extensions in the config file and whether or not they are installed already.


Scan the extension directory and add all extensions to the config file that aren’t included already.


The opposite of scan. Remove all extensions that aren’t included in the config file.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

maninex-0.1.1-py3-none-any.whl (9.7 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page