diff --git a/git-open b/git-open
index ff0ef579f5a5f55dffae5f46f18aaa865e924f65..f5c24082d0f3d7aaf4b36b6e959ef34f8ce01d2b 100755
--- a/git-open
+++ b/git-open
@@ -41,6 +41,11 @@ def warn(s):
 def info(s):
     print("\x1b[0;32mInfo\x1b[m " + s)
 
+def open_remote(remote):
+    url = to_http(remote_url(remote))
+    xdg_open(url)
+    info(f'opening {url}')
+
 def main(args):
     out = popen("git remote")
     remotes = out.strip().split("\n")
@@ -54,11 +59,17 @@ def main(args):
     if not remotes:
         err("No remotes")
 
+    try:
+        open_remote(remote)
+        return
+    except Exception as e:
+        warn(str(e))
+        warn("Giving up")
+        return
+
     for remote in remotes:
         try:
-            url = to_http(remote_url(remote))
-            xdg_open(url)
-            info(f'opening {url}')
+            open_remote(remote)
             break
         except Exception as e:
             warn(str(e))