diff --git a/products/stratos-cli/python-cli/cli/__init__.py b/products/stratos-cli/python-cli/cli/__init__.py
new file mode 100644
index 0000000..d632ccc
--- /dev/null
+++ b/products/stratos-cli/python-cli/cli/__init__.py
@@ -0,0 +1 @@
+__author__ = 'pradeep'
diff --git a/products/stratos-cli/python-cli/cli/__init__.pyc b/products/stratos-cli/python-cli/cli/__init__.pyc
new file mode 100644
index 0000000..799b833
--- /dev/null
+++ b/products/stratos-cli/python-cli/cli/__init__.pyc
Binary files differ
diff --git a/products/stratos-cli/python-cli/cli/cmdinterpretor.py b/products/stratos-cli/python-cli/cli/cmdinterpretor.py
new file mode 100644
index 0000000..3ffba0a
--- /dev/null
+++ b/products/stratos-cli/python-cli/cli/cmdinterpretor.py
@@ -0,0 +1,11 @@
+import cmd
+
+class CmdInterpretor(cmd.Cmd):
+
+    prompt = 'stratos>'
+
+    def do_add(self, line):
+        print 'command line intepretor working'
+
+    def do_EOF(self, line):
+        return True
\ No newline at end of file
diff --git a/products/stratos-cli/python-cli/cli/cmdinterpretor.pyc b/products/stratos-cli/python-cli/cli/cmdinterpretor.pyc
new file mode 100644
index 0000000..ba67e03
--- /dev/null
+++ b/products/stratos-cli/python-cli/cli/cmdinterpretor.pyc
Binary files differ
diff --git a/products/stratos-cli/python-cli/cli/receivers/__init__.py b/products/stratos-cli/python-cli/cli/receivers/__init__.py
new file mode 100644
index 0000000..d632ccc
--- /dev/null
+++ b/products/stratos-cli/python-cli/cli/receivers/__init__.py
@@ -0,0 +1 @@
+__author__ = 'pradeep'
diff --git a/products/stratos-cli/python-cli/cli/receivers/tenantmgt.py b/products/stratos-cli/python-cli/cli/receivers/tenantmgt.py
new file mode 100644
index 0000000..d632ccc
--- /dev/null
+++ b/products/stratos-cli/python-cli/cli/receivers/tenantmgt.py
@@ -0,0 +1 @@
+__author__ = 'pradeep'
diff --git a/products/stratos-cli/python-cli/cli/stratos.py b/products/stratos-cli/python-cli/cli/stratos.py
new file mode 100755
index 0000000..f796fe8
--- /dev/null
+++ b/products/stratos-cli/python-cli/cli/stratos.py
@@ -0,0 +1,54 @@
+#!/usr/bin/python
+import optparse
+import sys
+import os
+import logging
+import cmdinterpretor
+import cmd
+
+
+log = logging.getLogger(__name__)
+
+#this is the entry point of the commandline client.
+#   1. enter in to stratos shell session
+#   2. use the 'stratos' a unix command
+def authenticate_authorize():
+    parser = optparse.OptionParser(version='1.0', description='Command line tool to interact with stratos backend')
+    parser.add_option('--username', '-u')
+    parser.add_option('--password', '-p')
+
+    options, arguments = parser.parse_args()
+    if options.username == None or options.username == '' or options.password == None or options.password == '':
+        log.debug("username/passoword empty")
+        print 'please enter valid username/password'
+        sys.exit(1)  #throw exception and handle it in the driver class. less readable
+
+    print options.username
+    print options.password
+
+def activate_console():
+    cmdinterpretor.CmdInterpretor().cmdloop('stratos>')
+
+
+
+def start_stratos_client():
+    authenticate_authorize()
+    activate_console()
+
+
+def main():
+    try:
+        #execute the stratos shell
+       start_stratos_client()
+    except Exception as e:
+        log.info(e.message, e)
+        print e.message
+        print 'Exception'
+        sys.exit(1)
+    except KeyboardInterrupt as e:
+        print('Shutting down stratos client')
+        sys.exit(1)
+
+
+if __name__ == '__main__':
+    main()
\ No newline at end of file
diff --git a/products/stratos-cli/python-cli/cli/stratos.pyc b/products/stratos-cli/python-cli/cli/stratos.pyc
new file mode 100644
index 0000000..f43c07e
--- /dev/null
+++ b/products/stratos-cli/python-cli/cli/stratos.pyc
Binary files differ
