diff --git a/config-generator/configGen.go b/config-generator/configGen.go
index c23ce53..063e46e 100644
--- a/config-generator/configGen.go
+++ b/config-generator/configGen.go
@@ -14,8 +14,10 @@
 package main
 
 import (
+	"flag"
 	"fmt"
 	"net/http"
+	"os"
 
 	"github.com/Sirupsen/logrus"
 
@@ -23,29 +25,43 @@
 	"github.com/kelseyhightower/envconfig"
 )
 
+const appName = "CONFIGGEN"
+
 type Config struct {
-	Port       int    `default:"1337"`
-	Listen     string `default:"0.0.0.0"`
-	Controller string `default:"http://%s:%s@127.0.0.1:8181"`
-	Username   string `default:"karaf"`
-	Password   string `default:"karaf"`
-	LogLevel   string `default:"warning" envconfig:"LOG_LEVEL"`
-	LogFormat  string `default:"text" envconfig:"LOG_FORMAT"`
+	Port       int    `default:"1337" desc:"port on which to listen for requests"`
+	Listen     string `default:"0.0.0.0" desc:"IP address on which to listen for requests"`
+	Controller string `default:"http://%s:%s@127.0.0.1:8181" desc:"connection string with which to connect to ONOS"`
+	Username   string `default:"karaf" desc:"username with which to connect to ONOS"`
+	Password   string `default:"karaf" desc:"password with which to connect to ONOS"`
+	LogLevel   string `default:"warning" envconfig:"LOG_LEVEL" desc:"detail level for logging"`
+	LogFormat  string `default:"text" envconfig:"LOG_FORMAT" desc:"log output format, text or json"`
 
 	connect string
 }
 
-var c Config
 var log = logrus.New()
+var appFlags = flag.NewFlagSet("", flag.ContinueOnError)
 
 func main() {
 
-	err := envconfig.Process("CONFIGGEN", &c)
+	config := Config{}
+	appFlags.Usage = func() {
+		envconfig.Usage(appName, &config)
+	}
+	if err := appFlags.Parse(os.Args[1:]); err != nil {
+		if err != flag.ErrHelp {
+			os.Exit(1)
+		} else {
+			return
+		}
+	}
+
+	err := envconfig.Process("CONFIGGEN", &config)
 	if err != nil {
 		log.Fatalf("[ERROR] Unable to parse configuration options : %s", err)
 	}
 
-	switch c.LogFormat {
+	switch config.LogFormat {
 	case "json":
 		log.Formatter = &logrus.JSONFormatter{}
 	default:
@@ -55,7 +71,7 @@
 		}
 	}
 
-	level, err := logrus.ParseLevel(c.LogLevel)
+	level, err := logrus.ParseLevel(config.LogLevel)
 	if err != nil {
 		level = logrus.WarnLevel
 	}
@@ -69,15 +85,15 @@
         PASSWORD:   %s
         LOG_LEVEL:  %s
         LOG_FORMAT: %s`,
-		c.Listen, c.Port, c.Controller,
-		c.Username, c.Password,
-		c.LogLevel, c.LogFormat)
+		config.Listen, config.Port, config.Controller,
+		config.Username, config.Password,
+		config.LogLevel, config.LogFormat)
 
 	router := mux.NewRouter()
-	router.HandleFunc("/config/", c.configGenHandler).Methods("POST")
+	router.HandleFunc("/config/", config.configGenHandler).Methods("POST")
 	http.Handle("/", router)
 
-	c.connect = fmt.Sprintf(c.Controller, c.Username, c.Password)
+	config.connect = fmt.Sprintf(config.Controller, config.Username, config.Password)
 
-	panic(http.ListenAndServe(fmt.Sprintf(":%d", c.Port), nil))
+	panic(http.ListenAndServe(fmt.Sprintf(":%d", config.Port), nil))
 }
