diff --git a/Library/Homebrew/development_tools.rb b/Library/Homebrew/development_tools.rb
index bec90038b1ad58e3dcbfea401d4a8ca39c1d31f8..b64c7b93124353f46ee44525060dc2ea94a4d360 100644
--- a/Library/Homebrew/development_tools.rb
+++ b/Library/Homebrew/development_tools.rb
@@ -99,6 +99,15 @@ class DevelopmentTools
     def subversion_handles_most_https_certificates?
       true
     end
+
+    def build_system_info
+      {
+        "os"         => ENV["HOMEBREW_SYSTEM"],
+        "os_version" => OS_VERSION,
+        "cpu_family" => Hardware::CPU.family,
+      }
+    end
+    alias generic_build_system_info build_system_info
   end
 end
 
diff --git a/Library/Homebrew/extend/os/mac/development_tools.rb b/Library/Homebrew/extend/os/mac/development_tools.rb
index e1b1d0e87b41e6b02f424bb9e3bbf12ec8d4892d..787196472a530c949dc43c962c8be27dcd61d7c5 100644
--- a/Library/Homebrew/extend/os/mac/development_tools.rb
+++ b/Library/Homebrew/extend/os/mac/development_tools.rb
@@ -56,5 +56,13 @@ class DevelopmentTools
           brew install gcc
       EOS
     end
+
+    def build_system_info
+      build_info = {
+        "xcode" => MacOS::Xcode.version.to_s.presence,
+        "clt"   => MacOS::CLT.version.to_s.presence,
+      }
+      generic_build_system_info.merge build_info
+    end
   end
 end
diff --git a/Library/Homebrew/tab.rb b/Library/Homebrew/tab.rb
index 8a3bdb13a1553d618d6fdc36e97b9382db0ba407..d146533e5ff0a09c97ccb3db6c471943e78c9b31 100644
--- a/Library/Homebrew/tab.rb
+++ b/Library/Homebrew/tab.rb
@@ -36,6 +36,7 @@ class Tab < OpenStruct
       "stdlib"                  => stdlib,
       "aliases"                 => formula.aliases,
       "runtime_dependencies"    => Tab.runtime_deps_hash(runtime_deps),
+      "arch"                    => Hardware::CPU.arch,
       "source"                  => {
         "path"     => formula.specified_path.to_s,
         "tap"      => formula.tap&.name,
@@ -47,6 +48,7 @@ class Tab < OpenStruct
           "version_scheme" => formula.version_scheme,
         },
       },
+      "built_on"                => DevelopmentTools.build_system_info,
     }
 
     new(attributes)
@@ -198,6 +200,7 @@ class Tab < OpenStruct
           "version_scheme" => 0,
         },
       },
+      "built_on"                => DevelopmentTools.generic_build_system_info,
     }
 
     new(attributes)
@@ -344,6 +347,7 @@ class Tab < OpenStruct
       "aliases"                 => aliases,
       "runtime_dependencies"    => runtime_dependencies,
       "source"                  => source,
+      "built_on"                => built_on,
     }
 
     JSON.generate(attributes, options)
diff --git a/Library/Homebrew/test/caveats_spec.rb b/Library/Homebrew/test/caveats_spec.rb
index ff010ff16155e2fa0daa67d9b672ca9ba3b1b389..b0ed28814d0b82b2151c2f07148eb9d4d6ce19b3 100644
--- a/Library/Homebrew/test/caveats_spec.rb
+++ b/Library/Homebrew/test/caveats_spec.rb
@@ -120,7 +120,7 @@ describe Caveats do
             "plist_test.plist"
           end
         end
-        allow(ENV).to receive(:[]).with("TMUX").and_return(true)
+        ENV["TMUX"] = "1"
         allow(Homebrew).to receive(:_system).with("/usr/bin/pbpaste").and_return(false)
         caveats = described_class.new(f).caveats