LibreOffice OXT Extension Packaging Standards
LibreOffice extensions use the OpenOffice.org Extension
(.oxt) format to distribute add-ons, templates,
dictionaries, and custom functionality. An .oxt package is
essentially a standard ZIP archive containing metadata, configuration
files, and program code organized according to the Universal Network
Objects (UNO) package specification. This structure allows LibreOffice’s
Extension Manager to install, update, and manage third-party
enhancements safely and consistently across different operating
systems.
The Archive Format
At the binary level, an .oxt file follows the standard
PKZIP 2.04g specification. Developers can create or inspect these files
using any standard ZIP utility by simply appending or changing the file
extension to .oxt.
Core Descriptor Files
Every valid .oxt package requires specific XML files to
declare its contents, dependencies, and metadata:
META-INF/manifest.xml: The package manifest is the foundational descriptor required by LibreOffice. It registers all files within the archive with their corresponding media types, telling the application how to process each component (such as UNO components, configuration data, or dialog libraries).description.xml: Located in the root directory, this file provides user-facing metadata, including the extension’s unique identifier, display name, publisher details, version number, localized descriptions, and minimal LibreOffice version compatibility requirements.
Supported Component Technologies
The .oxt standard supports several programming languages
and asset types, declared via the manifest.xml file using
specific media types:
- LibreOffice Basic: Encapsulated in XML-based script libraries.
- Python: Scripts and modules utilizing the LibreOffice Python-UNO bridge.
- Java: Compiled JAR files implementing UNO interfaces.
- C++: Precompiled shared libraries
(
.dll,.so,.dylib) built against the LibreOffice Software Development Kit (SDK). - Dictionaries and Language Packs: Hunspell spelling files, hyphenation rules, and thesaurus data configured via dictionary list files.
Configuration Integration
Extensions modify the LibreOffice user interface and behavior using
XML Configuration Update (.xcu) and XML Configuration
Schema (.xcs) files. These files declare custom menus,
toolbars, shortcuts, status bar controls, and application settings
directly into LibreOffice’s internal configuration registry upon
installation.