   with [[multi-action-context]] or [[single-action-context]]"
   nil)
 
+(def ^:dynamic *include-program-in-errors*
+  "If non-nil add program name to error and warning messages
+  in [[handle-exception]] and [[error-message]] and [[print-error-message]]."
+  true)
+
 (defa- program-name-inst "prog")
 
 (defn program-name

    (str (program-fmt) (first errors))
    (str "The following errors occurred while parsing your action:\n\n"
         (s/join \newline errors))))

(defn- parse-single [action-context actions action action-key
                     arguments single-action-mode?

    (apply action opts args)))

(defn handle-exception
  "Handle exceptions thrown from CLI actions.

  See:

  * [[*include-program-in-errors*]]
  * [[*rethrow-error*]]
  * [[*log-error*]]"
  [e]
  (log/debugf "handle exception: <%s>" e)
  (let [msg (.getMessage e)]
    (if *log-error* (log/error e "action line parse error"))
    (binding [*out* *err*]
      (if (instance? java.io.FileNotFoundException e)
        (println (format "%sio error: %s" (program-fmt) msg))
        (println (format "%serror: %s"
                         (program-fmt)
                         (if ex-data
