diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/PathServlet.java b/gitiles-servlet/src/main/java/com/google/gitiles/PathServlet.java
index da212aa..0dbf793 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/PathServlet.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/PathServlet.java
@@ -293,7 +293,9 @@
         "title", !view.getPathPart().isEmpty() ? view.getPathPart() : "/",
         "breadcrumbs", view.getBreadcrumbs(hasSingleTree),
         "type", FileType.TREE.toString(),
-        "data", new TreeSoyData(rw, view).toSoyData(id, tw)));
+        "data", new TreeSoyData(rw, view)
+            .setArchiveFormat(archiveFormat)
+            .toSoyData(id, tw)));
   }
 
   private CanonicalTreeParser getOnlyChildSubtree(RevWalk rw, ObjectId id, byte[] prefix)
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/TreeSoyData.java b/gitiles-servlet/src/main/java/com/google/gitiles/TreeSoyData.java
index 6c7ec06..b7a9b28 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/TreeSoyData.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/TreeSoyData.java
@@ -70,12 +70,18 @@
 
   private final RevWalk rw;
   private final GitilesView view;
+  private ArchiveFormat archiveFormat;
 
   public TreeSoyData(RevWalk rw, GitilesView view) {
     this.rw = rw;
     this.view = view;
   }
 
+  public TreeSoyData setArchiveFormat(ArchiveFormat archiveFormat) {
+    this.archiveFormat = archiveFormat;
+    return this;
+  }
+
   public Map<String, Object> toSoyData(ObjectId treeId, TreeWalk tw) throws MissingObjectException,
          IOException {
     List<Object> entries = Lists.newArrayList();
@@ -126,6 +132,11 @@
     if (view.getType() == GitilesView.Type.PATH
         && view.getRevision().getPeeledType() == OBJ_COMMIT) {
       data.put("logUrl", GitilesView.log().copyFrom(view).toUrl());
+      data.put("archiveUrl", GitilesView.archive()
+          .copyFrom(view)
+          .setExtension(archiveFormat.getDefaultSuffix())
+          .toUrl());
+      data.put("archiveType", archiveFormat.getShortName());
     }
 
     return data;
diff --git a/gitiles-servlet/src/main/resources/com/google/gitiles/templates/ObjectDetail.soy b/gitiles-servlet/src/main/resources/com/google/gitiles/templates/ObjectDetail.soy
index 73ac298..fea0534 100644
--- a/gitiles-servlet/src/main/resources/com/google/gitiles/templates/ObjectDetail.soy
+++ b/gitiles-servlet/src/main/resources/com/google/gitiles/templates/ObjectDetail.soy
@@ -142,6 +142,8 @@
  *
  * @param sha SHA of this path's tree.
  * @param? logUrl optional URL to a log for this path.
+ * @param? archiveUrl optional URL to a download link of this tree as an archive.
+ * @param? archiveType type of the archive to download, if archiveUrl is set.
  * @param entries list of entries with the following keys:
  *     type: entry type, matching one of the constant names defined in
  *         org.eclipse.jgit.lib.FileMode.
@@ -155,6 +157,9 @@
 <div class="sha1">
   {msg desc="SHA-1 for the path's tree"}tree: {$sha}{/msg}
   {if $logUrl}{sp}[<a href="{$logUrl}">{msg desc="history for a path"}path history{/msg}</a>]{/if}
+  {if $archiveUrl}
+    <span class="download-link">[<a href="{$archiveUrl}">{$archiveType}</a>]</span>
+  {/if}
 </div>
 
 {if length($entries)}
