diff --git a/BUILD b/BUILD
index 53b55dc..5825e1d 100644
--- a/BUILD
+++ b/BUILD
@@ -17,6 +17,7 @@
     resources = glob(["src/main/resources/**/*"]),
     deps = [
         ":events-broker-neverlink",
+        ":healthcheck-neverlink",
         "//lib/commons:io",
         "//plugins/delete-project",
         "//plugins/replication",
@@ -36,8 +37,8 @@
         ":pull-replication__plugin",
         ":pull_replication_util",
         "//plugins/delete-project",
-        "//plugins/replication",
         "//plugins/events-broker",
+        "//plugins/replication",
     ],
 )
 
@@ -85,3 +86,9 @@
     neverlink = 1,
     exports = ["//plugins/events-broker"],
 )
+
+java_library(
+    name = "healthcheck-neverlink",
+    neverlink = 1,
+    exports = ["//plugins/healthcheck"],
+)
diff --git a/Jenkinsfile b/Jenkinsfile
index a4fff37..cd68ab8 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -1,3 +1,4 @@
 pluginPipeline(formatCheckId: 'gerritforge:pull-replication-format-3852e64366bb37d13b8baf8af9b15cfd38eb9227',
                buildCheckId: 'gerritforge:pull-replication-3852e64366bb37d13b8baf8af9b15cfd38eb9227',
+               extraPlugins: ['healthcheck'],
                extraModules: ['events-broker'])
diff --git a/src/main/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationModule.java b/src/main/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationModule.java
index fdd2a0f..a058426 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationModule.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/replication/pull/PullReplicationModule.java
@@ -18,6 +18,7 @@
 import static com.googlesource.gerrit.plugins.replication.pull.api.FetchApiCapability.CALL_FETCH_ACTION;
 
 import com.google.common.eventbus.EventBus;
+import com.google.common.flogger.FluentLogger;
 import com.google.gerrit.extensions.annotations.Exports;
 import com.google.gerrit.extensions.config.CapabilityDefinition;
 import com.google.gerrit.extensions.events.HeadUpdatedListener;
@@ -49,10 +50,12 @@
 import com.googlesource.gerrit.plugins.replication.pull.event.EventsBrokerConsumerModule;
 import com.googlesource.gerrit.plugins.replication.pull.event.StreamEventModule;
 import com.googlesource.gerrit.plugins.replication.pull.fetch.ApplyObject;
+import com.googlesource.gerrit.plugins.replication.pull.health.PullReplicationHealthCheckModule;
 import org.eclipse.jgit.lib.Config;
 
 class PullReplicationModule extends AbstractModule {
 
+  private static final FluentLogger flogger = FluentLogger.forEnclosingClass();
   private final MetricMaker pluginMetricMaker;
   private final ReplicationConfigModule configModule;
 
@@ -137,5 +140,17 @@
     EventTypes.register(FetchRefReplicatedEvent.TYPE, FetchRefReplicatedEvent.class);
     EventTypes.register(FetchRefReplicationDoneEvent.TYPE, FetchRefReplicationDoneEvent.class);
     EventTypes.register(FetchReplicationScheduledEvent.TYPE, FetchReplicationScheduledEvent.class);
+
+    try {
+      install(new PullReplicationHealthCheckModule());
+    } catch (NoClassDefFoundError e) {
+      if (e.getMessage()
+          .contains("com/googlesource/gerrit/plugins/healthcheck/check/HealthCheck")) {
+        flogger.atInfo().log(
+            "Skipping registration of pull replication health checks; healthcheck plugin API not loaded");
+      } else {
+        throw e;
+      }
+    }
   }
 }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/replication/pull/health/PullReplicationHealthCheckModule.java b/src/main/java/com/googlesource/gerrit/plugins/replication/pull/health/PullReplicationHealthCheckModule.java
new file mode 100644
index 0000000..c607357
--- /dev/null
+++ b/src/main/java/com/googlesource/gerrit/plugins/replication/pull/health/PullReplicationHealthCheckModule.java
@@ -0,0 +1,27 @@
+// Copyright (C) 2024 The Android Open Source Project
+//
+// 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 com.googlesource.gerrit.plugins.replication.pull.health;
+
+import com.google.gerrit.extensions.registration.DynamicSet;
+import com.google.inject.AbstractModule;
+import com.googlesource.gerrit.plugins.healthcheck.check.HealthCheck;
+
+public class PullReplicationHealthCheckModule extends AbstractModule {
+
+  @Override
+  protected void configure() {
+    DynamicSet.bind(binder(), HealthCheck.class).to(PullReplicationTasksHealthCheck.class);
+  }
+}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/replication/pull/health/PullReplicationTasksHealthCheck.java b/src/main/java/com/googlesource/gerrit/plugins/replication/pull/health/PullReplicationTasksHealthCheck.java
new file mode 100644
index 0000000..ea6fdb5
--- /dev/null
+++ b/src/main/java/com/googlesource/gerrit/plugins/replication/pull/health/PullReplicationTasksHealthCheck.java
@@ -0,0 +1,41 @@
+// Copyright (C) 2024 The Android Open Source Project
+//
+// 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 com.googlesource.gerrit.plugins.replication.pull.health;
+
+import com.google.common.util.concurrent.ListeningExecutorService;
+import com.google.gerrit.extensions.annotations.PluginName;
+import com.google.gerrit.metrics.MetricMaker;
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+import com.googlesource.gerrit.plugins.healthcheck.HealthCheckConfig;
+import com.googlesource.gerrit.plugins.healthcheck.check.AbstractHealthCheck;
+
+@Singleton
+public class PullReplicationTasksHealthCheck extends AbstractHealthCheck {
+
+  @Inject
+  public PullReplicationTasksHealthCheck(
+      ListeningExecutorService executor,
+      HealthCheckConfig config,
+      @PluginName String name,
+      MetricMaker metricMaker) {
+    super(executor, config, name + "-tasks", metricMaker);
+  }
+
+  @Override
+  protected Result doCheck() throws Exception {
+    return Result.PASSED;
+  }
+}
