diff --git a/y2023/vision/BUILD b/y2023/vision/BUILD
index 25ae2b9..55390e4 100644
--- a/y2023/vision/BUILD
+++ b/y2023/vision/BUILD
@@ -98,8 +98,8 @@
     ],
 )
 
-cc_binary(
-    name = "aprilrobotics",
+cc_library(
+    name = "aprilrobotics_lib",
     srcs = [
         "aprilrobotics.cc",
         "aprilrobotics.h",
@@ -119,3 +119,17 @@
         "//third_party/apriltag",
     ],
 )
+
+cc_binary(
+    name = "aprilrobotics",
+    srcs = [
+        "aprilrobotics_main.cc",
+    ],
+    target_compatible_with = ["@platforms//os:linux"],
+    visibility = ["//y2023:__subpackages__"],
+    deps = [
+        ":aprilrobotics_lib",
+        "//aos:init",
+        "//aos/events:shm_event_loop",
+    ],
+)
diff --git a/y2023/vision/aprilrobotics.cc b/y2023/vision/aprilrobotics.cc
index f8a8e38..3bf0adf 100644
--- a/y2023/vision/aprilrobotics.cc
+++ b/y2023/vision/aprilrobotics.cc
@@ -1,7 +1,5 @@
 #include "y2023/vision/aprilrobotics.h"
 
-DEFINE_string(config, "aos_config.json", "Path to the config file to use.");
-
 DEFINE_bool(
     debug, false,
     "If true, dump a ton of debug and crash on the first valid detection.");
@@ -167,31 +165,5 @@
   return results;
 }
 
-void AprilViewerMain() {
-  aos::FlatbufferDetachedBuffer<aos::Configuration> config =
-      aos::configuration::ReadConfig(FLAGS_config);
-
-  aos::ShmEventLoop event_loop(&config.message());
-
-  AprilRoboticsDetector detector(&event_loop, "/camera");
-
-  detector.SetWorkerpoolAffinities();
-
-  event_loop.SetRuntimeAffinity(aos::MakeCpusetFromCpus({5}));
-
-  struct sched_param param;
-  param.sched_priority = 21;
-  PCHECK(sched_setscheduler(0, SCHED_FIFO, &param) == 0);
-
-  event_loop.Run();
-}
-
 }  // namespace vision
 }  // namespace y2023
-
-int main(int argc, char **argv) {
-  aos::InitGoogle(&argc, &argv);
-  y2023::vision::AprilViewerMain();
-
-  return 0;
-}
diff --git a/y2023/vision/aprilrobotics.h b/y2023/vision/aprilrobotics.h
index f36f3eb..6aafd75 100644
--- a/y2023/vision/aprilrobotics.h
+++ b/y2023/vision/aprilrobotics.h
@@ -3,7 +3,6 @@
 
 #include "aos/events/event_loop.h"
 #include "aos/events/shm_event_loop.h"
-#include "aos/init.h"
 #include "aos/network/team_number.h"
 #include "aos/realtime.h"
 #include "frc971/vision/calibration_generated.h"
diff --git a/y2023/vision/aprilrobotics_main.cc b/y2023/vision/aprilrobotics_main.cc
new file mode 100644
index 0000000..67b853f
--- /dev/null
+++ b/y2023/vision/aprilrobotics_main.cc
@@ -0,0 +1,34 @@
+#include "aos/events/shm_event_loop.h"
+#include "aos/init.h"
+#include "y2023/vision/aprilrobotics.h"
+
+DEFINE_string(config, "aos_config.json", "Path to the config file to use.");
+
+namespace y2023::vision {
+void AprilViewerMain() {
+  aos::FlatbufferDetachedBuffer<aos::Configuration> config =
+      aos::configuration::ReadConfig(FLAGS_config);
+
+  aos::ShmEventLoop event_loop(&config.message());
+
+  AprilRoboticsDetector detector(&event_loop, "/camera");
+
+  detector.SetWorkerpoolAffinities();
+
+  event_loop.SetRuntimeAffinity(aos::MakeCpusetFromCpus({5}));
+
+  struct sched_param param;
+  param.sched_priority = 21;
+  PCHECK(sched_setscheduler(0, SCHED_FIFO, &param) == 0);
+
+  event_loop.Run();
+}
+
+}  // namespace y2023::vision
+
+int main(int argc, char **argv) {
+  aos::InitGoogle(&argc, &argv);
+  y2023::vision::AprilViewerMain();
+
+  return 0;
+}
