Install and update third-party addons to FreeCAD, including Workbenches, Macros, Preference Packs, and more. FreeCAD ships with a point-in-time snapshot of this Addon: by the time you install FreeCAD it is possible that version of the Addon Manager is no longer the most recent version. Install this addon to update the internal Addon Manager to the latest version (and to allow future self-updating).
The main source of addons is the git repository at https://github.com/FreeCAD/FreeCAD-Addons. Custom addon sources can be configured in the Addon Manager preferences when running FreeCAD. These addons are primarily written by third parties and provided by repositories not under the FreeCAD authors' or maintainers' control: you use these addons at your own risk.
To submit an addon you have created see the documentation here.
For information about developing an addon in the first place, see the FreeCAD wiki.
The Addon Manager supports five different types of addons: "Workbench", "Macro", "Preference Pack", "Bundle", and "Other". This
information is provided to the Addon Manager via a file called package.xml
whose format is documented on the wiki.
The Addon Manager relies on a remote cache of all addons maintained at https://addons.freecad.org, generated by a script that runs every six hours. This cache contains the complete code for all addons listed in the addon catalog. Another process runs to cache all macros from both the GitHub repository and the Wiki. All official catalog-based addons and macros are downloaded from that server.
The Addon Manager is now designed to be self-updating, with a goal of allowing versions of FreeCAD back to 0.21 to use their default copy of Addon Manager to install a new version of Addon Manager. This means that the Addon Manager should support PySide2 and Python 3.8 for the foreseeable future.
The Addon Manager is also designed to be run in a "standalone" mode to allow for easier UI development. In this mode it does not interact with FreeCAD at all, and does not use or affect "real" FreeCAD preferences, module installation, etc.
If you plan on submitting a PR to improve the Addon Manager, please write unit tests as appropriate for your development
work. Network and filesystem access should be mocked, and the tests should be able to run without access to FreeCAD (always
use the addonmanager_freecad_interface.py
file to mediate FreeCAD interactions).
This module is under active development, with the following rough plan (the order of priorities is only approximate, and actual development may happen out of order).
- Handle download interruption and allow resumption
- Automatic update check for Addon Manager to update itself, even if it's not installed as an Addon
- Implement automatic Python dependency resolution on FreeCAD/Python version switching
- Construct
requirements.txt
for to ensure correct Python module installation - FreeCAD in Virtual Env to eliminate
--user
option topip
- Add/remove macro toolbar button
- Add option to perform background update checks and recaches
- Implement "offline mode" for uninstallation
- Add option to run Preference Pack after install
- Redesign the GUI
Bug reports and pull requests are welcome. Please make sure you are familiar with the contributing process.