[FREE] Plugget: a search engine & installer for add-ons

Plugget is a Blender add-on manager to download & install add-ons from the web, with only 1 click.

Since installing an addon with 1-click is now made so easy, it enables devs to create more advanced addons with a more complex setup. E.g by using python dependencies.

Get started with the Plugget add-on

  • on enable it will auto install the plugget module.
  • the addon preferences contain UI to search install & uninstall packages.

:warning: requirements

  • Currently plugget requires git installed on your computer. install git
  • current develpment is Windows only

Plugget GUI

A GUI lets artists search & install addons

Command line example

Plugget can be run purely by script.
This demo installs MACHIN3tools with 1 line of code: plugget.intall("machin3tools")
machinetoolsinstall

dependency example

This console tool needs pyside2 installed for its UI, since Blender addons can’t show windows.
But asking a user to install pyside, can be too technical for them.
With the plugget addon it’s a simple 1 click install instead.
image

Tech breakdown

Plugget is a python module that acts as an add-on manager for Blender.

  • Plugget uses a manifest for each addon, this is the machinetools one
    Anyone can submit an add-on manifest on the manifest repo.
  • Plugget then reads these manifests, letting the user search and install them.
    It also auto installs any python dependencies, and let’s you create custom install actions. This allows add-on devs to create an easy install, so users don’t have to install dependencies.
    e.g. a more advanced package is bqt, which needs pyside2 installed. Pip installing a package can be confusing for artists. but with plugget this is done automatically. The goal is to create a nice UI for end-users so they can install add-ons easily.

check out my other add-ons on my GitHub profile

5 Likes

Cool idea.

Really nice. I guess the main purpose is to quickly install the same bundle of add-ons on multiple computers?

An old script comes to mind, in which you could monitor add-ons, and update them from inside Blender: https://github.com/KoltesDigital/blender-addon-registry

I did an update on the UI, but couldn’t find a good way to scrape ex. GitHub for Blender add-ons. So, I didn’t pursue it further: https://github.com/tin2tin/blender-addon-registry

Checking GitHub, this project which includes GitHub scraping showed up: https://github.com/Dragorn421/blender-addon-updater-github

1 Like

a really nice scraper is https://blenderdepot.netlify.app/addons/?search=&page=1&sort=popular
but it doesn’t handle dependencies. and only looks i assume for files containing bl_info.

1 Like

actually a little more. this is designed so it will also work with plugins for maya, 3ds max, krita, …
It can also install icon packs, or material packs, any resources.
the end goal is that you can provide someone with a single install line, and it auto installs all resources needed.
so you could easily distribute a full pipeline with tools for multiple apps.

second purpose is manage versions of your apps. easily update, or give a beta to a tester.

dependency example

This tool needs pyside2 installed for its UI.
Asking a user to do so is quite technical for them.
With the plugget addon it’s a simple 1 click install.

2 Likes

Really great stuff you are doing here. Making it easier for users to access and install add-ons is very welcome. Often it seems like it is only super-users who dare to install add-ons, and your work could change that.

Created a blender add-on to install plugget for people who don’t use pip

1 Like

addon now also contains a UI to install & uninstall packages in Blender.
fixing some bugs now. install sometimes doesn’t install correctly yet.

demo video installing retopoflow add-on with 1 click:

3 Likes

I created an auto installer.
simply run this blend file to install the plugget add-on :slight_smile:
install_plugget_addon.blend (75.8 KB)

for future updates, you can find the blend file in the repo:
plugget-blender-addon/installer/ install_plugget_addon.blend

People are requesting that I collect all of my VSE add-ons in one add-on. I once did an application template with most of them, but keeping them up to date is a lot of work, and filling up Blender with add-ons users do not necessarily need might not be a good idea. So, I was thinking about your add-on, should I make a fork of the add-on and the manifest repository and, and then do VSE versions for both of them, or how would you suggest I should approach this?

i want to support preset lists. which would cover this need. but for now the best approach might be to point to your own manifest repo instead.

which means fork plugget main module and change the repo in there.
but you might also need to fork the addon to point to your plugget fork.

let me see if i can add a quick feature for this to make it more straightforward.

the easiest way would be, make a PR to add your manifest to the plugget manifest repo
and use a naming convention to group them.
e.g. TIN2TIN_EXPORT, TIN2TIN_ANIMATOR, …

then user can search TIN2TIN and all your plugins will show.
and no forks are needed on anything.

i’ve added 3 of your tools as packages:


feel free to PR more. note the difference in the manifests between the add-ons with a __init__.py file, or a named py file.

guidelines

  • the name of the folder in the manifest repo, is the name the tool will show.
  • the repo url is the repo
  • the repo paths is for subfiles and subfolders. e.g. if you dont use __init__.py, we have to place the python file directly in the addons folder, instead of placingthe whole repo folder in the addons folder.

Thank you for spending your time on this. I had a quick peeking into the forking option, but it seems like I would have to fork 3 repositories and have to get them to point to themselves. Maybe that’ll be too much work to keep all of that updated when you update your code over time.

I fear adding VSE to my add-ons and add them to your pkg repository will make a mess out of everything.

It’s more work, but to keep the list clean, maybe the add-on categories could be used to organize the lists?
image

A minor thing I noticed, is that if you already have installed an add-on from GitHub the folder will have the branch added to the folder name, ex. “-main”, and you can end up with having the same add-on installed twice resulting in conflicts etc. maybe something can be done to avoid this situation?

to clarify, you don’t have to change your add-on repo names.
the name is set by the manifest in the plugget package repo.
so if i make a plugget manifest in a folder VSE-my-addon,
I can point it to your repo github.com/tin2tin/my-addon.
Then on installation of the package, it will be renamed to VSE-my-addon

The categories is a great idea! Will add that to my feature list.
It would make a lot of sense for the plugget manifest to read bl_info. to get category from there.

that’s an interesting one. not sure what happened there. Don’t remember adding main or branch name.
it’s deffo possible to get conflicts this way. will need to address that.
How would you expect plugget to handle this? Warn user, prevent install? …

does it feature a precompiled addon list ???

i thought we could add github/gitlab/whatever links …

Really cool and useful project, I’ll keep an eye on it.

does it feature a precompiled addon list ???
i thought we could add github/gitlab/whatever links …

you can add your manifest to the manifest repo. have a look in there. each folder is a separate add-on, that points to a repo on github. none of them are precompiled.
so you can add your own github/gitlab/… in a manifest to that repo.

then when you search in the UI, it searches all of the manifests that are in the repo.

1 Like

fixed a permission issue with the .blend file installer for the blender addon