diff --git a/Sources/XXMessengerClient/Messenger/Functions/MessengerIsGroupChatRunning.swift b/Sources/XXMessengerClient/Messenger/Functions/MessengerIsGroupChatRunning.swift
new file mode 100644
index 0000000000000000000000000000000000000000..ce177d5d8c2d9858b6218d540131e4bb4c103b27
--- /dev/null
+++ b/Sources/XXMessengerClient/Messenger/Functions/MessengerIsGroupChatRunning.swift
@@ -0,0 +1,21 @@
+import XCTestDynamicOverlay
+
+public struct MessengerIsGroupChatRunning {
+  public var run: () -> Bool
+
+  public func callAsFunction() -> Bool {
+    run()
+  }
+}
+
+extension MessengerIsGroupChatRunning {
+  public static func live(_ env: MessengerEnvironment) -> MessengerIsGroupChatRunning {
+    MessengerIsGroupChatRunning { env.groupChat.get() != nil }
+  }
+}
+
+extension MessengerIsGroupChatRunning {
+  public static let unimplemented = MessengerIsGroupChatRunning(
+    run: XCTestDynamicOverlay.unimplemented("\(Self.self)", placeholder: false)
+  )
+}
diff --git a/Sources/XXMessengerClient/Messenger/Messenger.swift b/Sources/XXMessengerClient/Messenger/Messenger.swift
index 44b213cb05805352ecffd0d7e07ca6f4880a42a7..aefef17da05277b628e9fd7f5f2b5b356566b890 100644
--- a/Sources/XXMessengerClient/Messenger/Messenger.swift
+++ b/Sources/XXMessengerClient/Messenger/Messenger.swift
@@ -51,6 +51,7 @@ public struct Messenger {
   public var getNotificationReports: MessengerGetNotificationReports
   public var registerGroupRequestHandler: MessengerRegisterGroupRequestHandler
   public var registerGroupChatProcessor: MessengerRegisterGroupChatProcessor
+  public var isGroupChatRunning: MessengerIsGroupChatRunning
   public var startGroupChat: MessengerStartGroupChat
 }
 
@@ -107,6 +108,7 @@ extension Messenger {
       getNotificationReports: .live(env),
       registerGroupRequestHandler: .live(env),
       registerGroupChatProcessor: .live(env),
+      isGroupChatRunning: .live(env),
       startGroupChat: .live(env)
     )
   }
@@ -164,6 +166,7 @@ extension Messenger {
     getNotificationReports: .unimplemented,
     registerGroupRequestHandler: .unimplemented,
     registerGroupChatProcessor: .unimplemented,
+    isGroupChatRunning: .unimplemented,
     startGroupChat: .unimplemented
   )
 }
diff --git a/Tests/XXMessengerClientTests/Messenger/Functions/MessengerIsGroupChatRunningTests.swift b/Tests/XXMessengerClientTests/Messenger/Functions/MessengerIsGroupChatRunningTests.swift
new file mode 100644
index 0000000000000000000000000000000000000000..364c12039396687de0520ec9465f3671b810e564
--- /dev/null
+++ b/Tests/XXMessengerClientTests/Messenger/Functions/MessengerIsGroupChatRunningTests.swift
@@ -0,0 +1,20 @@
+import XCTest
+@testable import XXMessengerClient
+
+final class MessengerIsGroupChatRunningTests: XCTestCase {
+  func testIsRunning() {
+    var env: MessengerEnvironment = .unimplemented
+    env.groupChat.get = { .unimplemented }
+    let isRunning: MessengerIsGroupChatRunning = .live(env)
+
+    XCTAssertTrue(isRunning())
+  }
+
+  func testIsNotRunning() {
+    var env: MessengerEnvironment = .unimplemented
+    env.groupChat.get = { nil }
+    let isRunning: MessengerIsGroupChatRunning = .live(env)
+
+    XCTAssertFalse(isRunning())
+  }
+}