diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index e1316b4d32589d7b54cbf7614aed597d0cb87b5a..09ec17e0b4adcd0c95c4c499e9143b2a05909369 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -133,6 +133,12 @@
       android:label="@string/settings_highlightlist_title"
       android:parentActivityName=".ui.coresettings.CoreSettingsActivity"
       android:windowSoftInputMode="adjustResize" />
+    <activity
+      android:name=".ui.coresettings.highlightrule.HighlightRuleActivity"
+      android:exported="false"
+      android:label="@string/settings_highlightrule_title"
+      android:parentActivityName=".ui.coresettings.CoreSettingsActivity"
+      android:windowSoftInputMode="adjustResize" />
     <activity
       android:name=".ui.coresettings.networkconfig.NetworkConfigActivity"
       android:exported="false"
diff --git a/app/src/main/java/de/kuschku/quasseldroid/dagger/ActivityModule.kt b/app/src/main/java/de/kuschku/quasseldroid/dagger/ActivityModule.kt
index 89ff18ff4a93a16849e41143da00d0e9b905b0ed..128843238055d56495d06396ba1a6456ef83a4cc 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/dagger/ActivityModule.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/dagger/ActivityModule.kt
@@ -28,6 +28,7 @@ import de.kuschku.quasseldroid.ui.coresettings.chatlist.ChatlistEditActivity
 import de.kuschku.quasseldroid.ui.coresettings.chatlist.ChatlistEditFragmentProvider
 import de.kuschku.quasseldroid.ui.coresettings.highlightlist.HighlightListActivity
 import de.kuschku.quasseldroid.ui.coresettings.highlightlist.HighlightListFragmentProvider
+import de.kuschku.quasseldroid.ui.coresettings.highlightrule.HighlightRuleFragment
 import de.kuschku.quasseldroid.ui.coresettings.identity.IdentityCreateActivity
 import de.kuschku.quasseldroid.ui.coresettings.identity.IdentityCreateFragmentProvider
 import de.kuschku.quasseldroid.ui.coresettings.identity.IdentityEditActivity
