diff --git a/command.py b/command.py
index 997acec..cd5e3c3 100644
--- a/command.py
+++ b/command.py
@@ -231,7 +231,12 @@
      and does not require a working directory.
   """
 
-class RequiresGitcCommand(object):
+class GitcAvailableCommand(object):
   """Command that requires GITC to be available, but does
      not require the local client to be a GITC client.
   """
+
+class GitcClientCommand(object):
+  """Command that requires the local client to be a GITC
+     client.
+  """
diff --git a/main.py b/main.py
index a5979a8..4f4eb9f 100755
--- a/main.py
+++ b/main.py
@@ -42,7 +42,7 @@
 from git_config import init_ssh, close_ssh
 from command import InteractiveCommand
 from command import MirrorSafeCommand
-from command import RequiresGitcCommand
+from command import GitcAvailableCommand, GitcClientCommand
 from subcmds.version import Version
 from editor import Editor
 from error import DownloadError
@@ -144,11 +144,16 @@
             file=sys.stderr)
       return 1
 
-    if isinstance(cmd, RequiresGitcCommand) and not gitc_utils.get_gitc_manifest_dir():
+    if isinstance(cmd, GitcAvailableCommand) and not gitc_utils.get_gitc_manifest_dir():
       print("fatal: '%s' requires GITC to be available" % name,
             file=sys.stderr)
       return 1
 
+    if isinstance(cmd, GitcClientCommand) and not gitc_client_name:
+      print("fatal: '%s' requires a GITC client" % name,
+            file=sys.stderr)
+      return 1
+
     try:
       copts, cargs = cmd.OptionParser.parse_args(argv)
       copts = cmd.ReadEnvironmentOptions(copts)
diff --git a/subcmds/gitc_init.py b/subcmds/gitc_init.py
index c243bb3..4f9d734 100644
--- a/subcmds/gitc_init.py
+++ b/subcmds/gitc_init.py
@@ -18,12 +18,12 @@
 import sys
 
 import gitc_utils
-from command import RequiresGitcCommand
+from command import GitcAvailableCommand
 from manifest_xml import GitcManifest
 from subcmds import init
 
 
-class GitcInit(init.Init, RequiresGitcCommand):
+class GitcInit(init.Init, GitcAvailableCommand):
   common = True
   helpSummary = "Initialize a GITC Client."
   helpUsage = """
diff --git a/subcmds/help.py b/subcmds/help.py
index ae5b8f0..9bb4c8c 100644
--- a/subcmds/help.py
+++ b/subcmds/help.py
@@ -19,7 +19,7 @@
 from formatter import AbstractFormatter, DumbWriter
 
 from color import Coloring
-from command import PagedCommand, MirrorSafeCommand, RequiresGitcCommand
+from command import PagedCommand, MirrorSafeCommand, GitcAvailableCommand, GitcClientCommand
 import gitc_utils
 
 class Help(PagedCommand, MirrorSafeCommand):
@@ -57,8 +57,12 @@
     print('The most commonly used repo commands are:')
 
     def gitc_supported(cmd):
-      if not isinstance(cmd, RequiresGitcCommand):
+      if not isinstance(cmd, GitcAvailableCommand) and not isinstance(cmd, GitcClientCommand):
         return True
+      if self.manifest.isGitcClient:
+        return True
+      if isinstance(cmd, GitcClientCommand):
+        return False
       if gitc_utils.get_gitc_manifest_dir():
         return True
       return False
