Plugins

uniconv’s functionality comes from plugins. There are two types:

TypeLanguageInterfaceBest for
NativeC/C++Shared library (.so/.dylib/.dll)Performance-critical operations
CLIAnySubprocess + JSON protocolRapid development, scripting languages

Managing plugins

# List installed plugins
uniconv plugin list

# Search the registry
uniconv plugin search image

# Install a plugin
uniconv plugin install data-convert

# Install a specific version
uniconv plugin install data-convert@1.0.0

# Install an entire collection
uniconv plugin install +essentials

# Update plugins
uniconv plugin update --all

# Remove a plugin
uniconv plugin remove data-convert

# Show plugin details
uniconv plugin info data-convert

Available plugins

PluginTypeTargetsDescription
image-convertNative (C++)jpg, png, webp, gif, heic, …Image format conversion via libvips
video-convertNative (C++)mp4, mov, avi, webm, gif, …Video format conversion via FFmpeg
audio-convertNative (C++)mp3, aac, wav, flac, ogg, …Audio format conversion via FFmpeg
doc-convertCLI (Python)pdf, docx, odt, xlsx, md, …Document conversion via LibreOffice
data-convertCLI (Python)json, csv, yaml, xml, toml, …Structured data format conversion

Plugin specifier syntax

In pipelines, use [scope/plugin:]target[.extension] to specify plugins explicitly:

# Automatic plugin resolution
uniconv photo.heic "jpg"

# Explicit plugin
uniconv photo.heic "uniconv/image-convert:jpg --quality 90"

# Explicit output extension (when target != extension)
uniconv data.postgis "geo/postgis:extract.geojson"

Plugin manifest

Each plugin has a plugin.json manifest. Key fields:

FieldTypeDefaultDescription
targetsmap or arraySupported targets. Array shortcut: ["jpg", "png"]. Map: {"extract": ["geojson", "csv"]}
acceptsstring[] (optional)omit = accept allInput formats accepted. Omitted = any, [] = none
sinkboolfalseTerminal plugin that owns output (upload, save)

Windows notes

All plugins support Windows. A few things to keep in mind:

  • Native plugins (image-convert, video-convert, audio-convert) bundle their dependency DLLs alongside the plugin .dll. These are loaded automatically.
  • doc-convert requires LibreOffice installed on your system. Pandoc is bundled automatically.
  • CLI plugins (Python-based) require Python 3.8+ in your PATH. Plugin install creates a virtual environment and installs Python dependencies automatically.

Writing plugins

See the Contributing Guide for plugin authoring instructions.