@@ -106,6 +107,9 @@ abstract class ActivityModule {
   @ContributesAndroidInjector(modules = [HighlightListFragmentProvider::class])
   abstract fun bindHighlightListActivity(): HighlightListActivity
 
+  @ContributesAndroidInjector(modules = [HighlightRuleFragment::class])
+  abstract fun bindHighlightRuleFragment(): HighlightRuleFragment
+
   @ContributesAndroidInjector(modules = [IgnoreItemFragmentProvider::class])
   abstract fun bindIgnoreItemActivity(): IgnoreItemActivity
 
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/highlightrule/HighlightRuleActivity.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/highlightrule/HighlightRuleActivity.kt
new file mode 100644
index 0000000000000000000000000000000000000000..b2136afa5309ae57a897a4dde12c184e34cbec4c
--- /dev/null
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/highlightrule/HighlightRuleActivity.kt
@@ -0,0 +1,24 @@
+package de.kuschku.quasseldroid.ui.coresettings.highlightrule
+
+import android.content.Context
+import android.content.Intent
+import de.kuschku.libquassel.quassel.syncables.HighlightRuleManager
+import de.kuschku.quasseldroid.util.ui.SettingsActivity
+
+class HighlightRuleActivity : SettingsActivity(HighlightRuleFragment()) {
+  companion object {
+    fun launch(
+      context: Context,
+      rule: HighlightRuleManager.HighlightRule? = null
+    ) = context.startActivity(intent(context, rule))
+
+    fun intent(
+      context: Context,
+      rule: HighlightRuleManager.HighlightRule? = null
+    ) = Intent(context, HighlightRuleActivity::class.java).apply {
+      if (rule != null) {
+        putExtra("item", rule)
+      }
+    }
+  }
+}
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/highlightrule/HighlightRuleFragment.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/highlightrule/HighlightRuleFragment.kt
new file mode 100644
index 0000000000000000000000000000000000000000..4c3229b719d8f524796c777f851819b598d5efaa
--- /dev/null
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/highlightrule/HighlightRuleFragment.kt
@@ -0,0 +1,23 @@
+package de.kuschku.quasseldroid.ui.coresettings.highlightrule
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import de.kuschku.quasseldroid.ui.coresettings.SettingsFragment
+
+class HighlightRuleFragment : SettingsFragment(), SettingsFragment.Savable,
+                              SettingsFragment.Changeable {
+  override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
+                            savedInstanceState: Bundle?): View? {
+    return super.onCreateView(inflater, container, savedInstanceState)
+  }
+
+  override fun hasChanged(): Boolean {
+    TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+  }
+
+  override fun onSave(): Boolean {
+    TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+  }
+}
diff --git a/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/highlightrule/HighlightRuleFragmentProvider.kt b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/highlightrule/HighlightRuleFragmentProvider.kt
new file mode 100644
index 0000000000000000000000000000000000000000..bf5308b6a082bcc8b5751bb17f306e96723f97fc
--- /dev/null
+++ b/app/src/main/java/de/kuschku/quasseldroid/ui/coresettings/highlightrule/HighlightRuleFragmentProvider.kt
@@ -0,0 +1,10 @@
+package de.kuschku.quasseldroid.ui.coresettings.highlightrule
+
+import dagger.Module
+import dagger.android.ContributesAndroidInjector
+
+@Module
+abstract class HighlightRuleFragmentProvider {
+  @ContributesAndroidInjector
+  abstract fun bindHighlightRuleFragment(): HighlightRuleFragment
+}
diff --git a/app/src/main/res/values-de/strings_settings.xml b/app/src/main/res/values-de/strings_settings.xml
index 1cf6b7cd1b088e99112d1d6a59fb508bce2e5e8f..af48a964e92b0ce1f031d44a9c2a41f3be8723f0 100644
--- a/app/src/main/res/values-de/strings_settings.xml
+++ b/app/src/main/res/values-de/strings_settings.xml
@@ -97,6 +97,8 @@
 
   <string name="settings_highlightlist_title">Hervorhebungen</string>
 
+  <string name="settings_highlightrule_title">Hervorhebungsregel</string>
+
   <string name="settings_aliaslist_title">Aliase</string>
 
   <string name="settings_networkconfig_title">IRC Konfiguration</string>
diff --git a/app/src/main/res/values/strings_settings.xml b/app/src/main/res/values/strings_settings.xml
index b4ec6650922998d00a9a8ce899dbbb27814840b5..be879b38addf3850d5dd1b699941fc153ecc3bc3 100644
--- a/app/src/main/res/values/strings_settings.xml
+++ b/app/src/main/res/values/strings_settings.xml
@@ -97,6 +97,8 @@
 
   <string name="settings_highlightlist_title">Highlights</string>
 
+  <string name="settings_highlightrule_title">Highlight Rule</string>
+
   <string name="settings_aliaslist_title">Aliases</string>
 
   <string name="settings_networkconfig_title">IRC Config</string>
diff --git a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/HighlightRuleManager.kt b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/HighlightRuleManager.kt
index 670ea62a660dd8aa502d518aad55d2e74d933bef..8176eec97277ab36c15c22874129e038477f4eb2 100644
--- a/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/HighlightRuleManager.kt
+++ b/lib/src/main/java/de/kuschku/libquassel/quassel/syncables/HighlightRuleManager.kt
@@ -3,6 +3,7 @@ package de.kuschku.libquassel.quassel.syncables
 import de.kuschku.libquassel.protocol.*
 import de.kuschku.libquassel.quassel.syncables.interfaces.IHighlightRuleManager
 import de.kuschku.libquassel.session.SignalProxy
+import java.io.Serializable
 
 class HighlightRuleManager(
   proxy: SignalProxy
@@ -15,7 +16,7 @@ class HighlightRuleManager(
     val isInverse: Boolean = false,
     val sender: String,
     val channel: String
-  )
+  ) : Serializable
 
   override fun toVariantMap(): QVariantMap = mapOf(
     "HighlightRuleList" to QVariant.of(initHighlightRuleList(), Type.QVariantMap),