diff --git a/tools/gn/command_args.cc b/tools/gn/command_args.cc
index 2772fc2..2a24510 100644
--- a/tools/gn/command_args.cc
+++ b/tools/gn/command_args.cc
@@ -36,6 +36,7 @@
 
 const char kSwitchList[] = "list";
 const char kSwitchShort[] = "short";
+const char kSwitchOverridesOnly[] = "overrides-only";
 
 bool DoesLineBeginWithComment(const base::StringPiece& line) {
   // Skip whitespace.
@@ -171,9 +172,15 @@
     args.insert(preserved);
   }
 
+  // Cache this to avoid looking it up for each |arg| in the loops below.
+  const bool overrides_only =
+      base::CommandLine::ForCurrentProcess()->HasSwitch(kSwitchOverridesOnly);
+
   if (base::CommandLine::ForCurrentProcess()->HasSwitch(kSwitchShort)) {
     // Short <key>=<current_value> output.
     for (const auto& arg : args) {
+      if (overrides_only && !arg.second.has_override)
+        continue;
       OutputString(arg.first.as_string());
       OutputString(" = ");
       if (arg.second.has_override)
@@ -187,6 +194,8 @@
 
   // Long output.
   for (const auto& arg : args) {
+    if (overrides_only && !arg.second.has_override)
+      continue;
     PrintArgHelp(arg.first, arg.second);
     OutputString("\n");
   }
@@ -323,7 +332,7 @@
 extern const char kArgs_HelpShort[] =
     "args: Display or configure arguments declared by the build.";
 extern const char kArgs_Help[] =
-    R"(gn args <out_dir> [--list] [--short] [--args]
+    R"(gn args <out_dir> [--list] [--short] [--args] [--overrides-only]
 
   See also "gn help buildargs" for a more high-level overview of how
   build arguments work.
@@ -345,7 +354,7 @@
       Note: you can edit the build args manually by editing the file "args.gn"
       in the build directory and then running "gn gen <out_dir>".
 
-  gn args <out_dir> --list[=<exact_arg>] [--short]
+  gn args <out_dir> --list[=<exact_arg>] [--short] [--overrides-only]
       Lists all build arguments available in the current configuration, or, if
       an exact_arg is specified for the list flag, just that one build
       argument.
@@ -357,6 +366,11 @@
       If --short is specified, only the names and current values will be
       printed.
 
+      If --overrides-only is specified, only the names and current values of
+      arguments that have been overridden (i.e. non-default arguments) will
+      be printed. Overrides come from the <out_dir>/args.gn file and //.gn
+
+
 Examples
 
   gn args out/Debug
@@ -366,6 +380,9 @@
     Prints all arguments with their default values for the out/Debug
     build.
 
+  gn args out/Debug --list --short --overrides-only
+    Prints overridden arguments for the out/Debug build.
+
   gn args out/Debug --list=target_cpu
     Prints information about the "target_cpu" argument for the "
    "out/Debug
