diff --git a/src/applications/repository/query/PhabricatorRepositorySearchEngine.php b/src/applications/repository/query/PhabricatorRepositorySearchEngine.php
--- a/src/applications/repository/query/PhabricatorRepositorySearchEngine.php
+++ b/src/applications/repository/query/PhabricatorRepositorySearchEngine.php
@@ -44,6 +44,15 @@
         ->setKey('uris')
         ->setDescription(
           pht('Search for repositories by clone/checkout URI.')),
+      id(new PhabricatorPHIDsSearchField())
+        ->setLabel(pht('Services'))
+        ->setKey('almanacServicePHIDs')
+        ->setAliases(
+          array(
+            'almanacServicePHID',
+            'almanacService',
+            'almanacServices',
+          )),
     );
   }
 
@@ -80,6 +89,10 @@
       $query->withURIs($map['uris']);
     }
 
+    if ($map['almanacServicePHIDs']) {
+      $query->withAlmanacServicePHIDs($map['almanacServicePHIDs']);
+    }
+
     return $query;
   }
 
diff --git a/src/applications/repository/storage/PhabricatorRepository.php b/src/applications/repository/storage/PhabricatorRepository.php
--- a/src/applications/repository/storage/PhabricatorRepository.php
+++ b/src/applications/repository/storage/PhabricatorRepository.php
@@ -2773,6 +2773,13 @@
         ->setDescription(
           pht(
             'True if the repository is importing initial commits.')),
+      id(new PhabricatorConduitSearchFieldSpecification())
+        ->setKey('almanacServicePHID')
+        ->setType('phid?')
+        ->setDescription(
+          pht(
+            'The Almanac Service that hosts this repository, if the '.
+            'repository is clustered.')),
     );
   }
 
@@ -2784,6 +2791,7 @@
       'shortName' => $this->getRepositorySlug(),
       'status' => $this->getStatus(),
       'isImporting' => (bool)$this->isImporting(),
+      'almanacServicePHID' => $this->getAlmanacServicePHID(),
     );
   }