Types of Extensions You Can Develop
In Beutl, you can extend the following functionalities:
| Type Name | Description |
|---|---|
| DecodingExtension | Adds support for video and audio decoding, and input files |
| ControllableEncodingExtension | Adds support for video and audio encoding, and output files |
| EditorExtension | Adds a UI for editing files |
| OutputExtension | Adds a UI for output |
| Extension | Base class for extensions (override the Load method to register functionalities) |
| ToolWindowExtension | Adds a tool window that can be opened from the Window menu |
| PropertyEditorExtension | Adds a UI for editing specific property types |
| ToolTabExtension | Adds tabs to the scene editing screen |
| ThemeExtension | Adds a theme to the picker in Settings → Display |
| ViewExtension | Registers commands with stable IDs and handlers |
| McpToolExtension | Adds tools to the live MCP endpoint |
| ElementSourceHandlerExtension | Creates timeline elements from custom source kinds |
| ProxyExtension | Registers a media proxy-generator factory |
| TutorialExtension | Registers tutorials |
ProjectItemExtension has been removed. Extension classes must carry [Export], be public and have a parameterless constructor. Make Extension.Unload() idempotent and safe after partial initialization: it is also called to roll back a failed Load().