diff --git a/app/cli.js b/app/cli.js
index 6bd864af6ddf708a5a2d73f6f541b393b3926a8a..39d3c065914caf264761c3787ef4f33246b8d96e 100644
--- a/app/cli.js
+++ b/app/cli.js
@@ -768,6 +768,7 @@ function service(callback, nologs) {
         cbArgs.length--;
         cbArgs[cbArgs.length++] = server;
         cbArgs[cbArgs.length++] = server.conf;
+        cbArgs[cbArgs.length++] = program;
         onService && onService(server);
         return callback.apply(that, cbArgs);
       } catch (e) {
@@ -796,6 +797,11 @@ module.exports.addCommand = (command, requirements, promiseCallback) => {
     .action(subCommand(service(promiseCallback)));
 };
 
+module.exports.addOption = (optFormat, optDesc, optParser) => {
+  program
+    .option(optFormat, optDesc, optParser);
+};
+
 function needsToBeLaunchedByScript() {
     logger.error('This command must not be launched directly, using duniter.sh script');
     return Promise.resolve();
diff --git a/index.js b/index.js
index 33089792c286037357d989056dd9a22d0b9126c8..f449dc6fcdcb956b85aa20be178e473295a0ec07 100644
--- a/index.js
+++ b/index.js
@@ -62,6 +62,9 @@ module.exports.statics = {
     const stack = {
 
       registerDependency: (requiredObject) => {
+        for (const opt of (requiredObject.duniter.cliOptions || [])) {
+          cli.addOption(opt.value, opt.desc, opt.parser);
+        }
         for (const command of (requiredObject.duniter.cli || [])) {
           cli.addCommand({ name: command.name, desc: command.desc }, command.requires, command.promiseCallback);
         }