diff --git a/metropolis/test/launch/cli/launch-multi2/BUILD.bazel b/metropolis/test/launch/cli/launch-multi2/BUILD.bazel
index 91efdd7..51118cf 100644
--- a/metropolis/test/launch/cli/launch-multi2/BUILD.bazel
+++ b/metropolis/test/launch/cli/launch-multi2/BUILD.bazel
@@ -5,14 +5,7 @@
     srcs = ["main.go"],
     importpath = "source.monogon.dev/metropolis/test/launch/cli/launch-multi2",
     visibility = ["//visibility:private"],
-    deps = [
-        "//metropolis/node:go_default_library",
-        "//metropolis/pkg/logbuffer:go_default_library",
-        "//metropolis/proto/api:go_default_library",
-        "//metropolis/test/launch:go_default_library",
-        "@com_github_grpc_ecosystem_go_grpc_middleware//retry:go_default_library",
-        "@org_golang_google_grpc//:go_default_library",
-    ],
+    deps = ["//metropolis/pkg/logbuffer:go_default_library"],
 )
 
 go_binary(
diff --git a/metropolis/test/launch/cli/launch-multi2/main.go b/metropolis/test/launch/cli/launch-multi2/main.go
index a2e00bc..d6c5f05 100644
--- a/metropolis/test/launch/cli/launch-multi2/main.go
+++ b/metropolis/test/launch/cli/launch-multi2/main.go
@@ -17,22 +17,12 @@
 package main
 
 import (
-	"context"
 	"fmt"
 	"io"
 	"log"
 	"os"
-	"os/signal"
-	"syscall"
-	"time"
 
-	grpcretry "github.com/grpc-ecosystem/go-grpc-middleware/retry"
-	"google.golang.org/grpc"
-
-	common "source.monogon.dev/metropolis/node"
 	"source.monogon.dev/metropolis/pkg/logbuffer"
-	apb "source.monogon.dev/metropolis/proto/api"
-	"source.monogon.dev/metropolis/test/launch"
 )
 
 // prefixedStdout is a os.Stdout proxy that prefixes every line with a constant
@@ -57,77 +47,5 @@
 }
 
 func main() {
-	sigs := make(chan os.Signal, 1)
-	signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM)
-	ctx, cancel := context.WithCancel(context.Background())
-	go func() {
-		<-sigs
-		cancel()
-	}()
-	sw0, vm0, err := launch.NewSocketPair()
-	if err != nil {
-		log.Fatalf("Failed to create network pipe: %v\n", err)
-	}
-	sw1, vm1, err := launch.NewSocketPair()
-	if err != nil {
-		log.Fatalf("Failed to create network pipe: %v\n", err)
-	}
-
-	go func() {
-		if err := launch.Launch(ctx, launch.Options{
-			ConnectToSocket: vm0,
-			SerialPort:      prefixedStdout("1| "),
-		}); err != nil {
-			log.Fatalf("Failed to launch vm0: %v", err)
-		}
-	}()
-	nanoswitchPortMap := make(launch.PortMap)
-	identityPorts := []uint16{
-		common.ExternalServicePort,
-		common.DebugServicePort,
-		common.KubernetesAPIPort,
-	}
-	for _, port := range identityPorts {
-		nanoswitchPortMap[port] = port
-	}
-	go func() {
-		opts := []grpcretry.CallOption{
-			grpcretry.WithBackoff(grpcretry.BackoffExponential(100 * time.Millisecond)),
-		}
-		conn, err := nanoswitchPortMap.DialGRPC(common.DebugServicePort, grpc.WithInsecure(),
-			grpc.WithUnaryInterceptor(grpcretry.UnaryClientInterceptor(opts...)))
-		if err != nil {
-			panic(err)
-		}
-		defer conn.Close()
-		debug := apb.NewNodeDebugServiceClient(conn)
-		res, err := debug.GetGoldenTicket(ctx, &apb.GetGoldenTicketRequest{
-			// HACK: this is assigned by DHCP, and we assume that everything goes well.
-			ExternalIp: "10.1.0.3",
-		}, grpcretry.WithMax(10))
-		if err != nil {
-			log.Fatalf("Failed to get golden ticket: %v", err)
-		}
-
-		ec := &apb.EnrolmentConfig{
-			GoldenTicket: res.Ticket,
-		}
-
-		if err := launch.Launch(ctx, launch.Options{
-			ConnectToSocket: vm1,
-			EnrolmentConfig: ec,
-			SerialPort:      prefixedStdout("2| "),
-		}); err != nil {
-			log.Fatalf("Failed to launch vm1: %v", err)
-		}
-	}()
-	if err := launch.RunMicroVM(ctx, &launch.MicroVMOptions{
-		SerialPort:             os.Stdout,
-		KernelPath:             "metropolis/test/ktest/linux-testing.elf",
-		InitramfsPath:          "metropolis/test/nanoswitch/initramfs.lz4",
-		ExtraNetworkInterfaces: []*os.File{sw0, sw1},
-		PortMap:                nanoswitchPortMap,
-	}); err != nil {
-		log.Fatalf("Failed to launch nanoswitch: %v", err)
-	}
+	log.Fatal("unimplemented")
 }
