             (create-cli-checker cli-port)))
 
         nrepl
-        (try
-          ;; problem child nrepl
-          ;; we need to start a 0.2 nrepl server
-          ;; if an older cider-nrepl version is used
-          ;; otherwise it should be fine to start 0.4
-          (let [use-old-nrepl?
-                (when (io/resource "cider/nrepl.clj")
-                  (require 'cider.nrepl)
-
-                  (when-let [the-ns (find-ns 'cider.nrepl)]
-                    (= 'clojure.tools.nrepl.server
-                      (-> (.getAliases the-ns)
-                          (.get 'nrepl-server)
-                          (.getName)))))
-
-                nrepl-ns
-                (if use-old-nrepl?
-                  (do (log/info ::nrepl-fallback)
-                      'shadow.cljs.devtools.server.nrepl)
-                  'shadow.cljs.devtools.server.nrepl04)
-
-                _ (require nrepl-ns)
-
-                nrepl-start
-                (ns-resolve nrepl-ns 'start)
-
-                nrepl-stop
-                (ns-resolve nrepl-ns 'stop)
-
-                server
-                (nrepl-start (:nrepl config))]
-
-            ;; return a generic stop fn
-            (assoc server ::stop #(nrepl-stop server)))
-          (catch Exception e
-            (log/warn-ex e ::nrepl-ex)
-            nil))
+        (when-not (false? (:nrepl config))
+          (try
+            ;; problem child nrepl
+            ;; we need to start a 0.2 nrepl server
+            ;; if an older cider-nrepl version is used
+            ;; otherwise it should be fine to start 0.4
+            (let [use-old-nrepl?
+                  (when (io/resource "cider/nrepl.clj")
+                    (require 'cider.nrepl)
+
+                    (when-let [the-ns (find-ns 'cider.nrepl)]
+                      (= 'clojure.tools.nrepl.server
+                        (-> (.getAliases the-ns)
+                            (.get 'nrepl-server)
+                            (.getName)))))
+
+                  nrepl-ns
+                  (if use-old-nrepl?
+                    (do (log/info ::nrepl-fallback)
+                        'shadow.cljs.devtools.server.nrepl)
+                    'shadow.cljs.devtools.server.nrepl04)
+
+                  _ (require nrepl-ns)
+
+                  nrepl-start
+                  (ns-resolve nrepl-ns 'start)
+
+                  nrepl-stop
+                  (ns-resolve nrepl-ns 'stop)
+
+                  server
+                  (nrepl-start (:nrepl config))]
+
+              ;; return a generic stop fn
+              (assoc server ::stop #(nrepl-stop server)))
+            (catch Exception e
+              (log/warn-ex e ::nrepl-ex)
+              nil)))
 
         port-files-ref
         (atom nil)

        (:socket-repl config)

        socket-repl
        (try
          (socket-repl/start socket-repl-config app-ref)
          (catch Exception e
            (log/warn-ex e ::socket-repl-ex)
            nil
            ))

        cli-repl-config
        {:port 0 ;; random port, not for humans


  (do-shutdown (rt/stop-all app))

  #_ (discard-println "shutdown complete."))

(defn make-port-files [cache-root ports]
  (io/make-parents (io/file cache-root "foo.txt"))
