diff --git a/CLI/commands.py b/CLI/commands.py
new file mode 100644
index 0000000..ebb7d88
--- /dev/null
+++ b/CLI/commands.py
@@ -0,0 +1,138 @@
+from __future__ import print_function, unicode_literals
+from PyInquirer import prompt, print_json
+import json
+import os
+import argparse
+
+
+#already ccrerrated account through website, has to login
+def update():
+    #get data from database
+    return
+
+def yesorno(question):
+    questions = [
+        {
+            'type': 'input',
+            'name': 'response',
+            'message': question,
+        },
+    ]
+    answers = prompt(questions)
+    if(answers["response"] == "y"):
+        return True
+    return False
+
+def login():
+    #enter username
+    #enter password
+    questions = [
+        {
+            'type': 'input',
+            'name': 'webmail',
+            'message': 'What\'s TJ Webmail',
+        },
+        {
+            'type': 'password',
+            'name': 'password',
+            'message': 'Password?',
+        },
+    ]
+    user = prompt(questions)
+    #reading from json of users (replace w GET to database) to check if user is registered
+    with open('users.json', 'r') as json_file:
+        data = json.load(json_file)
+        for i in range(len(data)):
+            if user["webmail"] == data[i]["webmail"]:
+                if(user["password"] == data[i]["password"]):
+                    print("Logged in!")
+                    return data[i]
+                else:
+                    print("Password incorrect. Try again.")
+                    return None
+        print("User not found. Please Try again")
+        return None
+
+#did not create account through website, has to signup/login
+def signup():
+    questions = [
+        {
+            'type': 'input',
+            'name': 'first-name',
+            'message': 'What\'s your first name',
+        },
+        {
+            'type': 'input',
+            'name': 'last-name',
+            'message': 'What\'s your last name?',
+        },
+        {
+            'type': 'list',
+            'name': 'grade',
+            'message': 'Grade?',
+            'choices':["9","10","11","12"]
+        },
+        {
+            'type': 'input',
+            'name': 'webmail',
+            'message': 'What\'s your TJ Webmail?',
+        },
+        {
+            'type': 'password',
+            'name': 'password',
+            'message': 'Password?',
+        },
+    ]
+    user = prompt(questions)
+    for i in user:
+        if user[i] == "":
+            print("Some forms were left blank. Try again.\n")
+            return None
+    if len(user["password"]) < 6:
+        print("Password is too short. Try again.")
+        return None
+    if (("@tjhsst.edu" in user['webmail']) == False):
+        print("Webmail entered was not a @tjhhsst.edu. Try again.")
+        return None
+
+    user["classes"] = []
+    with open('users.json', 'r') as json_file:
+        data = json.load(json_file)
+        data.append(user)
+        open("users.json", "w").write(str(json.dumps(data)))
+    return user
+
+def relogin():
+    questions = [
+        {
+            'type': 'list',
+            'name': 'choice',
+            'message': '',
+            'choices':["Continue as current user","Login into new user","Sign up into new account"]
+        },
+    ]
+    answer = prompt(questions)
+    
+
+def setup(user):
+    #Read classes/assignenments and setup directory:
+    #SkoolOS/Math/Week1
+    for c in user["classes"]:
+        os.makedirs(c)
+        for a in user["classes"][c]:
+            os.makedirs(c + "/" + a)
+
+def start():
+    if(os.path.exists(".login.txt") == False):
+        b = yesorno("Do you have a SkoolOS account?(y/N)")
+        if(b):
+            user = login()
+            if(user != None):
+                setup(user)
+                open(".login.txt", "w").write(str(user))
+        else:
+            user = signup()
+            if(user != None):
+                open(".login.txt").write(str(user))
+
+        
\ No newline at end of file
diff --git a/CLI/run.py b/CLI/run.py
new file mode 100644
index 0000000..aca8859
--- /dev/null
+++ b/CLI/run.py
@@ -0,0 +1,22 @@
+from __future__ import print_function, unicode_literals
+from PyInquirer import prompt, print_json
+from commands import start, update
+import argparse
+import json
+import os
+import argparse
+
+my_parser = argparse.ArgumentParser(prog='skool', description='Let SkoolOS control your system', epilog="Try again")
+my_parser.add_argument('--init', action="store_true") #returns true if run argument
+args = my_parser.parse_args()
+
+update()
+outputs = vars(args)
+if(outputs['init']):
+    start()
+
+
+
+
+
+
diff --git a/CLI/users.json b/CLI/users.json
new file mode 100644
index 0000000..bf1713e
--- /dev/null
+++ b/CLI/users.json
@@ -0,0 +1 @@
+[{"first_name": "Raffu", "last_name": "Khondaker", "password": "password", "webmail": "2022rkhondak@tjhsst.edu", "classes": {"Math": ["week1_hw", "week2_hw", "week3_hw", "unit3_quiz"], "English": ["journal1", "journal2", "journal3"]}}]
\ No newline at end of file