diff --git a/src/main/java/gay/ampflower/maven/Config.java b/src/main/java/gay/ampflower/maven/Config.java
index 114bfb3..127e4c3 100644
--- a/src/main/java/gay/ampflower/maven/Config.java
+++ b/src/main/java/gay/ampflower/maven/Config.java
@@ -194,6 +194,21 @@ public void createHost(String host, Path path) {
 		hosts.put(host, new Host(path));
 	}
 
+	public boolean renameHost(String host, String name) {
+		if (hosts.containsKey(name)) {
+			return false;
+		}
+
+		var renamed = hosts.remove(host);
+		if (renamed == null) {
+			return false;
+		}
+
+		hosts.put(name, renamed);
+
+		return true;
+	}
+
 	public boolean deleteHost(String host) {
 		return hosts.remove(host) != null;
 	}
diff --git a/src/main/java/gay/ampflower/maven/Console.java b/src/main/java/gay/ampflower/maven/Console.java
index 6e696c7..0087113 100644
--- a/src/main/java/gay/ampflower/maven/Console.java
+++ b/src/main/java/gay/ampflower/maven/Console.java
@@ -172,6 +172,18 @@ private static void registerHostCommand(CommandDispatcher<Console> dispatcher) {
 						logger.info("No such host.");
 						return 0;
 					}
+				}))).then(literal("rename").then(argument("name", string()).executes(ctx -> {
+					var name = host(ctx, "name");
+					var old = ctx.getSource().host;
+
+					if (ctx.getSource().config.renameHost(old, name)) {
+						ctx.getSource().host = name;
+						logger.info("Renamed {} to {}", old, name);
+						return Command.SINGLE_SUCCESS;
+					} else {
+						logger.info("Either {} doesn't exist or {} already exists", old, name);
+						return 0;
+					}
 				}))).then(literal("import").then(literal("legacy").then(argument("name", string())
 						.then(argument("maven", string()).then(argument("config", greedyString()).executes(ctx -> {
 							try {