diff --git a/cloud/bmaas/scruffy/cmd/BUILD.bazel b/cloud/bmaas/scruffy/cmd/BUILD.bazel
index 1a372e7..1d919b4 100644
--- a/cloud/bmaas/scruffy/cmd/BUILD.bazel
+++ b/cloud/bmaas/scruffy/cmd/BUILD.bazel
@@ -5,10 +5,7 @@
     srcs = ["main.go"],
     importpath = "source.monogon.dev/cloud/bmaas/scruffy/cmd",
     visibility = ["//visibility:private"],
-    deps = [
-        "//cloud/bmaas/scruffy",
-        "//metropolis/cli/pkg/context",
-    ],
+    deps = ["//cloud/bmaas/scruffy"],
 )
 
 go_binary(
diff --git a/cloud/bmaas/scruffy/cmd/main.go b/cloud/bmaas/scruffy/cmd/main.go
index e838834..b675fda 100644
--- a/cloud/bmaas/scruffy/cmd/main.go
+++ b/cloud/bmaas/scruffy/cmd/main.go
@@ -3,9 +3,10 @@
 import (
 	"context"
 	"flag"
+	"os"
+	"os/signal"
 
 	"source.monogon.dev/cloud/bmaas/scruffy"
-	clicontext "source.monogon.dev/metropolis/cli/pkg/context"
 )
 
 func main() {
@@ -13,7 +14,7 @@
 	s.Config.RegisterFlags()
 	flag.Parse()
 
-	ctx := clicontext.WithInterrupt(context.Background())
+	ctx, _ := signal.NotifyContext(context.Background(), os.Interrupt)
 	s.Start(ctx)
 	<-ctx.Done()
 }
diff --git a/cloud/bmaas/server/cmd/BUILD.bazel b/cloud/bmaas/server/cmd/BUILD.bazel
index 958f2c4..9f3ce58 100644
--- a/cloud/bmaas/server/cmd/BUILD.bazel
+++ b/cloud/bmaas/server/cmd/BUILD.bazel
@@ -8,7 +8,6 @@
     visibility = ["//visibility:private"],
     deps = [
         "//cloud/bmaas/server",
-        "//metropolis/cli/pkg/context",
         "@io_k8s_klog_v2//:klog",
     ],
 )
diff --git a/cloud/bmaas/server/cmd/main.go b/cloud/bmaas/server/cmd/main.go
index dd99205..8dbb7f8 100644
--- a/cloud/bmaas/server/cmd/main.go
+++ b/cloud/bmaas/server/cmd/main.go
@@ -3,11 +3,12 @@
 import (
 	"context"
 	"flag"
+	"os"
+	"os/signal"
 
 	"k8s.io/klog/v2"
 
 	"source.monogon.dev/cloud/bmaas/server"
-	clicontext "source.monogon.dev/metropolis/cli/pkg/context"
 )
 
 func main() {
@@ -18,7 +19,7 @@
 		klog.Exitf("unexpected positional arguments: %v", flag.Args())
 	}
 
-	ctx := clicontext.WithInterrupt(context.Background())
+	ctx, _ := signal.NotifyContext(context.Background(), os.Interrupt)
 	s.Start(ctx)
 	select {}
 }
