diff --git a/dev-requirements.txt b/dev-requirements.txt
index f6eec13..b33b5e6 100644
--- a/dev-requirements.txt
+++ b/dev-requirements.txt
@@ -1,3 +1,4 @@
+clint
 coverage
 flake8
 flake8-import-order
diff --git a/tasks.py b/tasks.py
index 76d0d02..15027d7 100644
--- a/tasks.py
+++ b/tasks.py
@@ -8,6 +8,8 @@
 import os
 import time
 
+from clint.textui.progress import Bar as ProgressBar
+
 import invoke
 
 import requests
@@ -66,15 +68,28 @@
         response.raise_for_status()
         for artifact in response.json()["artifacts"]:
             response = session.get(
-                "{0}artifact/{1}".format(run["url"], artifact["relativePath"])
+                "{0}artifact/{1}".format(run["url"], artifact["relativePath"]),
+                stream=True
             )
+            assert response.headers["content-length"]
+            print("Downloading {0}".format(artifact["fileName"]))
+            bar = ProgressBar(
+                expected_size=int(response.headers["content-length"]),
+                filled_char="="
+            )
+            content = b''
+            for data in response.iter_content(chunk_size=8192):
+                content += data
+                bar.show(len(content))
+                if bar.expected_size == len(content):
+                    bar.done()
             out_path = os.path.join(
                 os.path.dirname(__file__),
                 "dist",
                 artifact["fileName"],
             )
             with open(out_path, "wb") as f:
-                f.write(response.content)
+                f.write(content)
             paths.append(out_path)
     return paths
 
