diff --git a/bob/pad/base/script/pad_commands.py b/bob/pad/base/script/pad_commands.py
index 4421badbc9b1f60ebccf4bcdaf8a17e652ecf45a..cc4a5157dc1c1899bda24b47834acc3dd7a5e3d2 100644
--- a/bob/pad/base/script/pad_commands.py
+++ b/bob/pad/base/script/pad_commands.py
@@ -65,17 +65,17 @@ def roc(ctx, scores, evaluation, **kargs):
   computed using :py:func:`bob.measure.roc`.
 
   You need to provide one or more development score file(s) for each
-  experiment. You can also provide eval files along with dev files. If only
-  dev-scores are used, the flag `--no-evaluation` must be used. is required
+  experiment. You can also provide eval files along with dev files. If
+  evaluation scores are used, the flag `--eval` must be used. is required
   in that case. Files must be 4-col format, see
   :py:func:`bob.bio.base.score.load.four_column`
   Examples:
       $ bob pad roc -v dev-scores
 
-      $ bob pad roc -v dev-scores1 eval-scores1 dev-scores2
+      $ bob pad roc -e -v dev-scores1 eval-scores1 dev-scores2
       eval-scores2
 
-      $ bob pad roc -v -o my_roc.pdf dev-scores1 eval-scores1
+      $ bob pad roc -e -v -o my_roc.pdf dev-scores1 eval-scores1
   """
   process = figure.Roc(ctx, scores, evaluation, load.split)
   process.run()
@@ -109,15 +109,15 @@ def det(ctx, scores, evaluation, **kargs):
   (false positives on the x-axis and false negatives on the y-axis)
 
   You need to provide one or more development score file(s) for each
-  experiment. You can also provide eval files along with dev files. If only
-  dev-scores are used, the flag `--no-evaluation` must be used. is required
+  experiment. You can also provide eval files along with dev files. If
+  evale-scores are used, the flag `--eval` must be used. is required
   in that case. Files must be 4-col format, see
   :py:func:`bob.bio.base.score.load.four_column` for details.
 
   Examples:
     $ bob pad det -v dev-scores eval-scores
 
-    $ bob pad det -v scores-{dev,eval}
+    $ bob pad det -e -v scores-{dev,eval}
   """
   process = figure.DetPad(ctx, scores, evaluation, load.split)
   process.run()
@@ -130,6 +130,7 @@ def det(ctx, scores, evaluation, **kargs):
 @common_options.eval_option()
 @common_options.n_bins_option()
 @common_options.criterion_option()
+@common_options.no_line_option()
 @common_options.far_option()
 @common_options.thresholds_option()
 @common_options.const_layout_option()
@@ -147,7 +148,7 @@ def hist(ctx, scores, evaluation, **kwargs):
 
   You need to provide one or more development score file(s) for each
   experiment. You can also provide eval files along with dev files. If only
-  dev scores are provided, you must use flag `--no-evaluation`.
+  evaluation are provided, you must use flag `--eval`.
 
   By default, when eval-scores are given, only eval-scores histograms are
   displayed with threshold line
@@ -156,10 +157,10 @@ def hist(ctx, scores, evaluation, **kwargs):
   Examples:
       $ bob pad hist -v dev-scores
 
-      $ bob pad hist -v dev-scores1 eval-scores1 dev-scores2
+      $ bob pad hist -e -v dev-scores1 eval-scores1 dev-scores2
       eval-scores2
 
