diff --git a/jeepyb/cmd/manage_projects.py b/jeepyb/cmd/manage_projects.py
index a05229c..a8f80f8 100644
--- a/jeepyb/cmd/manage_projects.py
+++ b/jeepyb/cmd/manage_projects.py
@@ -47,6 +47,7 @@
 
 from __future__ import print_function
 
+import argparse
 import ConfigParser
 import logging
 import os
@@ -61,7 +62,6 @@
 
 import jeepyb.gerritdb
 
-logging.basicConfig(level=logging.ERROR)
 log = logging.getLogger("manage_projects")
 
 
@@ -287,6 +287,19 @@
 
 
 def main():
+    parser = argparse.ArgumentParser(description='Manage projects')
+    parser.add_argument('-v', dest='verbose', action='store_true',
+                        help='verbose output')
+    parser.add_argument('--nocleanup', action='store_true',
+                        help='do not remove temp directories')
+    parser.add_argument('projects', metavar='project', nargs='*',
+                        help='name of project(s) to process')
+    args = parser.parse_args()
+
+    if args.verbose:
+        logging.basicConfig(level=logging.DEBUG)
+    else:
+        logging.basicConfig(level=logging.ERROR)
 
     PROJECTS_YAML = os.environ.get('PROJECTS_YAML',
                                    '/home/gerrit2/projects.yaml')
@@ -314,6 +327,8 @@
 
         for section in configs[1]:
             project = section['project']
+            if args.projects and project not in args.projects:
+                continue
             options = section.get('options', dict())
             description = section.get('description', None)
             homepage = section.get('homepage', defaults.get('homepage', None))
@@ -369,7 +384,8 @@
                     git_command(repo_path,
                                 "push --tags %s" % remote_url, env=ssh_env)
                 finally:
-                    run_command("rm -fr %s" % tmpdir)
+                    if not args.nocleanup:
+                        run_command("rm -fr %s" % tmpdir)
 
             try:
                 acl_config = section.get('acl-config',
@@ -404,7 +420,8 @@
                                         GERRIT_GITID,
                                         ssh_env)
                 finally:
-                    run_command("rm -fr %s" % tmpdir)
+                    if not args.nocleanup:
+                        run_command("rm -fr %s" % tmpdir)
     finally:
         os.unlink(ssh_env['GIT_SSH'])
 
diff --git a/requirements.txt b/requirements.txt
index 17f92bb..994ad98 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,3 +1,4 @@
+argparse
 gerritlib
 MySQL-python
 paramiko
