diff --git a/cccli/command/tag.py b/cccli/command/tag.py
index f5b03f43c74513d4f4944183d1dc10267e4fafbc..4f85651d09dceb051c1cc30a3ace5971004dc26d 100644
--- a/cccli/command/tag.py
+++ b/cccli/command/tag.py
@@ -8,20 +8,23 @@ CloudControl tag releated commands
 from cccli.exception import *
 from sjrpc.core.exceptions import *
 from cccli.printer import Printer, color
-from cccli.command.command import Command
+from cccli.command.command import Command, OptionCommand
 
 from optparse import OptionParser
 
-class Command_tags(Command):
-    '''List static tags on an account (current by default)'''
+class Command_tags(OptionCommand):
+    '''List static tags on an account'''
+
+    def __init__(self, cli, argv0):
+        OptionCommand.__init__(self, cli, argv0)
+        self.option.set_usage("%prog [options] [tql]")
+        self.option.add_option("--raw", action="store_true", dest="raw",
+                               help="Don't append filter on request")
 
     def __call__(self, argv):
         # Parse argline
         try:
-            oparser = OptionParser(prog=argv[0])
-            oparser.add_option("--raw", action="store_true", dest="raw",
-                               help="Don't append filter on request")
-            (options, args) = oparser.parse_args(argv[1:])
+            (options, args) = self.option.parse_args(argv[1:])
         except SystemExit:
             return
         # append current login if nothing asked
@@ -43,9 +46,6 @@ class Command_tags(Command):
             tags = " ".join([ "%s%s:%s%s"%(color["green"], t, color["reset"], v) for (t,v) in o.items() ])
             self.printer.out("%sid:%s%s%s %s"%(color["green"], color["yellow"], id, color["reset"], tags))
 
-    def usage(self):
-        return "Usage: tags [--raw] [--help] [tql]"
-
 
 class Command_addtag(Command):
     '''Add/Modify a static tag on an account'''