diff --git a/slider-core/src/main/java/org/apache/slider/client/SliderClient.java b/slider-core/src/main/java/org/apache/slider/client/SliderClient.java
index 66797ae..65eaaff 100644
--- a/slider-core/src/main/java/org/apache/slider/client/SliderClient.java
+++ b/slider-core/src/main/java/org/apache/slider/client/SliderClient.java
@@ -375,7 +375,7 @@
       exitCode = actionThaw(clusterName, serviceArgs.getActionThawArgs());
     } else if (ACTION_DESTROY.equals(action)) {
       exitCode = actionDestroy(clusterName);
-    } else if (ACTION_DIAGNOSTIC.equals(action)) {
+    } else if (ACTION_DIAGNOSTICS.equals(action)) {
       exitCode = actionDiagnostic(serviceArgs.getActionDiagnosticArgs());
     } else if (ACTION_EXISTS.equals(action)) {
       exitCode = actionExists(clusterName,
@@ -675,8 +675,10 @@
       throws YarnException, IOException {
 
     Path srcFile = null;
-    if (StringUtils.isEmpty(installKeytabInfo.folder )) {
-      throw new BadCommandArgumentsException("A valid destination keytab sub-folder name is required (e.g. 'security').");
+    if (StringUtils.isEmpty(installKeytabInfo.folder)) {
+      throw new BadCommandArgumentsException(
+          "A valid destination keytab sub-folder name is required (e.g. 'security').\n"
+              + CommonArgs.usage(serviceArgs, ACTION_INSTALL_KEYTAB));
     }
 
     if (StringUtils.isEmpty(installKeytabInfo.keytabUri)) {
@@ -717,8 +719,10 @@
       IOException {
 
     Path srcFile = null;
-    if (StringUtils.isEmpty(installPkgInfo.name )) {
-      throw new BadCommandArgumentsException("A valid application type name is required (e.g. HBASE).");
+    if (StringUtils.isEmpty(installPkgInfo.name)) {
+      throw new BadCommandArgumentsException(
+          "A valid application type name is required (e.g. HBASE).\n"
+              + CommonArgs.usage(serviceArgs, ACTION_INSTALL_PACKAGE));
     }
 
     if (StringUtils.isEmpty(installPkgInfo.packageURI)) {
@@ -2568,7 +2572,7 @@
         outputExport(publishedExports, registryArgs);
       } else {
         // it's an unknown command
-        log.info(CommonArgs.usage(serviceArgs, ACTION_DIAGNOSTIC));
+        log.info(CommonArgs.usage(serviceArgs, ACTION_DIAGNOSTICS));
         return EXIT_USAGE;
       }
 //      JDK7
@@ -2648,7 +2652,7 @@
         actionDiagnosticIntelligent(diagnosticArgs);
       } else {
         // it's an unknown option
-        log.info(CommonArgs.usage(serviceArgs, ACTION_DIAGNOSTIC));
+        log.info(CommonArgs.usage(serviceArgs, ACTION_DIAGNOSTICS));
         return EXIT_USAGE;
       }
     } catch (Exception e) {
diff --git a/slider-core/src/main/java/org/apache/slider/common/params/ActionDiagnosticArgs.java b/slider-core/src/main/java/org/apache/slider/common/params/ActionDiagnosticArgs.java
index f48f902..d54aa8e 100644
--- a/slider-core/src/main/java/org/apache/slider/common/params/ActionDiagnosticArgs.java
+++ b/slider-core/src/main/java/org/apache/slider/common/params/ActionDiagnosticArgs.java
@@ -4,7 +4,7 @@
 import com.beust.jcommander.Parameters;
 
 @Parameters(
-  commandNames = {SliderActions.ACTION_DIAGNOSTIC, SliderActions.ACTION_DIAGNOSTICS},
+  commandNames = {SliderActions.ACTION_DIAGNOSTICS},
   commandDescription = SliderActions.DESCRIBE_ACTION_DIAGNOSTIC)
 public class ActionDiagnosticArgs extends AbstractActionArgs {
 
@@ -42,7 +42,7 @@
 	  public String all;
 	
 	  @Parameter(names = {ARG_LEVEL}, 
-	      description = "diagnoze the application intelligently")
+	      description = "diagnose each slider configuration one by one")
 	  public String level;
 
 	  /**
diff --git a/slider-core/src/main/java/org/apache/slider/common/params/ClientArgs.java b/slider-core/src/main/java/org/apache/slider/common/params/ClientArgs.java
index cf8cc2f..5a1c049 100644
--- a/slider-core/src/main/java/org/apache/slider/common/params/ClientArgs.java
+++ b/slider-core/src/main/java/org/apache/slider/common/params/ClientArgs.java
@@ -218,7 +218,7 @@
     } else if (SliderActions.ACTION_DESTROY.equals(action)) {
       bindCoreAction(actionDestroyArgs);
 
-    } else if (SliderActions.ACTION_DIAGNOSTIC.equals(action)) {
+    } else if (SliderActions.ACTION_DIAGNOSTICS.equals(action)) {
       bindCoreAction(actionDiagnosticArgs);
 
     } else if (SliderActions.ACTION_EXISTS.equals(action)) {
diff --git a/slider-core/src/main/java/org/apache/slider/common/params/CommonArgs.java b/slider-core/src/main/java/org/apache/slider/common/params/CommonArgs.java
index 5113617..57d5fb4 100644
--- a/slider-core/src/main/java/org/apache/slider/common/params/CommonArgs.java
+++ b/slider-core/src/main/java/org/apache/slider/common/params/CommonArgs.java
@@ -20,6 +20,7 @@
 
 import com.beust.jcommander.JCommander;
 import com.beust.jcommander.Parameter;
+import com.beust.jcommander.ParameterDescription;
 import com.beust.jcommander.ParameterException;
 
 import org.apache.hadoop.conf.Configuration;
@@ -50,7 +51,7 @@
   protected static final Logger log = LoggerFactory.getLogger(CommonArgs.class);
 
 
-  private static final int DIFF_BETWEEN_DESCIPTION_AND_COMMAND_NAME = 20;
+  private static final int DIFF_BETWEEN_DESCIPTION_AND_COMMAND_NAME = 30;
 
 
   @Parameter(names = ARG_HELP, help = true)
@@ -111,28 +112,32 @@
     if (commandOfInterest == null) {
       // JCommander.usage is too verbose for a command with many options like
       // slider no short version of that is found Instead, we compose our msg by
-      helperMessage.append("\n");
-      helperMessage.append("Usage: slider COMMAND [options]\n");
+      helperMessage.append("\nUsage: slider COMMAND [options]\n");
       helperMessage.append("where COMMAND is one of\n");
       for (String jcommand : serviceArgs.commander.getCommands().keySet()) {
         helperMessage.append(String.format("\t%-"
-            + DIFF_BETWEEN_DESCIPTION_AND_COMMAND_NAME + "s-%s", jcommand,
+            + DIFF_BETWEEN_DESCIPTION_AND_COMMAND_NAME + "s%s", jcommand,
             serviceArgs.commander.getCommandDescription(jcommand) + "\n"));
       }
       helperMessage
           .append("Most commands print help when invoked without parameters");
       result = helperMessage.toString();
     } else {
-      // Jcommander framework doesn't provide a working API to fetch all options
-      // we have to compose options' helper message per action our own
-      serviceArgs.commander.usage(commandOfInterest, helperMessage);
-      // eliminate all linebreaks/tabs as there are too many
-      result = helperMessage.toString().replaceAll("\n|\t|\\s{3,}", " ");
-      // insert linebreak and indents
-      result = result.replaceAll("(--|-D|-S)", "\n\t$1");
-      // put options and their abbreviations on the same line
-      result = result.replaceAll(",\\s*\n\t--", ", --");
-      result = result.replaceAll("Usage:", "\nUsage:");
+      helperMessage.append("\nUsage: slider " + commandOfInterest);
+      helperMessage.append(serviceArgs.coreAction.getMinParams() > 0 ? " <application>" : "");
+      helperMessage.append("\n");
+      for (ParameterDescription paramDesc : serviceArgs.commander.getCommands()
+          .get(commandOfInterest).getParameters()) {
+        String optional = paramDesc.getParameter().required() ? "  (required)"
+            : "  (optional)";
+        String paramName = paramDesc.getParameterized().getType() == Boolean.TYPE ? paramDesc
+            .getLongestName() : paramDesc.getLongestName() + " <"
+            + paramDesc.getParameterized().getName() + ">";
+        helperMessage.append(String.format("\t%-"
+            + DIFF_BETWEEN_DESCIPTION_AND_COMMAND_NAME + "s%s", paramName,
+            paramDesc.getDescription() + optional + "\n"));
+        result = helperMessage.toString();
+      }
     }
     return result;
   }
diff --git a/slider-core/src/main/java/org/apache/slider/common/params/SliderActions.java b/slider-core/src/main/java/org/apache/slider/common/params/SliderActions.java
index 1383bc7..87e4582 100644
--- a/slider-core/src/main/java/org/apache/slider/common/params/SliderActions.java
+++ b/slider-core/src/main/java/org/apache/slider/common/params/SliderActions.java
@@ -43,7 +43,6 @@
   String ACTION_STATUS = "status";
   String ACTION_THAW = "start";
   String ACTION_VERSION = "version";
-  String ACTION_DIAGNOSTIC = "diagnostic";
   String ACTION_DIAGNOSTICS = "diagnostics";
   String ACTION_INSTALL_PACKAGE = "install-package";
   String ACTION_INSTALL_KEYTAB = "install-keytab";
diff --git a/slider-core/src/test/groovy/org/apache/slider/client/TestClientBadArgs.groovy b/slider-core/src/test/groovy/org/apache/slider/client/TestClientBadArgs.groovy
index 3f7c50f..8aacf6a 100644
--- a/slider-core/src/test/groovy/org/apache/slider/client/TestClientBadArgs.groovy
+++ b/slider-core/src/test/groovy/org/apache/slider/client/TestClientBadArgs.groovy
@@ -58,7 +58,7 @@
   public void testActionWithoutOptions() throws Throwable {
     launchExpectingException(SliderClient,
                              new Configuration(),
-                             "Usage: build [options] Options:",
+                             "Usage: slider build <application>",
                              [SliderActions.ACTION_BUILD])
   }
 
diff --git a/slider-core/src/test/groovy/org/apache/slider/client/TestDiagnostics.groovy b/slider-core/src/test/groovy/org/apache/slider/client/TestDiagnostics.groovy
index 57126f8..04f019f 100644
--- a/slider-core/src/test/groovy/org/apache/slider/client/TestDiagnostics.groovy
+++ b/slider-core/src/test/groovy/org/apache/slider/client/TestDiagnostics.groovy
@@ -42,7 +42,7 @@
         //config includes RM binding info
         new YarnConfiguration(miniCluster.config),
         //varargs list of command line params
-        [SliderActions.ACTION_DIAGNOSTIC,
+        [SliderActions.ACTION_DIAGNOSTICS,
          Arguments.ARG_CLIENT]
     )
     def client = launcher.service
