      (recur console session dirs parameters new-tracker))))
 
 (defn run-command-remotely [{run-command :command repo :repo path :remote-path} session]
-  (let [output (->> {:cmd (str "cd " path repo ";" run-command ";") :out :stream :pty true}
+  (let [output (->> {:cmd (str "cd " path repo ";" run-command ";") :out :stream :pty true :agent-forwarding true}
                     (ssh/ssh session)
                     (:out-stream))]
     (with-open [rdr (io/reader output)]

                 "git reset --hard;"
                 (str "git apply --whitespace=warn " remote-patch-file-name ";")
                 "rm -f " remote-patch-file-name ";")
        result-apply-patch (ssh/ssh session {:cmd cmd})]
    (if (= 0 (:exit result-apply-patch))
      {:step :apply-patch :status :success}
      {:step :apply-patch :status :failed :error (:err result-apply-patch)})))

  (try
    (let [asset-paths (find-asset-paths project)
          parameters (start-parameters project)
          agent (ssh/ssh-agent {})
          session (ssh/session agent (:host parameters) (session-option parameters))]
      (m/info "* Starting with the parameters:" (assoc parameters :password "***") "\n")
      (ssh/connect session)
