diff --git a/centipede/analyze_corpora.cc b/centipede/analyze_corpora.cc
index 6e3060e..da42f01 100644
--- a/centipede/analyze_corpora.cc
+++ b/centipede/analyze_corpora.cc
@@ -137,6 +137,31 @@
 
 }  // namespace
 
+CoverageResults GetCoverage(std::string_view binary_name,
+                            std::string_view binary_hash,
+                            std::string_view workdir) {
+  const std::vector<CorpusRecord> corpus_records =
+      ReadCorpora(binary_name, binary_hash, workdir);
+
+  absl::flat_hash_set<size_t> pcs;
+  for (const auto &record : corpus_records) {
+    for (const auto &feature : record.features) {
+      if (!feature_domains::kPCs.Contains(feature)) continue;
+      auto pc = ConvertPCFeatureToPcIndex(feature);
+      pcs.insert(pc);
+    }
+  }
+
+  BinaryInfo binary_info = ReadBinaryInfo(binary_name, binary_hash, workdir);
+  CoverageResults ret = {
+      .pcs = {pcs.begin(), pcs.end()},
+      .binary_info = std::move(binary_info),
+  };
+  // Sort PCs to put them in the canonical order, as in pc_table.
+  std::sort(ret.pcs.begin(), ret.pcs.end());
+  return ret;
+}
+
 AnalyzeCorporaResults AnalyzeCorpora(std::string_view binary_name,
                                      std::string_view binary_hash,
                                      std::string_view workdir_a,
diff --git a/centipede/analyze_corpora.h b/centipede/analyze_corpora.h
index 90eb528..3165f3b 100644
--- a/centipede/analyze_corpora.h
+++ b/centipede/analyze_corpora.h
@@ -32,6 +32,17 @@
   BinaryInfo binary_info;
 };
 
+// The result of analyzing a single corpus.
+struct CoverageResults {
+  std::vector<size_t> pcs;
+  BinaryInfo binary_info;
+};
+
+// Returns information on the corpus within `workdir`.
+CoverageResults GetCoverage(std::string_view binary_name,
+                            std::string_view binary_hash,
+                            std::string_view workdir);
+
 // Compares the corpus within `workdir_a` with the corpus in `workdir_b`.
 AnalyzeCorporaResults AnalyzeCorpora(std::string_view binary_name,
                                      std::string_view binary_hash,
