diff --git a/app/server-control/controllers/remote-console-controller.js b/app/server-control/controllers/remote-console-controller.js
index 2f3376e..dadb406 100644
--- a/app/server-control/controllers/remote-console-controller.js
+++ b/app/server-control/controllers/remote-console-controller.js
@@ -19,6 +19,38 @@
             'dataService',
             function($scope, $window, APIUtils, dataService){
                 $scope.dataService = dataService;
+
+                // See https://github.com/macton/hterm for available hterm options
+                
+                //Storage
+                hterm.defaultStorage = new lib.Storage.Local();
+
+                var term = new hterm.Terminal("foo");
+                term.onTerminalReady = function() {
+                    var io = term.io.push();
+                    io.onVTKeystroke = function(str) {
+                        console.log(str)
+                        term.io.print(str);
+                    };
+                    io.sendString = function(str) {
+                        console.log(str)
+                    };
+                };
+                term.decorate(document.querySelector('#terminal'));
+
+                //Set cursor color
+                term.prefs_.set('cursor-color', 'rgba(83, 146, 255, .5)');
+
+                //Set background color
+                term.prefs_.set('background-color', '#19273c');
+
+                //Print to console window
+                term.io.println('OpenBMC ver.00');
+                term.io.println('This is not an actual live connection.');
+                term.io.print('root@IBM:');
+                
+                //Allows keyboard input
+                term.installKeyboard();
             }
         ]
     );
