diff --git a/src/main/java/com/googlesource/gerrit/plugins/task/Modules.java b/src/main/java/com/googlesource/gerrit/plugins/task/Modules.java
index 6bedb5e..a97abf7 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/task/Modules.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/task/Modules.java
@@ -57,6 +57,13 @@
   }
 
   public static class MyOptions implements DynamicBean {
+    @Option(
+        name = "--only",
+        usage =
+            "Evaluate tasks under this task only. Only root task names are supported."
+                + " This option can be provided multiple times.")
+    public List<String> includedRoots = new ArrayList<>();
+
     @Option(name = "--all", usage = "Include all visible tasks in the output")
     public boolean all = false;
 
@@ -97,5 +104,9 @@
     public MyOptions(PatchSetArgument.Factory patchSetArgumentFactory) {
       this.patchSetArgumentFactory = patchSetArgumentFactory;
     }
+
+    public boolean shouldFilterRoot(String rootName) {
+      return !includedRoots.isEmpty() && !includedRoots.contains(rootName);
+    }
   }
 }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/task/TaskAttributeFactory.java b/src/main/java/com/googlesource/gerrit/plugins/task/TaskAttributeFactory.java
index 6262420..90454f7 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/task/TaskAttributeFactory.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/task/TaskAttributeFactory.java
@@ -147,11 +147,14 @@
   protected PluginDefinedInfo createWithExceptions(ChangeData c) {
     TaskPluginAttribute a = new TaskPluginAttribute();
     try {
-      for (Node node : definitions.getRootNodes(c)) {
-        if (node instanceof Node.Invalid) {
+      for (Node root : definitions.getRootNodes(c)) {
+        if (root instanceof Node.Invalid) {
           a.roots.add(invalid());
         } else {
-          new AttributeFactory(node).create().ifPresent(t -> a.roots.add(t));
+          if (options.shouldFilterRoot(root.task.name())) {
+            continue;
+          }
+          new AttributeFactory(root).create().ifPresent(t -> a.roots.add(t));
         }
       }
     } catch (ConfigInvalidException | IOException | StorageException e) {
diff --git a/src/main/resources/Documentation/task.md b/src/main/resources/Documentation/task.md
index 7a0cf1e..75ee189 100644
--- a/src/main/resources/Documentation/task.md
+++ b/src/main/resources/Documentation/task.md
@@ -588,6 +588,13 @@
         status: PASS
 ```
 
+**\-\-@PLUGIN@\-\-only**
+
+This switch can be used to only evaluate tasks under a certain root when tasks
+from other roots are unwanted. For example, a CI system may not be interested
+in evaluating tasks for another CI system. The switch can be provided multiple
+times.
+
 Examples
 --------
 See [task_states](test/task_states.html) for a comprehensive list of examples
diff --git a/src/main/resources/Documentation/test/task_states.md b/src/main/resources/Documentation/test/task_states.md
index 709de95..e3f1834 100644
--- a/src/main/resources/Documentation/test/task_states.md
+++ b/src/main/resources/Documentation/test/task_states.md
@@ -56,12 +56,12 @@
 [root "Root PASS"]
   pass = True
 
-{
-   "applicable" : true,
-   "hasPass" : true,
-   "name" : "Root PASS",
-   "status" : "PASS"
-}
+{                              # Test Suite: task_only
+   "applicable" : true,        # Test Suite: task_only
+   "hasPass" : true,           # Test Suite: task_only
+   "name" : "Root PASS",       # Test Suite: task_only
+   "status" : "PASS"           # Test Suite: task_only
+}                              # Test Suite: task_only
 
 [root "Root FAIL"]
   fail = True
@@ -2620,10 +2620,10 @@
 [root "Root INVALID Preload"]
   preload-task = missing
 
-{
-   "name" : "UNKNOWN",
-   "status" : "INVALID"
-}
+{                         # Test Suite: task_only
+   "name" : "UNKNOWN",    # Test Suite: task_only
+   "status" : "INVALID"   # Test Suite: task_only
+}                         # Test Suite: task_only
 
 [root "INVALIDS"]
   subtasks-file = invalids.config
diff --git a/test/check_task_statuses.sh b/test/check_task_statuses.sh
index 1e262b3..30e2ece 100755
--- a/test/check_task_statuses.sh
+++ b/test/check_task_statuses.sh
@@ -249,6 +249,10 @@
 test_generated preview-non-secret -l "$NON_SECRET_USER" --task--preview "$cnum,1" --task--all "$query"
 test_generated preview-invalid --task--preview "$cnum,1" --task--invalid "$query"
 
+example "$DOC_STATES" 2 | keep_suites "task_only" | testdoc_2_pjson | \
+    ensure json_pp > "$EXPECTED".task-roots-filter
+test_generated task-roots-filter --task--all --task--only "Root\ PASS" "$query"
+
 example "$DOC_PATHS" 1 | testdoc_2_cfg | replace_user > "$ROOT_CFG"
 q_setup update_repo "$ALL" "$REMOTE_ALL" "$REF_ALL"
 ROOTS=$(config_section_keys "root")
diff --git a/test/lib/lib_helper.sh b/test/lib/lib_helper.sh
index efb6de9..f4006db 100644
--- a/test/lib/lib_helper.sh
+++ b/test/lib/lib_helper.sh
@@ -59,7 +59,17 @@
 
 remove_suites() { # suites... < pre_json > json
     grep -vE "# Only Test Suite: ($(echo "$@" | sed "s/ /|/g"))" | \
-         sed -e's/# Only Test Suite:.*$//; s/ *$//'
+         sed -e's/# Only Test Suite:.*$//; s/# Test Suite:.*$//; s/ *$//'
+}
+
+# pre_json is a "templated json" used in the test docs to express test results. It looks
+# like json but has some extra comments to express when a certain output should be used.
+# These comments look like: "# Test Suite: <suite>[, <suite>][, <suite>]..."
+#
+
+keep_suites() { # suites... < pre_json > json
+    grep -E "# Test Suite: (.*, )?($(echo "$@" | sed "s/ /|/g"))(, .*)?$" | \
+         sed -e's/# Only Test Suite:.*$//; s/# Test Suite:.*$//; s/ *$//'
 }
 
 remove_not_suite() { remove_suites !"$1" ; } # suite < pre_json > json
