diff --git a/subcmds/manifest.py b/subcmds/manifest.py
index 69906fa..4374a9d 100644
--- a/subcmds/manifest.py
+++ b/subcmds/manifest.py
@@ -16,16 +16,21 @@
 import os
 import sys
 
-from command import Command
+from command import PagedCommand
 
-class Manifest(Command):
+class Manifest(PagedCommand):
   common = False
-  helpSummary = "Manifest file"
+  helpSummary = "Manifest inspection utility"
   helpUsage = """
-%prog
+%prog [-o {-|NAME.xml} [-r]]
 """
   _helpDescription = """
-The repo manifest file describes the projects mapped into the client.
+
+With the -o option, exports the current manifest for inspection.
+The manifest and (if present) local_manifest.xml are combined
+together to produce a single manifest file.  This file can be stored
+in a Git repository for use during future 'repo init' invocations.
+
 """
 
   @property
@@ -39,6 +44,34 @@
     fd.close()
     return help
 
+  def _Options(self, p):
+    p.add_option('-r', '--revision-as-HEAD',
+                 dest='peg_rev', action='store_true',
+                 help='Save revisions as current HEAD')
+    p.add_option('-o', '--output-file',
+                 dest='output_file',
+                 help='File to save the manifest to',
+                 metavar='-|NAME.xml')
+
+  def _Output(self, opt):
+    if opt.output_file == '-':
+      fd = sys.stdout
+    else:
+      fd = open(opt.output_file, 'w')
+    self.manifest.Save(fd,
+                       peg_rev = opt.peg_rev)
+    fd.close()
+    if opt.output_file != '-':
+      print >>sys.stderr, 'Saved manifest to %s' % opt.output_file
+
   def Execute(self, opt, args):
+    if args:
+      self.Usage()
+
+    if opt.output_file is not None:
+      self._Output(opt)
+      return
+
+    print >>sys.stderr, 'error: no operation to perform'
     print >>sys.stderr, 'error: see repo help manifest'
     sys.exit(1)
