diff --git a/src/gn/command_analyze.cc b/src/gn/command_analyze.cc
index 5119b14..5c6c193 100644
--- a/src/gn/command_analyze.cc
+++ b/src/gn/command_analyze.cc
@@ -99,7 +99,7 @@
 
 int RunAnalyze(const std::vector<std::string>& args) {
   if (args.size() != 3) {
-    Err(Location(), "You're holding it wrong.",
+    Err(Location(), "Unknown command format. See \"gn help analyze\"",
         "Usage: \"gn analyze <out_dir> <input_path> <output_path>")
         .PrintToStdout();
     return 1;
diff --git a/src/gn/command_check.cc b/src/gn/command_check.cc
index 38a474c..536bc13 100644
--- a/src/gn/command_check.cc
+++ b/src/gn/command_check.cc
@@ -181,7 +181,7 @@
 
 int RunCheck(const std::vector<std::string>& args) {
   if (args.size() != 1 && args.size() != 2) {
-    Err(Location(), "You're holding it wrong.",
+    Err(Location(), "Unknown command format. See \"gn help check\"",
         "Usage: \"gn check <out_dir> [<target_label>]\"")
         .PrintToStdout();
     return 1;
diff --git a/src/gn/command_desc.cc b/src/gn/command_desc.cc
index e36cf0b..82a3822 100644
--- a/src/gn/command_desc.cc
+++ b/src/gn/command_desc.cc
@@ -620,7 +620,7 @@
 
 int RunDesc(const std::vector<std::string>& args) {
   if (args.size() != 2 && args.size() != 3) {
-    Err(Location(), "You're holding it wrong.",
+    Err(Location(), "Unknown command format. See \"gn help desc\"",
         "Usage: \"gn desc <out_dir> <target_name> [<what to display>]\"")
         .PrintToStdout();
     return 1;
diff --git a/src/gn/command_ls.cc b/src/gn/command_ls.cc
index cfd7b0f..0dbf911 100644
--- a/src/gn/command_ls.cc
+++ b/src/gn/command_ls.cc
@@ -58,7 +58,7 @@
 
 int RunLs(const std::vector<std::string>& args) {
   if (args.size() == 0) {
-    Err(Location(), "You're holding it wrong.",
+    Err(Location(), "Unknown command format. See \"gn help ls\"",
         "Usage: \"gn ls <build dir> [<label_pattern>]*\"")
         .PrintToStdout();
     return 1;
diff --git a/src/gn/command_meta.cc b/src/gn/command_meta.cc
index b361a4f..6ee5fe2 100644
--- a/src/gn/command_meta.cc
+++ b/src/gn/command_meta.cc
@@ -74,7 +74,7 @@
 
 int RunMeta(const std::vector<std::string>& args) {
   if (args.size() == 0) {
-    Err(Location(), "You're holding it wrong.",
+    Err(Location(), "Unknown command format. See \"gn help meta\"",
         "Usage: \"gn meta <out_dir> <target>* --data=<key>[,<key>*] "
         "[--walk=<key>[,<key>*]*] [--rebase=<dest dir>]\"")
         .PrintToStdout();
diff --git a/src/gn/command_path.cc b/src/gn/command_path.cc
index 38046ef..9ea7f72 100644
--- a/src/gn/command_path.cc
+++ b/src/gn/command_path.cc
@@ -313,7 +313,7 @@
 
 int RunPath(const std::vector<std::string>& args) {
   if (args.size() != 3) {
-    Err(Location(), "You're holding it wrong.",
+    Err(Location(), "Unknown command format. See \"gn help path\"",
         "Usage: \"gn path <out_dir> <target_one> <target_two>\"")
         .PrintToStdout();
     return 1;
diff --git a/src/gn/command_refs.cc b/src/gn/command_refs.cc
index 730ccbc..dc27f56 100644
--- a/src/gn/command_refs.cc
+++ b/src/gn/command_refs.cc
@@ -344,7 +344,7 @@
 
 int RunRefs(const std::vector<std::string>& args) {
   if (args.size() <= 1) {
-    Err(Location(), "You're holding it wrong.",
+    Err(Location(), "Unknown command format. See \"gn help refs\"",
         "Usage: \"gn refs <out_dir> (<label_pattern>|<file>)*\"")
         .PrintToStdout();
     return 1;
