diff --git a/gridded_glm/bin/cspp-geo-gglm-make-grids.sh b/gridded_glm/bin/cspp-geo-gglm-make-grids.sh
index f0e536213b20577bc44266cb9de0fc83076db11f..afbff79b743cb58fbfe713c7b6e9b491ebd4801f 100755
--- a/gridded_glm/bin/cspp-geo-gglm-make-grids.sh
+++ b/gridded_glm/bin/cspp-geo-gglm-make-grids.sh
@@ -29,4 +29,5 @@ fi
 source $CSPP_GEO_GGLM_HOME/libexec/env.sh
 
 # Call the python module to do the processing, passing all arguments
+export PROG_NAME="${BASH_SOURCE[0]}"
 python3 $CSPP_GEO_GGLM_HOME/libexec/_make_glm_grids.py "$@"
diff --git a/gridded_glm/bin/cspp-geo-gglm.sh b/gridded_glm/bin/cspp-geo-gglm.sh
index f554eecea91d3c94d8b2d5c4edbfe48b65a22ad7..1dee9dc58603a56885fa2c3f3f20f7d9899eedfa 100755
--- a/gridded_glm/bin/cspp-geo-gglm.sh
+++ b/gridded_glm/bin/cspp-geo-gglm.sh
@@ -29,4 +29,5 @@ fi
 source $CSPP_GEO_GGLM_HOME/libexec/env.sh
 
 # Call the python module to do the processing, passing all arguments
+export PROG_NAME="${BASH_SOURCE[0]}"
 python3 $CSPP_GEO_GGLM_HOME/libexec/_minute_gridder.py "$@"
diff --git a/gridded_glm/libexec/_make_glm_grids.py b/gridded_glm/libexec/_make_glm_grids.py
index 1dac45be5d16ddc1990cfae05cd6250a3a27711f..b31dc87cfc3704d37798c9dc002124674510dad1 100644
--- a/gridded_glm/libexec/_make_glm_grids.py
+++ b/gridded_glm/libexec/_make_glm_grids.py
@@ -2,6 +2,7 @@
 # This example was provided by GLMTools
 # https://github.com/deeplycloudy/glmtools/blob/master/examples/grid/make_GLM_grids.py
 import argparse
+import sys
 parse_desc = """Grid GLM flash data. The start and end times can be specified
 independently, or if not provided they will be inferred from the filenames.
 
@@ -24,7 +25,8 @@ structure by specifying a path like so: -o
 {start_time:%%Y/%%b/%%d}/{dataset_name}"""
 
 def create_parser():
-    parser = argparse.ArgumentParser(description=parse_desc)
+    prog = os.getenv('PROG_NAME', sys.argv[0])
+    parser = argparse.ArgumentParser(prog=prog, description=parse_desc)
     parser.add_argument(dest='filenames',metavar='filename', nargs='*')
     parser.add_argument('-o', '--output_path',
                         metavar='filename template including path',
diff --git a/gridded_glm/libexec/_minute_gridder.py b/gridded_glm/libexec/_minute_gridder.py
index 30ac3098e04828e12d9d2b201f75ae4caa3e92e8..cbd092e752092af4df1082b6e87e28ea4007c925 100644
--- a/gridded_glm/libexec/_minute_gridder.py
+++ b/gridded_glm/libexec/_minute_gridder.py
@@ -3,8 +3,9 @@
 
 parse_desc = """Create one minute NetCDF4 grids (and, optionally, AWIPS-compatible tiles) from GLM flash data.
 
-Example usage:\n
-    cspp-geo-gglm.sh \\
+Example usage:
+
+    %(prog)s \\
         --goes-sector conus \\
         --create-tiles \\
         -vv \\
@@ -37,7 +38,10 @@ log = logging.getLogger(__name__)
 
 def create_parser():
     import argparse
-    parser = argparse.ArgumentParser(description=parse_desc, formatter_class=argparse.RawTextHelpFormatter) # RawTextHelpFormatter preserves our newlines in the example usage message
+    prog = os.getenv('PROG_NAME', sys.argv[0])
+    parser = argparse.ArgumentParser(prog=prog,
+                                     description=parse_desc, 
+                                     formatter_class=argparse.RawTextHelpFormatter) # RawTextHelpFormatter preserves our newlines in the example usage message
     parser.add_argument('-v', '--verbose', dest='verbosity', action="count", default=0,
                         help="each occurrence increases verbosity 1 level through ERROR-WARNING-INFO-DEBUG\n"
                              "(default: ERROR)")