Team toolkit foundation that bundles your graphical models and Python scripts and exposes them in the Processing toolbox under your own, nameable provider with a company/team logo. Runs on QGIS 3.16+ and QGIS 4 (Qt5/Qt6). UI available in German and English (follows the QGIS locale automatically).
You maintain models/scripts in one central place (a server URL or a network folder). Every QGIS installation on the team syncs with it automatically, so everyone always has the same, current set - without anyone copying files by hand or reinstalling the plugin.
- Automatically loads all
*.model3and*.pyfrom:- the bundled folders
models/andscripts/(shipped with the plugin) - a writable data folder in the QGIS profile (filled via sync)
- the bundled folders
- Automatic sync every X days with an external source:
- an HTTPS URL pointing to a ZIP file, OR
- a local/network folder (e.g.
\\server\share\tools) - Syncing mirrors: new/changed files are copied, files deleted from the source disappear locally too, so it's always current.
- Runs delayed after startup, never blocks QGIS from starting.
- Settings dialog under Plugins ▸ TeamKit ▸ Settings…: team/company name (= provider name), logo (= provider icon), source, sync interval, and a "Sync now" button.
- Put models/scripts in one place: either as a ZIP under an HTTPS URL or
in a network folder. Any subfolder structure works -
*.model3and*.pyare searched recursively. - In the Settings dialog, enter the URL or folder path under Source.
- Set the sync interval (e.g. 7 days; 0 = never automatically).
- Done - clients sync themselves; manual sync is always available via the button.
teamkit/
├── __init__.py <- entry point, do not touch
├── plugin.py <- menu, provider, auto-sync
├── provider.py <- loading logic
├── settings.py <- settings/paths
├── settings_dialog.py <- settings dialog
├── updater.py <- sync (URL/folder, mirroring)
├── metadata.txt <- version + QGIS compatibility
├── icon.png <- plugin/provider logo
├── i18n/ <- translations (.ts/.qm)
├── models/ <- bundled *.model3
└── scripts/ <- bundled *.py
- Zip the
teamkit/folder. - Plugins ▸ Install from ZIP → select the ZIP → install.
- Tip: default values (team name, source, interval) can be hardcoded as
defaults in
settings.pyso nobody has to fill anything in.
metadata.txt: qgisMinimumVersion=3.16, qgisMaximumVersion=4.99,
supportsQt6=yes. All Qt imports go through qgis.PyQt → works on both
Qt5 and Qt6.
- Scripts must use the class format (
class … (QgsProcessingAlgorithm)); the decorator style (@alg.from_function) is not auto-detected. - Errors show up in the log: View ▸ Panels ▸ Log Messages ▸ "TeamKit".
Source strings are English. To update the German translation:
pylupdate5 plugin.py settings_dialog.py updater.py -ts i18n/teamkit_de.ts
# edit i18n/teamkit_de.ts (Qt Linguist or by hand), then:
lrelease i18n/teamkit_de.ts