diff --git a/cmd/xbus.go b/cmd/xbus.go
index 2f6044b42451d1e6786f7f847043cf99b02f260d_Y21kL3hidXMuZ28=..f63320edc50f3c5389e1605854d2ab26baf5e74a_Y21kL3hidXMuZ28= 100644
--- a/cmd/xbus.go
+++ b/cmd/xbus.go
@@ -20,6 +20,7 @@
 	}
 
 	SetupXbusServeCmd(program, c)
+	SetupXbusActorListCmd(program, c)
 
 	return &cmd
 }
diff --git a/cmd/xbus_actor_list.go b/cmd/xbus_actor_list.go
new file mode 100644
index 0000000000000000000000000000000000000000..f63320edc50f3c5389e1605854d2ab26baf5e74a_Y21kL3hidXNfYWN0b3JfbGlzdC5nbw==
--- /dev/null
+++ b/cmd/xbus_actor_list.go
@@ -0,0 +1,37 @@
+package cmd
+
+import (
+	"fmt"
+
+	"github.com/jessevdk/go-flags"
+)
+
+func SetupXbusActorListCmd[E any](program *Program[E], cmd *flags.Command) *XbusActorListCmd[E] {
+	serveCmd := XbusActorListCmd[E]{
+		program: program,
+	}
+
+	_, err := cmd.AddCommand("actor-list", "List all the available actor services", "", &serveCmd)
+	if err != nil {
+		panic(err)
+	}
+
+	return &serveCmd
+}
+
+//nolint:lll
+type XbusActorListCmd[E any] struct {
+	program *Program[E]
+}
+
+func (cmd *XbusActorListCmd[E]) Execute([]string) error {
+
+	fmt.Printf("The following actor services are provided by %s:\n", cmd.program.Name)
+	for _, ff := range cmd.program.setupXbusActors {
+		for _, factory := range ff(cmd.program) {
+			fmt.Println("*", factory.Name)
+		}
+	}
+
+	return nil
+}