diff --git a/build/images/BUILD.gn b/build/images/BUILD.gn
index d4780d28c13fd640876b55c287bd9fcf05863428..7ef3758ba1c8ea5ad068872b14daa210031ae65c 100644
--- a/build/images/BUILD.gn
+++ b/build/images/BUILD.gn
@@ -107,23 +107,27 @@ group("meta_packages") {
 group("monolith_packages") {
   testonly = true
   visibility = [ ":*" ]
-  public_deps = [ "//:additional_base_packages" ]
+  public_deps = [
+    "//:additional_base_packages",
+  ]
 }
 
 group("preinstall_packages") {
   testonly = true
   visibility = [ ":*" ]
-  public_deps = [ "//:additional_cache_packages" ]
+  public_deps = [
+    "//:additional_cache_packages",
+  ]
 }
 
 group("available_packages") {
   testonly = true
   visibility = [ ":*" ]
   public_deps = [
-                  ":monolith_packages",
-                  ":preinstall_packages",
-                  "//:additional_universe_packages",
-                ]
+    ":monolith_packages",
+    ":preinstall_packages",
+    "//:additional_universe_packages",
+  ]
 }
 
 group("packages") {
@@ -596,8 +600,7 @@ generated_file("zxcrypt_config.txt") {
   contents = zxcrypt_key_source
 }
 
-component_manager_label =
-    "//src/sys/component_manager:component_manager.bootfs"
+component_manager_label = "//src/sys/component_manager:component_manager.bootfs"
 component_manager_target_dir =
     get_label_info(component_manager_label, "target_out_dir")
 component_manager_target_name = get_label_info(component_manager_label, "name")
@@ -1359,10 +1362,10 @@ action("update.manifest") {
         {
           target = image.updater
           forward_variables_from(image,
-                                  [
-                                    "deps",
-                                    "sources",
-                                  ])
+                                 [
+                                   "deps",
+                                   "sources",
+                                 ])
         },
       ]
     }
@@ -1371,8 +1374,10 @@ action("update.manifest") {
   update_manifest += [
     {
       target = "board"
-      sources = [ board_name_file ]
-    }
+      sources = [
+        board_name_file,
+      ]
+    },
   ]
 
   script = "manifest.py"
