diff --git a/doc/management.txt b/doc/management.txt
index fd96272..3770c89 100644
--- a/doc/management.txt
+++ b/doc/management.txt
@@ -1840,9 +1840,10 @@
   may be specified either by their name or by their numeric ID, prefixed with a
   sharp ('#').
 
-help
-  Print the list of known keywords and their basic usage. The same help screen
-  is also displayed for unknown commands.
+help [<command>]
+  Print the list of known keywords and their basic usage, or commands matching
+  the requested one. The same help screen is also displayed for unknown
+  commands.
 
 new ssl cert <filename>
   Create a new empty SSL certificate store to be filled with a certificate and
diff --git a/src/cli.c b/src/cli.c
index c5009a3..9a979a1 100644
--- a/src/cli.c
+++ b/src/cli.c
@@ -96,10 +96,16 @@
 	struct buffer out;
 	struct { struct cli_kw *kw; int dist; } matches[CLI_MAX_MATCHES], swp;
 	int idx;
+	int ishelp = 0;
 	int length = 0;
 
 	ha_free(&dynamic_usage_msg);
 
+	if (args && *args && strcmp(*args, "help") == 0) {
+		args++;
+		ishelp = 1;
+	}
+
 	/* first, let's measure the longest match */
 	list_for_each_entry(kw_list, &cli_keywords.list, list) {
 		for (kw = &kw_list->kw[0]; kw->str_kw[0]; kw++) {
@@ -125,7 +131,7 @@
 
 	/* now <length> equals the number of exactly matching words */
 	chunk_reset(tmp);
-	if (!args) // this is the help message.
+	if (ishelp) // this is the help message.
 		chunk_strcat(tmp, "The following commands are valid at this level:\n");
 	else if (!length && (!*args || !**args)) // no match
 		chunk_strcat(tmp, "Unknown command. Please enter one of the following commands only:\n");
@@ -254,7 +260,7 @@
 
 	/* always show the prompt/help/quit commands */
 	chunk_strcat(tmp,
-	             "  help                                    : full commands list\n"
+	             "  help [<command>]                        : list matching or all commands\n"
 	             "  prompt                                  : toggle interactive mode with prompt\n"
 	             "  quit                                    : disconnect\n");
 
@@ -2040,7 +2046,7 @@
 {
 	if (*args[0] == 'h')
 		/* help */
-		cli_gen_usage_msg(appctx, NULL);
+		cli_gen_usage_msg(appctx, args);
 	else if (*args[0] == 'p')
 		/* prompt */
 		appctx->st1 ^= APPCTX_CLI_ST1_PROMPT;
