diff --git a/Library/Homebrew/cask/cmd/list.rb b/Library/Homebrew/cask/cmd/list.rb
index 5e8e79c637818480a6e98cc3d7bae7d77a447070..87098cf91755f3668be4dec17281d153893225a2 100644
--- a/Library/Homebrew/cask/cmd/list.rb
+++ b/Library/Homebrew/cask/cmd/list.rb
@@ -1,5 +1,7 @@
 # frozen_string_literal: true
 
+require "cask/artifact/relocated"
+
 module Cask
   class Cmd
     class List < AbstractCommand
@@ -48,17 +50,23 @@ module Cask
         elsif versions
           puts output.map(&method(:format_versioned))
         elsif !output.empty? && casks.any?
-          puts output.map(&method(:list_artifacts))
+          output.map(&method(:list_artifacts))
         elsif !output.empty?
           puts Formatter.columns(output.map(&:to_s))
         end
       end
 
       def self.list_artifacts(cask)
-        cask.artifacts.group_by(&:class).each do |klass, artifacts|
-          next unless klass.respond_to?(:english_description)
+        cask.artifacts.group_by(&:class).sort_by { |klass, _| klass.english_name }.each do |klass, artifacts|
+          next if [Artifact::Uninstall, Artifact::Zap].include? klass
+
+          ohai klass.english_name
+          artifacts.each do |artifact|
+            puts artifact.summarize_installed if artifact.respond_to?(:summarize_installed)
+            next if artifact.respond_to?(:summarize_installed)
 
-          return "==> #{klass.english_description}", artifacts.map(&:summarize_installed)
+            puts artifact
+          end
         end
       end
 
diff --git a/Library/Homebrew/test/cask/cmd/list_spec.rb b/Library/Homebrew/test/cask/cmd/list_spec.rb
index 775b6787c219e8aaa3c16efc6d8e78f3643f8b4c..5ae6ed8f10156c7323b83d93733c191a0ab93ea0 100644
--- a/Library/Homebrew/test/cask/cmd/list_spec.rb
+++ b/Library/Homebrew/test/cask/cmd/list_spec.rb
@@ -126,9 +126,9 @@ describe Cask::Cmd::List, :cask do
       expect {
         described_class.run("local-transmission", "local-caffeine")
       }.to output(<<~EOS).to_stdout
-        ==> Apps
+        ==> App
         #{transmission.config.appdir.join("Transmission.app")} (#{transmission.config.appdir.join("Transmission.app").abv})
-        ==> Apps
+        ==> App
         Missing App: #{caffeine.config.appdir.join("Caffeine.app")}
       EOS
     end