diff --git a/cli/menu/mainmenu/mainMenu.go b/cli/menu/mainmenu/mainMenu.go
new file mode 100644
index 0000000..3d57892
--- /dev/null
+++ b/cli/menu/mainmenu/mainMenu.go
@@ -0,0 +1,75 @@
+/*
+   * Copyright 2018-present Open Networking Foundation
+
+   * Licensed under the Apache License, Version 2.0 (the "License");
+   * you may not use this file except in compliance with the License.
+   * You may obtain a copy of the License at
+
+   * http://www.apache.org/licenses/LICENSE-2.0
+
+   * Unless required by applicable law or agreed to in writing, software
+   * distributed under the License is distributed on an "AS IS" BASIS,
+   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   * See the License for the specific language governing permissions and
+   * limitations under the License.
+*/
+
+package mainmenu
+
+import (
+	"fmt"
+
+	"github.com/bclicn/color"
+	"github.com/opencord/voltha-go/cli/util"
+	"google.golang.org/grpc"
+)
+
+/*
+Conn - the grpc connection to use for making calls to voltha core
+*/
+var Conn *grpc.ClientConn
+
+/*
+MainLoop - the loop which processes commands at the main level
+*/
+func MainLoop(conn *grpc.ClientConn) {
+
+	inputPrompt := fmt.Sprint("(" + color.LightBlue("voltha") + ") ")
+	//	inputPromptSize := len(inputPrompt)
+	Conn = conn
+	mainFuncTable := make(map[string]func(bool))
+	mainFuncTable["quit"] = util.Exit
+	mainFuncTable["exit"] = nil
+	mainFuncTable["cmdenvironment"] = doCmdEnvironment
+	mainFuncTable["load"] = doLoad
+	mainFuncTable["relative_load"] = doRelativeLoad
+	mainFuncTable["reset_history"] = doResetHistory
+	mainFuncTable["log"] = doLog
+	mainFuncTable["launch"] = doLaunch
+	mainFuncTable["restart"] = doRestart
+	mainFuncTable["devices"] = doDevices
+	mainFuncTable["device"] = doDevice
+	mainFuncTable["logical_devices"] = doLogicalDevices
+	mainFuncTable["logical_device"] = doLogicalDevice
+	mainFuncTable["omci"] = doOmci
+	mainFuncTable["pdb"] = doPdb
+	mainFuncTable["version"] = doVersion
+	mainFuncTable["health"] = doHealth
+	mainFuncTable["preprovison_olt"] = doPreprovisionOlt
+	mainFuncTable["enable"] = doEnable
+	mainFuncTable["reboot"] = doReboot
+	mainFuncTable["self_test"] = doSelfTest
+	mainFuncTable["delete"] = doDelete
+	mainFuncTable["disable"] = doDisable
+	mainFuncTable["test"] = doTest
+	mainFuncTable["alarm_filters"] = doAlarmFilters
+	mainFuncTable["arrive_onus"] = doArriveOnus
+	mainFuncTable["install_eapol_flow"] = doInstallEapolFlow
+	mainFuncTable["install_all_controller_bound_flows"] = doInstallAllControllerBoundFlows
+	mainFuncTable["install_all_sample_flows"] = doInstallAllSampleFlows
+	mainFuncTable["install_dhcp_flows"] = doInstallDhcpFlows
+	mainFuncTable["delete_all_flows"] = doDeleteAllFlows
+	mainFuncTable["send_simulated_upstream_eapol"] = doSendSimulatedUpstreamEapol
+	mainFuncTable["inject_eapol_start"] = doInjectEapolStart
+	util.ProcessTable(mainFuncTable, inputPrompt)
+}
