diff --git a/cmd/gomote/destroy.go b/cmd/gomote/destroy.go
index 315c811..2337b3e 100644
--- a/cmd/gomote/destroy.go
+++ b/cmd/gomote/destroy.go
@@ -5,15 +5,17 @@
 package main
 
 import (
+	"context"
 	"flag"
 	"fmt"
 	"log"
 	"os"
 
 	"golang.org/x/build/buildlet"
+	"golang.org/x/build/internal/gomote/protos"
 )
 
-func destroy(args []string) error {
+func legacyDestroy(args []string) error {
 	fs := flag.NewFlagSet("destroy", flag.ContinueOnError)
 	fs.Usage = func() {
 		fmt.Fprintln(os.Stderr, "destroy usage: gomote destroy <instance>")
@@ -49,3 +51,40 @@
 	}
 	return bc.Close()
 }
+
+func destroy(args []string) error {
+	fs := flag.NewFlagSet("destroy", flag.ContinueOnError)
+	fs.Usage = func() {
+		fmt.Fprintln(os.Stderr, "destroy usage: gomote destroy <instance>")
+		fs.PrintDefaults()
+		if fs.NArg() == 0 {
+			// List buildlets that you might want to destroy.
+			client := gomoteServerClient(context.Background())
+			resp, err := client.ListInstances(context.Background(), &protos.ListInstancesRequest{})
+			if err != nil {
+				log.Fatalf("unable to list possible instances to destroy: %s", statusFromError(err))
+			}
+			if len(resp.GetInstances()) > 0 {
+				fmt.Printf("possible instances:\n")
+				for _, inst := range resp.GetInstances() {
+					fmt.Printf("\t%s\n", inst.GetGomoteId())
+				}
+			}
+		}
+		os.Exit(1)
+	}
+
+	fs.Parse(args)
+	if fs.NArg() != 1 {
+		fs.Usage()
+	}
+	name := fs.Arg(0)
+	ctx := context.Background()
+	client := gomoteServerClient(ctx)
+	if _, err := client.DestroyInstance(ctx, &protos.DestroyInstanceRequest{
+		GomoteId: name,
+	}); err != nil {
+		return fmt.Errorf("unable to destroy instance: %s", statusFromError(err))
+	}
+	return nil
+}
diff --git a/cmd/gomote/gomote.go b/cmd/gomote/gomote.go
index d55bc6e..0a93d02 100644
--- a/cmd/gomote/gomote.go
+++ b/cmd/gomote/gomote.go
@@ -150,7 +150,7 @@
 
 func registerCommands() {
 	registerCommand("create", "create a buildlet; with no args, list types of buildlets", legacyCreate)
-	registerCommand("destroy", "destroy a buildlet", destroy)
+	registerCommand("destroy", "destroy a buildlet", legacyDestroy)
 	registerCommand("gettar", "extract a tar.gz from a buildlet", getTar)
 	registerCommand("ls", "list the contents of a directory on a buildlet", ls)
 	registerCommand("list", "list active buildlets", list)
@@ -216,7 +216,8 @@
 // version2 manages how version 2 subcommands are called.
 func version2(args []string) error {
 	cm := map[string]subCommand{
-		"create": create,
+		"create":  create,
+		"destroy": destroy,
 	}
 	if len(args) == 0 {
 		usage()