-      $ bob pad hist -v --criterion min-hter dev-scores1 eval-scores1
+      $ bob pad hist -e -v --criterion min-hter dev-scores1 eval-scores1
   """
   process = figure.HistPad(ctx, scores, evaluation, load.split)
   process.run()
@@ -282,15 +283,17 @@ def evaluate(ctx, scores, evaluation, **kwargs):
   * development scores
   * evaluation scores
 
+  When evaluation scores are provided, ``--eval`` must be passed.
+
   Examples:
       $ bob pad evaluate -v dev-scores
 
-      $ bob pad evaluate -v scores-dev1 scores-eval1 scores-dev2
+      $ bob pad evaluate -e -v scores-dev1 scores-eval1 scores-dev2
       scores-eval2
 
-      $ bob pad evaluate -v /path/to/sys-{1,2,3}/scores-{dev,eval}
+      $ bob pad evaluate -e -v /path/to/sys-{1,2,3}/scores-{dev,eval}
 
-      $ bob pad evaluate -v -l metrics.txt -o my_plots.pdf dev-scores eval-scores
+      $ bob pad evaluate -e -v -l metrics.txt -o my_plots.pdf dev-scores eval-scores
   '''
   # first time erase if existing file
   click.echo("Computing metrics...")
diff --git a/bob/pad/base/script/vuln_commands.py b/bob/pad/base/script/vuln_commands.py
index 9fcd396a4b020c980cc6691d8f2a26c4890b94bf..fa9ed93a4dea06ce1af7f5ec945b036dc2f8a8b7 100644
--- a/bob/pad/base/script/vuln_commands.py
+++ b/bob/pad/base/script/vuln_commands.py
@@ -310,9 +310,8 @@ def epsc(ctx, scores, criteria, var_param, fixed_param, three_d, sampling,
 
 
 @click.command()
-@common_options.scores_argument(nargs=-1, min_arg=2)
+@common_options.scores_argument(nargs=-1, min_arg=2, force_eval=True)
 @common_options.output_plot_file_option(default_out='vuln_hist.pdf')
-@common_options.eval_option()
 @common_options.n_bins_option()
 @common_options.criterion_option()
 @common_options.thresholds_option()
@@ -333,7 +332,7 @@ def epsc(ctx, scores, criteria, var_param, fixed_param, three_d, sampling,
 @common_options.style_option()
 @verbosity_option()
 @click.pass_context
-def hist(ctx, scores, evaluation, **kwargs):
+def hist(ctx, scores, **kwargs):
   '''Vulnerability analysis distributions.
 
   Plots the histogram of score distributions. You need to provide 4 score
@@ -348,15 +347,10 @@ def hist(ctx, scores, evaluation, **kwargs):
   See :ref:`bob.pad.base.vulnerability` in the documentation for a guide on
   vulnerability analysis.
 
-  You need to provide one or more development score file(s) for each
-  experiment. You can also provide eval files along with dev files. If only
-  dev-scores are used set the flag `--no-evaluation` is required in that
-  case.
 
   By default, when eval-scores are given, only eval-scores histograms are
   displayed with threshold line
-  computed from dev-scores. If you want to display dev-scores distributions
-  as well, use ``--show-dev`` option.
+  computed from dev-scores.
 
   Examples:
 
@@ -365,14 +359,13 @@ def hist(ctx, scores, evaluation, **kwargs):
 
       $ bob vuln vuln_hist -v {licit,spoof}/scores-{dev,eval}
   '''
-  process = figure.HistVuln(ctx, scores, evaluation, load.split)
+  process = figure.HistVuln(ctx, scores, True, load.split)
   process.run()
 
 
 
 @click.command(context_settings=dict(token_normalize_func=lambda x: x.lower()))
 @common_options.scores_argument(min_arg=2, force_eval=True, nargs=-1)
-@common_options.eval_option()
 @common_options.table_option()
 @common_options.criterion_option(lcriteria=['bpcer20', 'eer', 'min-hter'])
 @common_options.thresholds_option()
diff --git a/bob/pad/base/test/test_commands.py b/bob/pad/base/test/test_commands.py
index 2a868dc5756ed178a222c59de83557035d674f86..7c49738cba07396cf4ca76fda7e296140c4ba424 100644
--- a/bob/pad/base/test/test_commands.py
+++ b/bob/pad/base/test/test_commands.py
@@ -13,7 +13,7 @@ def test_det_pad():
                                                  'data/licit/scores-eval')
     runner = CliRunner()
     with runner.isolated_filesystem():
-        result = runner.invoke(pad_commands.det, ['--output',
+        result = runner.invoke(pad_commands.det, ['-e', '--output',
                                                   'DET.pdf',
                                                   licit_dev, licit_test])
         assert result.exit_code == 0, (result.exit_code, result.output)
@@ -76,19 +76,20 @@ def test_hist_pad():
                                                  'data/spoof/scores-eval')
     runner = CliRunner()
     with runner.isolated_filesystem():
-        result = runner.invoke(pad_commands.hist, ['--no-evaluation', licit_dev])
+        result = runner.invoke(pad_commands.hist, [licit_dev])
         assert result.exit_code == 0, (result.exit_code, result.output)
 
     with runner.isolated_filesystem():
         result = runner.invoke(pad_commands.hist, ['--criterion', 'min-hter',
                                                    '--output',
                                                    'HISTO.pdf', '-b',
-                                                   '30,auto', '--no-evaluation',
+                                                   '30,auto',
                                                    licit_dev, spoof_dev])
         assert result.exit_code == 0, (result.exit_code, result.output)
 
     with runner.isolated_filesystem():
-        result = runner.invoke(pad_commands.hist, ['--criterion', 'eer', '--output',
+        result = runner.invoke(pad_commands.hist, ['-e', '--criterion', 'eer',
+                                                   '--output',
                                                    'HISTO.pdf', '-b', '30',
                                                    licit_dev, licit_test,
                                                    spoof_dev, spoof_test])
@@ -145,7 +146,7 @@ def test_metrics_pad():
     with runner.isolated_filesystem():
         result = runner.invoke(
             pad_commands.metrics,
-            [licit_dev, licit_test]
+            ['-e', licit_dev, licit_test]
         )
         assert result.exit_code == 0, (result.exit_code, result.output)
 
@@ -175,7 +176,6 @@ def test_epc_vuln():
         assert result.exit_code == 0, (result.exit_code, result.output)
 
 
-
 def test_epsc_vuln():
     licit_dev = pkg_resources.resource_filename('bob.pad.base.test',
                                                 'data/licit/scores-dev')
diff --git a/doc/experiments.rst b/doc/experiments.rst
index 20f24706b10abb54c49bbf16f4c17aea2ecfa94e..26c18e1d37e03e58c8fe94275b424f31f0181c7e 100644
--- a/doc/experiments.rst
+++ b/doc/experiments.rst
@@ -137,7 +137,7 @@ For example:
 
 .. code-block:: sh
 
-    $ bob pad metrics scores-{dev,eval} --legends ExpA
+    $ bob pad metrics -e scores-{dev,eval} --legends ExpA
 
     Threshold of 11.639561 selected with the bpcer20 criteria
     ======  ========================  ===================
@@ -167,14 +167,14 @@ For example:
     ======  ========================  ===================
 
 .. note::
-    You can compute analysis on development set(s) only by passing option
-    ``--no-evaluation``. See metrics --help for further options.
+    When evaluation scores are provided, the ``--eval`` option must be passed.
+    See metrics --help for further options.
 
 Metrics for vulnerability analysis are also avaible trhough:
 
 .. code-block:: sh
 
-    $ bob vuln metrics .../{licit,spoof}/scores-{dev,test}
+    $ bob vuln metrics -e .../{licit,spoof}/scores-{dev,test}
 
     =========  ===================
     None       EER (threshold=4)
@@ -234,7 +234,7 @@ For example, to generate a EPC curve from development and evaluation datasets:
 
 .. code-block:: sh
 
-    $bob pad epc -o 'my_epc.pdf' scores-{dev,eval}
+    $bob pad epc -e -o 'my_epc.pdf' scores-{dev,eval}
 
 where `my_epc.pdf` will contain EPC curves for all the experiments.
 
@@ -243,7 +243,7 @@ datasets. Far example, to generate EPSC curve:
 
 .. code-block:: sh
 
-    $bob vuln epsc .../{licit,spoof}/scores-{dev,eval}
+    $bob vuln epsc -e .../{licit,spoof}/scores-{dev,eval}
 
 
 .. note::