@@ -1462,7 +1467,7 @@ package_metadata_list("amber_index") {
 # The component index is the index of components in all available packages.
 component_index_metadata = "$target_out_dir/component_index_metadata"
 component_index_metadata_list("component_index_metadata") {
-  visibility = [ "//garnet/bin/component_index:*" ]
+  visibility = [ "//src/sys/component_index:*" ]
 
   testonly = true
 
@@ -1757,7 +1762,9 @@ images += [
 ]
 
 write_images_manifest("images-manifest") {
-  public = [ "FUCHSIA_BOARD_NAME=${board_name}" ]
+  public = [
+    "FUCHSIA_BOARD_NAME=${board_name}",
+  ]
   outputs = [
     "$root_build_dir/images.json",
     "$root_build_dir/image_paths.sh",
diff --git a/garnet/packages/tests/BUILD.gn b/garnet/packages/tests/BUILD.gn
index 53912f53b2d5c6e517dc930df8e00d19694fc7f9..d84b8a46952b032dd9ed7f9b519dd292ae1a756c 100644
--- a/garnet/packages/tests/BUILD.gn
+++ b/garnet/packages/tests/BUILD.gn
@@ -314,7 +314,6 @@ group("all") {
     "//garnet/packages/tests:cmx",
     "//garnet/packages/tests:cobalt_client",
     "//garnet/packages/tests:component_cpp",
-    "//garnet/packages/tests:component_index",
     "//garnet/packages/tests:components_binary_tests",
     "//garnet/packages/tests:containers_cpp",
     "//garnet/packages/tests:cpuperf",
@@ -431,6 +430,7 @@ group("all") {
     "//garnet/packages/tests:zircon",
     "//garnet/packages/tests:zxdb",
     "//src/connectivity/dhcp:dhcp_tests",
+    "//src/sys/component_index:component_index_tests",
     "//src/sys/locate:locate_integration_test",
   ]
 }
@@ -1129,13 +1129,6 @@ group("run_test_component") {
   ]
 }
 
-group("component_index") {
-  testonly = true
-  public_deps = [
-    "//garnet/bin/component_index:component_index_tests",
-  ]
-}
-
 group("bluetooth") {
   testonly = true
   public_deps = [
diff --git a/products/core.gni b/products/core.gni
index 5e4d476fa6681d5d70f033a99459da3757a22ecc..6052d14a05c5df7b8db0848950f9624d8ce22eac 100644
--- a/products/core.gni
+++ b/products/core.gni
@@ -10,7 +10,7 @@ zircon_enable_kernel_debugging_features = false
 
 meta_package_labels += [
   "//build/images:shell-commands",
-  "//garnet/bin/component_index:component_index",
+  "//src/sys/component_index:component_index",
 ]
 
 base_package_labels += [
diff --git a/garnet/bin/component_index/BUILD.gn b/src/sys/component_index/BUILD.gn
similarity index 96%
rename from garnet/bin/component_index/BUILD.gn
rename to src/sys/component_index/BUILD.gn
index 65c6f9e4eb0b3f122f739cf2f6a8144303b64137..11a76fb12c7637980b35f100d355c0c5a02e9f98 100644
--- a/garnet/bin/component_index/BUILD.gn
+++ b/src/sys/component_index/BUILD.gn
@@ -31,12 +31,12 @@ rustc_binary("component_index_bin") {
   edition = "2018"
 
   deps = [
-    "//garnet/bin/component_index/fidl:index-rustc",
     "//garnet/public/lib/fidl/rust/fidl",
     "//garnet/public/rust/fuchsia-async",
     "//garnet/public/rust/fuchsia-component",
     "//garnet/public/rust/fuchsia-runtime",
     "//garnet/public/rust/fuchsia-zircon",
+    "//src/sys/component_index/fidl:index-rustc",
     "//third_party/rust_crates:failure",
     "//third_party/rust_crates:futures-preview",
   ]
diff --git a/garnet/bin/component_index/fidl/BUILD.gn b/src/sys/component_index/fidl/BUILD.gn
similarity index 99%
rename from garnet/bin/component_index/fidl/BUILD.gn
rename to src/sys/component_index/fidl/BUILD.gn
index 8c2e102aa6e2c37b542e3a30a0911698fe60a767..65f45e57fbcff5abb56ca26a50b829a3974b9569 100644
--- a/garnet/bin/component_index/fidl/BUILD.gn
+++ b/src/sys/component_index/fidl/BUILD.gn
@@ -10,4 +10,4 @@ fidl("index") {
   sources = [
     "index.fidl",
   ]
-}
\ No newline at end of file
+}
diff --git a/garnet/bin/component_index/fidl/index.fidl b/src/sys/component_index/fidl/index.fidl
similarity index 100%
rename from garnet/bin/component_index/fidl/index.fidl
rename to src/sys/component_index/fidl/index.fidl
diff --git a/garnet/bin/component_index/meta/component_index.cmx b/src/sys/component_index/meta/component_index.cmx
similarity index 100%
rename from garnet/bin/component_index/meta/component_index.cmx
rename to src/sys/component_index/meta/component_index.cmx
diff --git a/garnet/bin/component_index/meta/component_index_tests.cmx b/src/sys/component_index/meta/component_index_tests.cmx
similarity index 100%
rename from garnet/bin/component_index/meta/component_index_tests.cmx
rename to src/sys/component_index/meta/component_index_tests.cmx
diff --git a/garnet/bin/component_index/src/main.rs b/src/sys/component_index/src/main.rs
similarity index 96%
rename from garnet/bin/component_index/src/main.rs
rename to src/sys/component_index/src/main.rs
index 07b36ec5626578225f9fdd3ca8843ee1f9b3bf7b..23b50783e610cd285d84740ed616b46083f0d6f1 100644
--- a/garnet/bin/component_index/src/main.rs
+++ b/src/sys/component_index/src/main.rs
@@ -35,7 +35,9 @@ async fn run_fuzzy_search_server(
 
 /// Needle only accepts [A-Z a-z 0-9 / _ - .].
 fn check_needle(needle: &str) -> bool {
-    return needle.chars().all(|c| c.is_alphanumeric() || c == '/' || c == '_' || c == '-' || c == '.');
+    return needle
+        .chars()
+        .all(|c| c.is_alphanumeric() || c == '/' || c == '_' || c == '-' || c == '.');
 }
 
 enum IncomingServices {
diff --git a/src/sys/locate/BUILD.gn b/src/sys/locate/BUILD.gn
index 294fd22af56b09fa9759c956675e91de4e2ddc1d..9f6e5a66631db95e545b3de548e596b6d3b612d8 100644
--- a/src/sys/locate/BUILD.gn
+++ b/src/sys/locate/BUILD.gn
@@ -12,12 +12,12 @@ rustc_binary("locate_bin") {
   edition = "2018"
 
   deps = [
-    "//garnet/bin/component_index/fidl:index-rustc",
     "//garnet/public/lib/fidl/rust/fidl",
     "//garnet/public/rust/fuchsia-async",
     "//garnet/public/rust/fuchsia-component",
     "//garnet/public/rust/fuchsia-runtime",
     "//garnet/public/rust/fuchsia-zircon",
+    "//src/sys/component_index/fidl:index-rustc",
     "//third_party/rust_crates:failure",
     "//third_party/rust_crates:futures-preview",
   ]