diff --git a/src/main/java/pw/kaboom/extras/commands/CommandRainbow.java b/src/main/java/pw/kaboom/extras/commands/CommandRainbow.java
new file mode 100644
index 0000000..974674a
--- /dev/null
+++ b/src/main/java/pw/kaboom/extras/commands/CommandRainbow.java
@@ -0,0 +1,31 @@
+package pw.kaboom.extras.commands;
+
+import net.kyori.adventure.text.Component;
+import net.kyori.adventure.text.format.NamedTextColor;
+import net.kyori.adventure.text.minimessage.MiniMessage;
+import org.bukkit.Bukkit;
+import org.bukkit.ChatColor;
+import org.bukkit.command.Command;
+import org.bukkit.command.CommandExecutor;
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
+
+import javax.annotation.Nonnull;
+
+public final class CommandRainbow implements CommandExecutor {
+    private static MiniMessage mm = MiniMessage.miniMessage();
+    public boolean onCommand(final @Nonnull CommandSender sender,
+                             final @Nonnull Command command,
+                             final @Nonnull String label,
+                             final String[] args) {
+        if (args.length == 0) {
+            sender.sendMessage(Component
+                    .text("Usage: /" + label + " <message ..>",
+                            NamedTextColor.RED));
+            return true;
+        }
+        if(!(sender instanceof Player)) return false;
+        Bukkit.getServer().broadcast(mm.deserialize("<rainbow>"+mm.stripTags(String.join(" ", args))));
+        return true;
+    }
+}