diff --git a/buck-tools/download_all.py b/buck-tools/download_all.py
new file mode 100755
index 0000000..ba1c199
--- /dev/null
+++ b/buck-tools/download_all.py
@@ -0,0 +1,51 @@
+#!/usr/bin/env python
+# Copyright (C) 2013 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from optparse import OptionParser
+import re
+from subprocess import check_call, CalledProcessError, Popen, PIPE
+
+MAIN = ['//buck-tools/eclipse:classpath']
+PAT = re.compile(r'"(//.*?)" -> "//buck-tools:download_file"')
+# TODO(davido): Remove this hack when Buck bugs are fixed:
+# https://github.com/facebook/buck/issues/656
+# https://github.com/facebook/buck/issues/658
+JGIT = re.compile(r'//org.eclipse.jgit.*')
+CELL = '//lib/jgit'
+
+opts = OptionParser()
+opts.add_option('--src', action='store_true')
+args, _ = opts.parse_args()
+
+targets = set()
+
+p = Popen(['buck', 'audit', 'classpath', '--dot'] + MAIN, stdout = PIPE)
+for line in p.stdout:
+  m = PAT.search(line)
+  if m:
+    n = m.group(1)
+    if JGIT.match(n):
+      n = CELL + n[1:]
+    if args.src and n.endswith('__download_bin'):
+      n = n[:-13] + 'src'
+    targets.add(n)
+r = p.wait()
+if r != 0:
+  exit(r)
+
+try:
+  check_call(['buck', 'build'] + sorted(targets))
+except CalledProcessError as err:
+  exit(1)
