diff --git a/openstackclient/shell.py b/openstackclient/shell.py
index 29f9f70a7d..eef2d0612a 100644
--- a/openstackclient/shell.py
+++ b/openstackclient/shell.py
@@ -298,7 +298,6 @@ class OpenStackShell(App):
         super(OpenStackShell, self).initialize_app(argv)
 
         # stash selected API versions for later
-        # TODO(dtroyer): how do extenstions add their version requirements?
         self.api_version = {
             'compute': self.options.os_compute_api_version,
             'identity': self.options.os_identity_api_version,
@@ -312,6 +311,19 @@ class OpenStackShell(App):
             self.command_manager.add_command_group(
                 'openstack.' + api + version)
 
+        # This is the naive extension implementation referred to in
+        # blueprint 'client-extensions'
+        # Extension modules can register their commands in an
+        # 'openstack.extension' entry point group:
+        # entry_points={
+        #     'openstack.extension': [
+        #         'list_repo=qaz.github.repo:ListRepo',
+        #         'show_repo=qaz.github.repo:ShowRepo',
+        #     ],
+        # }
+        self.command_manager.add_command_group(
+            'openstack.extension')
+
         # Handle deferred help and exit
         if self.options.deferred_help:
             self.DeferredHelpAction(self.parser, self.parser, None, None)