Plugins can be written and put in the lib/python/omero/plugins directory. On execution, all plugins in that directory are registered with the CLI.

For testing purposes the --path argument can be used to point to other plugin files or directories, too.

Alternatively, plugins can be added to any directory ending with omero/plugins. If this directory is part of the PYTHONPATH the CLI will automatically include them. An example of such a plugin is omero-cli-render.

Team-supported CLI plugins will be pip-installable. Search for “omero cli” on PyPI.


The omero.cli.CLI should be considered not thread-safe. A single connection object is accessible from all plugins via self.ctx.conn(args), and it is assumed that changes to this object will only take place in the current thread. The CLI instance itself, however, can be passed between multiple threads, as long as only one accesses it sequentially, possibly via locking.

See also

Extending OMERO.server

Other extensions to OMERO