diff --git a/src/app/core/header/header.spec.ts b/src/app/core/header/header.spec.ts
index 023bb7d..720392a 100644
--- a/src/app/core/header/header.spec.ts
+++ b/src/app/core/header/header.spec.ts
@@ -104,6 +104,13 @@
       .value('toastrConfig', MockToastrConfig)
       .value('AuthService', MockAuth)
       .value('XosNavigationService', {})
+      .value('XosVersionReaderService', {
+        getVersion: () => {
+          return {
+            then: (cb) => cb('version')
+          };
+        }
+      })
       .value('ConfigHelpers', {
         stateWithParamsForJs: () => null
       })
diff --git a/src/app/core/header/header.ts b/src/app/core/header/header.ts
index 5ef9459..0e55dee 100644
--- a/src/app/core/header/header.ts
+++ b/src/app/core/header/header.ts
@@ -27,6 +27,7 @@
 import {Subscription} from 'rxjs';
 import {IXosConfigHelpersService} from '../services/helpers/config.helpers';
 import {IXosDebugService} from '../debug/debug.service';
+import {IXosVersionReaderService} from '../services/version-reader';
 
 export interface INotification extends IWSEvent {
   viewed?: boolean;
@@ -47,7 +48,8 @@
     'SearchService',
     'XosKeyboardShortcut',
     'ConfigHelpers',
-    'XosDebug'
+    'XosDebug',
+    'XosVersionReaderService'
   ];
   public notifications: INotification[] = [];
   public newNotifications: INotification[] = [];
@@ -74,14 +76,20 @@
     private SearchService: IXosSearchService,
     private XosKeyboardShortcut: IXosKeyboardShortcutService,
     private ConfigHelpers: IXosConfigHelpersService,
-    private XosDebugService: IXosDebugService
+    private XosDebugService: IXosDebugService,
+    private XosVersionReaderService: IXosVersionReaderService
   ) {
 
   }
 
   $onInit() {
     this.$log.info('[XosHeader] Setup');
-    this.version = require('../../../../package.json').version;
+
+    this.XosVersionReaderService.getVersion()
+    .then((version: string) => {
+      this.version = version;
+    });
+
     angular.extend(this.toastrConfig, {
       newestOnTop: false,
       positionClass: 'toast-top-right',
diff --git a/src/app/core/index.ts b/src/app/core/index.ts
index ae5796c..e3d05e6 100644
--- a/src/app/core/index.ts
+++ b/src/app/core/index.ts
@@ -50,6 +50,7 @@
 import {xosConfirm} from './confirm/confirm';
 import {XosConfirm} from './confirm/confirm.service';
 import {xosServiceStatus} from './service-status/service-status';
+import {XosVersionReaderService} from './services/version-reader';
 
 export const xosCore = 'xosCore';
 
@@ -73,6 +74,7 @@
   .service('XosDebouncer', XosDebouncer)
   .service('XosDebug', XosDebugService)
   .service('XosConfirm', XosConfirm)
+  .service('XosVersionReaderService', XosVersionReaderService)
   .directive('xosLinkWrapper', xosLinkWrapper)
   .component('xosHeader', xosHeader)
   .component('xosFooter', xosFooter)
diff --git a/src/app/core/key-binding/key-binding-panel.html b/src/app/core/key-binding/key-binding-panel.html
index ed198fd..e870679 100644
--- a/src/app/core/key-binding/key-binding-panel.html
+++ b/src/app/core/key-binding/key-binding-panel.html
@@ -51,4 +51,11 @@
     <div class="col-xs-12">
         <xos-debug-summary></xos-debug-summary>
     </div>
+</div>
+<div class="row">
+    <div class="col-xs-12 text-right ">
+        <span class="text-accent small">
+            XOS-GUI version: {{vm.version}}
+        </span>
+    </div>
 </div>
\ No newline at end of file
diff --git a/src/app/core/key-binding/key-binding-panel.ts b/src/app/core/key-binding/key-binding-panel.ts
index c77f6b6..9984d76 100644
--- a/src/app/core/key-binding/key-binding-panel.ts
+++ b/src/app/core/key-binding/key-binding-panel.ts
@@ -20,11 +20,13 @@
 class XosKeyBindingPanelController {
   static $inject = ['$scope', 'XosKeyboardShortcut'];
   public bindings: IXosKeyboardShortcutMap;
+  public version: string;
 
   constructor (
     private $scope: ng.IScope,
     private XosKeyboardShortcut: IXosKeyboardShortcutService
   ) {
+    this.version = require('../../../../package.json').version;
     this.bindings = this.XosKeyboardShortcut.keyMapping;
   }
 }
diff --git a/src/app/core/services/version-reader.ts b/src/app/core/services/version-reader.ts
new file mode 100644
index 0000000..3293fbc
--- /dev/null
+++ b/src/app/core/services/version-reader.ts
@@ -0,0 +1,55 @@
+
+
+/*
+ * Copyright 2017-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.
+ */
+
+import IPromise = angular.IPromise;
+
+export interface IXosVersionReaderService {
+  getVersion(): IPromise<string>;
+}
+
+interface ICORDVersion {
+    data: {
+        version: string;
+    };
+}
+
+export class XosVersionReaderService implements IXosVersionReaderService {
+
+    static $inject = ['$http', '$q', '$log'];
+
+    constructor(
+    private $http: angular.IHttpService,
+    private $q: angular.IQService,
+    private $log: angular.ILogService
+    ) {
+    }
+
+    public getVersion(): IPromise<string> {
+        const d = this.$q.defer();
+        this.$http.get(`/version.json`)
+          .then((res: ICORDVersion) => {
+            d.resolve(res.data.version);
+          })
+          .catch(e => {
+            this.$log.warn(`[XosVersionReaderService] Cannot read version`, e);
+            d.resolve('unknown');
+          });
+        return d.promise;
+      }
+
+}
diff --git a/src/version.json b/src/version.json
new file mode 100644
index 0000000..74e6b0a
--- /dev/null
+++ b/src/version.json
@@ -0,0 +1,3 @@
+{
+    "version": "6.0.0"
+}
\ No newline at end of file
