Command line tool for Omeka
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Omeka CLI

Command line tool for Omeka

This tool allows to interact with Omeka by using a command line interface. It also provides everything needed for Omeka plugins to create custom commands.

Build status


omeka-cli [-h | --help]
omeka-cli [-V | --version]
omeka-cli <command> [options] [arguments]

Available commands

check-updates     check for updates
help              print help for a specific command
status            print status of current Omeka installation
install           install Omeka
list              list available commands
options           list, get and set Omeka options
plugin-disable    disable a plugin
plugin-download   downloads a plugin
plugin-enable     enable a plugin (install & activate)
plugin-list       list all plugins
plugin-search     search a plugin
plugin-uninstall  uninstall a plugin
plugin-update     update a plugin
snapshot          create a snapshot
snapshot-restore  restore a snapshot
upgrade           upgrade Omeka


  • PHP (>= 5.6) with the following extensions:
    • Zip
    • PDO and the PDO_MYSQL driver
  • git


Using composer

# For the latest released version
composer global require biblibre/omeka-cli

# For the latest dev version
composer global require biblibre/omeka-cli:@dev

Then add ~/.config/composer/vendor/bin to your PATH

export PATH=~/.config/composer/vendor/bin:$PATH

Using the phar

Download the latest ̀omeka-cli.phar from Releases page.

chmod +x omeka-cli.phar
sudo mv omeka-cli.phar /usr/local/bin/omeka-cli

Using the sources

git clone
cd omeka-cli
composer install --no-dev
bin/omeka-cli --version

Creating custom commands

To create a custom command named foo:bar with the Foo plugin, put the following code in the initialize hook of your plugin's main class:

$events = Zend_EventManager_StaticEventManager::getInstance();
$events->attach('OmekaCli', 'commands', function() {
    return array(

and define a class Foo_Bar which extends OmekaCli\Command\AbstractCommand

You will have to implements at least configure and execute methods.

For instance:

use OmekaCli\Command\AbstractCommand;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;

class Foo_Bar extends AbstractCommand
    protected function configure()
        $this->setDescription('print something to stdout');

    protected function execute(InputInterface $input, OutputInterface $output)
        $output->writeln('Hello, omeka-cli!');

        return 0;

Then you will be able to run the command either this way:

omeka-cli foo:bar [OPTION...] [ARG...]

or using the alias:

omeka-cli bar [OPTION...] [ARG...]

To see how to create a custom command from a plugin in practice, see plugin Foo.

Running tests

If you want to test omeka-cli, copy phpunit.xml.dist into phpunit.xml and change environment variables OMEKA_DB_* as needed. If you want to avoid downloading Omeka before every run, you can download the ZIP file manually, and put its local path in OMEKA_ZIP_PATH.

After you've done that, run

composer install


GPL 3.0+