diff --git a/core/api/src/main/java/org/onosproject/ui/UiConnection.java b/core/api/src/main/java/org/onosproject/ui/UiConnection.java
index ead7b0d..4ffc74a 100644
--- a/core/api/src/main/java/org/onosproject/ui/UiConnection.java
+++ b/core/api/src/main/java/org/onosproject/ui/UiConnection.java
@@ -23,6 +23,13 @@
 public interface UiConnection {
 
     /**
+     * Returns the name of the logged-in user for which this connection exists.
+     *
+     * @return logged in user name
+     */
+    String userName();
+
+    /**
      * Sends the specified JSON message to the user interface client.
      *
      * @param message message to send
diff --git a/core/api/src/main/java/org/onosproject/ui/UiPreferencesService.java b/core/api/src/main/java/org/onosproject/ui/UiPreferencesService.java
new file mode 100644
index 0000000..3cc046f
--- /dev/null
+++ b/core/api/src/main/java/org/onosproject/ui/UiPreferencesService.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2016 Open Networking Laboratory
+ *
+ * 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 org.onosproject.ui;
+
+import com.fasterxml.jackson.databind.node.ObjectNode;
+
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * Service for tracking user interface preferences.
+ */
+public interface UiPreferencesService {
+
+    /**
+     * Returns the list of user names that have user preferences available.
+     *
+     * @return list of user names
+     */
+    Set<String> getUserNames();
+
+    /**
+     * Returns an immutable copy of the preferences for the specified user.
+     *
+     * @param userName user name
+     * @return map of user preferences
+     */
+    Map<String, ObjectNode> getPreferences(String userName);
+
+    /**
+     * Sets the named preference for the specified user.
+     *
+     * @param userName   user name
+     * @param preference name of the user preference
+     * @param value      preference value
+     */
+    void setPreference(String userName, String preference, ObjectNode value);
+
+}
