diff --git a/app/src/main/java/org/futo/circles/feature/circles/CirclesFragment.kt b/app/src/main/java/org/futo/circles/feature/circles/CirclesFragment.kt
index 2498b2e8707ee2ac3588fceba1d6ae42f5a9303f..73b29c4ea8e9facb97a8f06075c495499b31900e 100644
--- a/app/src/main/java/org/futo/circles/feature/circles/CirclesFragment.kt
+++ b/app/src/main/java/org/futo/circles/feature/circles/CirclesFragment.kt
@@ -1,7 +1,13 @@
 package org.futo.circles.feature.circles
 
+import android.annotation.SuppressLint
 import android.os.Bundle
+import android.view.Menu
+import android.view.MenuInflater
+import android.view.MenuItem
 import android.view.View
+import androidx.appcompat.view.menu.MenuBuilder
+import androidx.core.view.MenuProvider
 import androidx.fragment.app.Fragment
 import androidx.fragment.app.viewModels
 import androidx.navigation.fragment.findNavController
@@ -25,7 +31,7 @@ import org.futo.circles.feature.circles.list.CirclesListAdapter
 import org.futo.circles.model.CircleListItem
 
 @AndroidEntryPoint
-class CirclesFragment : Fragment(org.futo.circles.core.R.layout.fragment_rooms) {
+class CirclesFragment : Fragment(org.futo.circles.core.R.layout.fragment_rooms), MenuProvider {
 
     private val viewModel by viewModels<CirclesViewModel>()
     private val binding by viewBinding(FragmentRoomsBinding::bind)
@@ -37,6 +43,7 @@ class CirclesFragment : Fragment(org.futo.circles.core.R.layout.fragment_rooms)
         super.onViewCreated(view, savedInstanceState)
         setupViews()
         setupObservers()
+        activity?.addMenuProvider(this, viewLifecycleOwner)
     }
 
     override fun onCreate(savedInstanceState: Bundle?) {
@@ -50,6 +57,20 @@ class CirclesFragment : Fragment(org.futo.circles.core.R.layout.fragment_rooms)
         listAdapter = null
     }
 
+    @SuppressLint("RestrictedApi")
+    override fun onCreateMenu(menu: Menu, inflater: MenuInflater) {
+        (menu as? MenuBuilder)?.setOptionalIconsVisible(true)
+        menu.clear()
+        inflater.inflate(R.menu.circles_tab_menu, menu)
+    }
+
+    override fun onMenuItemSelected(item: MenuItem): Boolean {
+        when (item.itemId) {
+            R.id.help -> CirclesExplanationDialog(requireContext(), CircleRoomTypeArg.Circle).show()
+        }
+        return true
+    }
+
     private fun setupViews() {
         binding.rvRooms.apply {
             setEmptyView(EmptyTabPlaceholderView(requireContext()).apply {
diff --git a/app/src/main/java/org/futo/circles/feature/groups/GroupsFragment.kt b/app/src/main/java/org/futo/circles/feature/groups/GroupsFragment.kt
index 3981c199f751afb67e3e71ab5cdca5dc51f5ef55..ed39a488783d78c188cc36d0fc6967310992ceeb 100644
--- a/app/src/main/java/org/futo/circles/feature/groups/GroupsFragment.kt
+++ b/app/src/main/java/org/futo/circles/feature/groups/GroupsFragment.kt
@@ -1,7 +1,13 @@
 package org.futo.circles.feature.groups
 
+import android.annotation.SuppressLint
 import android.os.Bundle
+import android.view.Menu
+import android.view.MenuInflater
+import android.view.MenuItem
 import android.view.View
+import androidx.appcompat.view.menu.MenuBuilder
+import androidx.core.view.MenuProvider
 import androidx.fragment.app.Fragment
 import androidx.fragment.app.viewModels
 import androidx.navigation.fragment.findNavController
@@ -24,7 +30,7 @@ import org.futo.circles.feature.groups.list.GroupsListAdapter
 import org.futo.circles.model.GroupListItem
 
 @AndroidEntryPoint
-class GroupsFragment : Fragment(org.futo.circles.core.R.layout.fragment_rooms) {
+class GroupsFragment : Fragment(org.futo.circles.core.R.layout.fragment_rooms), MenuProvider {
 
     private val viewModel by viewModels<GroupsViewModel>()
     private val binding by viewBinding(FragmentRoomsBinding::bind)
@@ -42,6 +48,7 @@ class GroupsFragment : Fragment(org.futo.circles.core.R.layout.fragment_rooms) {
         super.onViewCreated(view, savedInstanceState)
         setupViews()
         setupObservers()
+        activity?.addMenuProvider(this, viewLifecycleOwner)
     }
 
     override fun onCreate(savedInstanceState: Bundle?) {
@@ -50,6 +57,20 @@ class GroupsFragment : Fragment(org.futo.circles.core.R.layout.fragment_rooms) {
             CirclesExplanationDialog(requireContext(), CircleRoomTypeArg.Group).show()
     }
 
+    @SuppressLint("RestrictedApi")
+    override fun onCreateMenu(menu: Menu, inflater: MenuInflater) {
+        (menu as? MenuBuilder)?.setOptionalIconsVisible(true)
+        menu.clear()
+        inflater.inflate(R.menu.circles_tab_menu, menu)
+    }
+
+    override fun onMenuItemSelected(item: MenuItem): Boolean {
+        when (item.itemId) {
+            R.id.help -> CirclesExplanationDialog(requireContext(), CircleRoomTypeArg.Group).show()
+        }
+        return true
+    }
+
     private fun setupViews() {
         binding.rvRooms.apply {
             setEmptyView(EmptyTabPlaceholderView(requireContext()).apply {
diff --git a/app/src/main/res/drawable/ic_help.xml b/app/src/main/res/drawable/ic_help.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0a62f12cf45bbf90da16ff2a380e0109bfca9cf9
--- /dev/null
+++ b/app/src/main/res/drawable/ic_help.xml
@@ -0,0 +1,11 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:autoMirrored="true"
+    android:tint="@color/menu_icon_color"
+    android:viewportWidth="24"
+    android:viewportHeight="24">
+    <path
+        android:fillColor="@android:color/white"
+        android:pathData="M11,18h2v-2h-2v2zM12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.41,0 -8,-3.59 -8,-8s3.59,-8 8,-8 8,3.59 8,8 -3.59,8 -8,8zM12,6c-2.21,0 -4,1.79 -4,4h2c0,-1.1 0.9,-2 2,-2s2,0.9 2,2c0,2 -3,1.75 -3,5h2c0,-2.25 3,-2.5 3,-5 0,-2.21 -1.79,-4 -4,-4z" />
+</vector>
diff --git a/app/src/main/res/menu/circles_tab_menu.xml b/app/src/main/res/menu/circles_tab_menu.xml
new file mode 100644
index 0000000000000000000000000000000000000000..8660e4395c97cb72769e263408ae8dc7fc0e0c4c
--- /dev/null
+++ b/app/src/main/res/menu/circles_tab_menu.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<menu xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
+
+    <item
+        android:id="@+id/help"
+        android:icon="@drawable/ic_help"
+        android:title="@string/help"
+        app:showAsAction="ifRoom" />
+
+</menu>
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 14f4de12a8219f438fb85de7527902fe517f188e..d0d68d4f01dbfdd37dd8c4f22349ce493d78014b 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -210,6 +210,7 @@
     <string name="creating_timeline">Creating timeline</string>
     <string name="group_topic_optional">Group topic (optional)</string>
     <string name="session">Session</string>
+    <string name="help">Help</string>
 
     <string-array name="report_categories">
         <item>@string/crude_language</item>