diff --git a/cloud/equinix/cli/BUILD.bazel b/cloud/equinix/cli/BUILD.bazel
index da94d95..d10fdeb 100644
--- a/cloud/equinix/cli/BUILD.bazel
+++ b/cloud/equinix/cli/BUILD.bazel
@@ -13,7 +13,6 @@
     visibility = ["//visibility:private"],
     deps = [
         "//cloud/equinix/wrapngo",
-        "//metropolis/cli/pkg/context",
         "@com_github_packethost_packngo//:packngo",
         "@com_github_spf13_cobra//:cobra",
         "@io_k8s_klog_v2//:klog",
diff --git a/cloud/equinix/cli/cmd_delete.go b/cloud/equinix/cli/cmd_delete.go
index 056956e..97eb26f 100644
--- a/cloud/equinix/cli/cmd_delete.go
+++ b/cloud/equinix/cli/cmd_delete.go
@@ -2,6 +2,8 @@
 
 import (
 	"context"
+	"os"
+	"os/signal"
 	"time"
 
 	"github.com/packethost/packngo"
@@ -9,7 +11,6 @@
 	"k8s.io/klog/v2"
 
 	"source.monogon.dev/cloud/equinix/wrapngo"
-	clicontext "source.monogon.dev/metropolis/cli/pkg/context"
 )
 
 var deleteCmd = &cobra.Command{
@@ -24,7 +25,7 @@
 }
 
 func doDelete(cmd *cobra.Command, args []string) {
-	ctx := clicontext.WithInterrupt(context.Background())
+	ctx, _ := signal.NotifyContext(context.Background(), os.Interrupt)
 	api := wrapngo.New(&c)
 
 	klog.Infof("Listing devices for %q", args[0])
diff --git a/cloud/equinix/cli/cmd_move.go b/cloud/equinix/cli/cmd_move.go
index 770e480..ec32071 100644
--- a/cloud/equinix/cli/cmd_move.go
+++ b/cloud/equinix/cli/cmd_move.go
@@ -2,12 +2,13 @@
 
 import (
 	"context"
+	"os"
+	"os/signal"
 
 	"github.com/spf13/cobra"
 	"k8s.io/klog/v2"
 
 	"source.monogon.dev/cloud/equinix/wrapngo"
-	clicontext "source.monogon.dev/metropolis/cli/pkg/context"
 )
 
 var moveCmd = &cobra.Command{
@@ -22,7 +23,7 @@
 }
 
 func doMove(cmd *cobra.Command, args []string) {
-	ctx := clicontext.WithInterrupt(context.Background())
+	ctx, _ := signal.NotifyContext(context.Background(), os.Interrupt)
 	api := wrapngo.New(&c)
 
 	klog.Infof("Listing reservations for %q", args[0])
diff --git a/cloud/equinix/cli/cmd_reboot.go b/cloud/equinix/cli/cmd_reboot.go
index 7fcd35c..e788f01 100644
--- a/cloud/equinix/cli/cmd_reboot.go
+++ b/cloud/equinix/cli/cmd_reboot.go
@@ -2,12 +2,13 @@
 
 import (
 	"context"
+	"os"
+	"os/signal"
 
 	"github.com/spf13/cobra"
 	"k8s.io/klog/v2"
 
 	"source.monogon.dev/cloud/equinix/wrapngo"
-	clicontext "source.monogon.dev/metropolis/cli/pkg/context"
 )
 
 var rebootCmd = &cobra.Command{
@@ -22,7 +23,7 @@
 }
 
 func doReboot(cmd *cobra.Command, args []string) {
-	ctx := clicontext.WithInterrupt(context.Background())
+	ctx, _ := signal.NotifyContext(context.Background(), os.Interrupt)
 	api := wrapngo.New(&c)
 
 	klog.Infof("Requesting device list...")
diff --git a/cloud/equinix/cli/cmd_yoink.go b/cloud/equinix/cli/cmd_yoink.go
index bda9e82..c351d47 100644
--- a/cloud/equinix/cli/cmd_yoink.go
+++ b/cloud/equinix/cli/cmd_yoink.go
@@ -4,6 +4,7 @@
 	"bufio"
 	"context"
 	"os"
+	"os/signal"
 	"sort"
 	"strconv"
 	"strings"
@@ -13,7 +14,6 @@
 	"k8s.io/klog/v2"
 
 	"source.monogon.dev/cloud/equinix/wrapngo"
-	clicontext "source.monogon.dev/metropolis/cli/pkg/context"
 )
 
 var yoinkCmd = &cobra.Command{
@@ -73,7 +73,7 @@
 		klog.Exitf("missing metro flag")
 	}
 
-	ctx := clicontext.WithInterrupt(context.Background())
+	ctx, _ := signal.NotifyContext(context.Background(), os.Interrupt)
 	api := wrapngo.New(&c)
 
 	klog.Infof("Listing reservations for %q", srcProject)
diff --git a/cloud/shepherd/mini/BUILD.bazel b/cloud/shepherd/mini/BUILD.bazel
index 5fad3c2..f8a5e72 100644
--- a/cloud/shepherd/mini/BUILD.bazel
+++ b/cloud/shepherd/mini/BUILD.bazel
@@ -17,7 +17,6 @@
         "//cloud/shepherd",
         "//cloud/shepherd/manager",
         "//go/net/ssh",
-        "//metropolis/cli/pkg/context",
         "@io_k8s_klog_v2//:klog",
         "@org_golang_x_crypto//ssh",
     ],
diff --git a/cloud/shepherd/mini/main.go b/cloud/shepherd/mini/main.go
index b35c09e..0d7b11f 100644
--- a/cloud/shepherd/mini/main.go
+++ b/cloud/shepherd/mini/main.go
@@ -10,6 +10,7 @@
 	"net/http"
 	"net/url"
 	"os"
+	"os/signal"
 	"strings"
 
 	"k8s.io/klog/v2"
@@ -20,7 +21,6 @@
 	"source.monogon.dev/cloud/lib/component"
 	"source.monogon.dev/cloud/shepherd"
 	"source.monogon.dev/cloud/shepherd/manager"
-	clicontext "source.monogon.dev/metropolis/cli/pkg/context"
 )
 
 type Config struct {
@@ -133,7 +133,7 @@
 	registry := c.Component.PrometheusRegistry()
 	c.BMDB.EnableMetrics(registry)
 
-	ctx := clicontext.WithInterrupt(context.Background())
+	ctx, _ := signal.NotifyContext(context.Background(), os.Interrupt)
 	c.Component.StartPrometheus(ctx)
 
 	conn, err := c.BMDB.Open(true)
diff --git a/cloud/shepherd/provider/equinix/BUILD.bazel b/cloud/shepherd/provider/equinix/BUILD.bazel
index 4214f16..ef1ab53 100644
--- a/cloud/shepherd/provider/equinix/BUILD.bazel
+++ b/cloud/shepherd/provider/equinix/BUILD.bazel
@@ -21,7 +21,6 @@
         "//cloud/shepherd",
         "//cloud/shepherd/manager",
         "//go/net/ssh",
-        "//metropolis/cli/pkg/context",
         "@com_github_packethost_packngo//:packngo",
         "@io_k8s_klog_v2//:klog",
         "@org_golang_x_crypto//ssh",
diff --git a/cloud/shepherd/provider/equinix/main.go b/cloud/shepherd/provider/equinix/main.go
index 7faee9d..0fb28e1 100644
--- a/cloud/shepherd/provider/equinix/main.go
+++ b/cloud/shepherd/provider/equinix/main.go
@@ -6,6 +6,7 @@
 	"flag"
 	"fmt"
 	"os"
+	"os/signal"
 
 	"golang.org/x/crypto/ssh"
 	"k8s.io/klog/v2"
@@ -16,7 +17,6 @@
 	"source.monogon.dev/cloud/lib/component"
 	"source.monogon.dev/cloud/shepherd/manager"
 	ssh2 "source.monogon.dev/go/net/ssh"
-	clicontext "source.monogon.dev/metropolis/cli/pkg/context"
 )
 
 type Config struct {
@@ -72,7 +72,7 @@
 	registry := c.Component.PrometheusRegistry()
 	c.BMDB.EnableMetrics(registry)
 
-	ctx := clicontext.WithInterrupt(context.Background())
+	ctx, _ := signal.NotifyContext(context.Background(), os.Interrupt)
 	c.Component.StartPrometheus(ctx)
 
 	if c.API.APIKey == "" || c.API.User == "" {
