           (parse-api ns- "clojurescript" "test.clj")))
 
 (defmethod parse-ns-api "cljs.repl" [ns-]
-  (concat (parse-api ns- "clojurescript" "repl.clj")
-          (parse-api ns- "clojurescript" "repl.cljs")))
+  (let [repo "clojurescript"
+        forms (get-forms ns- repo "repl.clj")
+        special-ns "specialrepl"
+        specials (first (keep #(parse-repl-specials % special-ns repo) forms))]
+    (concat (parse-api ns- "clojurescript" "repl.clj")
+            (parse-api ns- "clojurescript" "repl.cljs")
+            specials)))
 
 (defmethod parse-ns-api "cljs.reader" [ns-]
   (parse-api ns- "clojurescript" "reader.cljs"))

          final (merge special location extras)]
      final)))

(defn parse-api
  "Parse the functions and macros from the given repo file"
  [ns- repo file]

  (sh "script/checkout.sh" v))

(defn get-github-file-link
  ([repo path] (get-github-file-link repo path nil))
  ([repo path [start-line end-line]]
   (let [version (get *repo-version* repo)
         strip-path (subs path (inc (count repo)))]
     (cond-> (str "https://github.com/clojure/" repo "/blob/" version "/" strip-path)
       start-line (str "#L" start-line)
       (and start-line end-line) (str "-L" end-line)))))

(defn clj-tag->version
  [v]
