diff --git a/aos/flatbuffers/generate.cc b/aos/flatbuffers/generate.cc
index 9a2e5fd..4c76785 100644
--- a/aos/flatbuffers/generate.cc
+++ b/aos/flatbuffers/generate.cc
@@ -1,7 +1,7 @@
 #include <stdlib.h>
 
+#include "absl/flags/flag.h"
 #include "flatbuffers/reflection_generated.h"
-#include "gflags/gflags.h"
 
 #include "aos/flatbuffers.h"
 #include "aos/flatbuffers/static_flatbuffers.h"
@@ -9,19 +9,22 @@
 #include "aos/json_to_flatbuffer.h"
 #include "aos/util/file.h"
 
-DEFINE_string(reflection_bfbs, "", "Path to the .bfbs reflection file.");
-DEFINE_string(output_file, "", "Path to the output header to write.");
-DEFINE_string(base_file_name, "",
-              "Name of the base file to generate code for as used by the "
-              "reflection::Schema object.");
+ABSL_FLAG(std::string, reflection_bfbs, "",
+          "Path to the .bfbs reflection file.");
+ABSL_FLAG(std::string, output_file, "", "Path to the output header to write.");
+ABSL_FLAG(std::string, base_file_name, "",
+          "Name of the base file to generate code for as used by the "
+          "reflection::Schema object.");
 
 namespace aos::fbs {
 int Main() {
   aos::FlatbufferVector<reflection::Schema> schema =
-      aos::FileToFlatbuffer<reflection::Schema>(FLAGS_reflection_bfbs);
+      aos::FileToFlatbuffer<reflection::Schema>(
+          absl::GetFlag(FLAGS_reflection_bfbs));
   aos::util::WriteStringToFileOrDie(
-      FLAGS_output_file,
-      GenerateCodeForRootTableFile(&schema.message(), FLAGS_base_file_name));
+      absl::GetFlag(FLAGS_output_file),
+      GenerateCodeForRootTableFile(&schema.message(),
+                                   absl::GetFlag(FLAGS_base_file_name)));
   return EXIT_SUCCESS;
 }
 }  // namespace aos::fbs
