diff --git a/metropolis/cli/metroctl/BUILD.bazel b/metropolis/cli/metroctl/BUILD.bazel
index a84ae03..9eb0aa4 100644
--- a/metropolis/cli/metroctl/BUILD.bazel
+++ b/metropolis/cli/metroctl/BUILD.bazel
@@ -43,7 +43,6 @@
     deps = [
         "//go/clitable",
         "//metropolis/cli/metroctl/core",
-        "//metropolis/cli/pkg/context",
         "//metropolis/node/core/identity",
         "//metropolis/node/core/rpc",
         "//metropolis/node/core/rpc/resolver",
diff --git a/metropolis/cli/metroctl/cmd_install.go b/metropolis/cli/metroctl/cmd_install.go
index fdc51b0..fc463b4 100644
--- a/metropolis/cli/metroctl/cmd_install.go
+++ b/metropolis/cli/metroctl/cmd_install.go
@@ -7,6 +7,7 @@
 	_ "embed"
 	"log"
 	"os"
+	"os/signal"
 	"strings"
 
 	"github.com/bazelbuild/rules_go/go/runfiles"
@@ -16,7 +17,6 @@
 	cpb "source.monogon.dev/metropolis/proto/common"
 
 	"source.monogon.dev/metropolis/cli/metroctl/core"
-	clicontext "source.monogon.dev/metropolis/cli/pkg/context"
 	"source.monogon.dev/metropolis/pkg/blkio"
 	"source.monogon.dev/metropolis/pkg/fat32"
 )
@@ -63,7 +63,7 @@
 		log.Fatalf("Invalid --bootstrap-storage-security (must be one of: permissive, needs-encryption, needs-encryption-and-authentication, needs-insecure)")
 	}
 
-	ctx := clicontext.WithInterrupt(context.Background())
+	ctx, _ := signal.NotifyContext(context.Background(), os.Interrupt)
 
 	if err := os.MkdirAll(flags.configPath, 0700); err != nil && !os.IsExist(err) {
 		log.Fatalf("Failed to create config directory: %v", err)
diff --git a/metropolis/cli/metroctl/cmd_k8s_configure.go b/metropolis/cli/metroctl/cmd_k8s_configure.go
index 7e8d771..c238cdf 100644
--- a/metropolis/cli/metroctl/cmd_k8s_configure.go
+++ b/metropolis/cli/metroctl/cmd_k8s_configure.go
@@ -5,11 +5,11 @@
 	"log"
 	"os"
 	"os/exec"
+	"os/signal"
 
 	"github.com/spf13/cobra"
 
 	"source.monogon.dev/metropolis/cli/metroctl/core"
-	clicontext "source.monogon.dev/metropolis/cli/pkg/context"
 )
 
 var k8sCommand = &cobra.Command{
@@ -28,7 +28,7 @@
 }
 
 func doK8sConfigure(cmd *cobra.Command, _ []string) {
-	ctx := clicontext.WithInterrupt(context.Background())
+	ctx, _ := signal.NotifyContext(context.Background(), os.Interrupt)
 	if len(flags.clusterEndpoints) < 1 {
 		log.Fatalf("k8s configure requires at least one cluster endpoint to be provided with the --endpoints parameter.")
 	}
diff --git a/metropolis/cli/metroctl/cmd_node.go b/metropolis/cli/metroctl/cmd_node.go
index ebfaa25..19440b6 100644
--- a/metropolis/cli/metroctl/cmd_node.go
+++ b/metropolis/cli/metroctl/cmd_node.go
@@ -7,6 +7,7 @@
 	"io"
 	"log"
 	"os"
+	"os/signal"
 	"strings"
 	"sync"
 	"time"
@@ -16,7 +17,6 @@
 
 	"source.monogon.dev/go/clitable"
 	"source.monogon.dev/metropolis/cli/metroctl/core"
-	clicontext "source.monogon.dev/metropolis/cli/pkg/context"
 	"source.monogon.dev/metropolis/node/core/identity"
 	"source.monogon.dev/version"
 
@@ -33,7 +33,7 @@
 	Use:     "describe [node-id] [--filter] [--output] [--format]",
 	Example: "metroctl node describe metropolis-c556e31c3fa2bf0a36e9ccb9fd5d6056",
 	Run: func(cmd *cobra.Command, args []string) {
-		ctx := clicontext.WithInterrupt(context.Background())
+		ctx, _ := signal.NotifyContext(context.Background(), os.Interrupt)
 		cc := dialAuthenticated(ctx)
 		mgmt := apb.NewManagementClient(cc)
 
@@ -52,7 +52,7 @@
 	Use:     "list [node-id] [--filter] [--output] [--format]",
 	Example: "metroctl node list --filter node.status.external_address==\"10.8.0.2\"",
 	Run: func(cmd *cobra.Command, args []string) {
-		ctx := clicontext.WithInterrupt(context.Background())
+		ctx, _ := signal.NotifyContext(context.Background(), os.Interrupt)
 		cc := dialAuthenticated(ctx)
 		mgmt := apb.NewManagementClient(cc)
 
@@ -106,7 +106,7 @@
 		}
 		unavailableSemaphore := semaphore.NewWeighted(int64(maxUnavailable))
 
-		ctx := clicontext.WithInterrupt(context.Background())
+		ctx, _ := signal.NotifyContext(context.Background(), os.Interrupt)
 
 		cacert, err := core.GetClusterCAWithTOFU(ctx, connectOptions())
 		if err != nil {
@@ -234,7 +234,7 @@
 			return err
 		}
 
-		ctx := clicontext.WithInterrupt(context.Background())
+		ctx, _ := signal.NotifyContext(context.Background(), os.Interrupt)
 		mgmt := apb.NewManagementClient(dialAuthenticated(ctx))
 
 		nodes, err := core.GetNodes(ctx, mgmt, fmt.Sprintf("node.id==%q", args[0]))
diff --git a/metropolis/cli/metroctl/cmd_node_approve.go b/metropolis/cli/metroctl/cmd_node_approve.go
index 41c6f24..62ab7bd 100644
--- a/metropolis/cli/metroctl/cmd_node_approve.go
+++ b/metropolis/cli/metroctl/cmd_node_approve.go
@@ -4,11 +4,12 @@
 	"context"
 	"fmt"
 	"log"
+	"os"
+	"os/signal"
 
 	"github.com/spf13/cobra"
 
 	"source.monogon.dev/metropolis/cli/metroctl/core"
-	clicontext "source.monogon.dev/metropolis/cli/pkg/context"
 	"source.monogon.dev/metropolis/node/core/identity"
 	"source.monogon.dev/metropolis/proto/api"
 )
@@ -35,7 +36,7 @@
 }
 
 func doApprove(cmd *cobra.Command, args []string) {
-	ctx := clicontext.WithInterrupt(context.Background())
+	ctx, _ := signal.NotifyContext(context.Background(), os.Interrupt)
 	cc := dialAuthenticated(ctx)
 	mgmt := api.NewManagementClient(cc)
 
diff --git a/metropolis/cli/metroctl/cmd_node_set.go b/metropolis/cli/metroctl/cmd_node_set.go
index b0bfaf5..5d465f5 100644
--- a/metropolis/cli/metroctl/cmd_node_set.go
+++ b/metropolis/cli/metroctl/cmd_node_set.go
@@ -3,11 +3,12 @@
 import (
 	"context"
 	"log"
+	"os"
+	"os/signal"
 	"strings"
 
 	"github.com/spf13/cobra"
 
-	clicontext "source.monogon.dev/metropolis/cli/pkg/context"
 	"source.monogon.dev/metropolis/proto/api"
 )
 
@@ -46,7 +47,7 @@
 }
 
 func doAdd(cmd *cobra.Command, args []string) {
-	ctx := clicontext.WithInterrupt(context.Background())
+	ctx, _ := signal.NotifyContext(context.Background(), os.Interrupt)
 	cc := dialAuthenticated(ctx)
 	mgmt := api.NewManagementClient(cc)
 
@@ -84,7 +85,7 @@
 }
 
 func doRemove(cmd *cobra.Command, args []string) {
-	ctx := clicontext.WithInterrupt(context.Background())
+	ctx, _ := signal.NotifyContext(context.Background(), os.Interrupt)
 	cc := dialAuthenticated(ctx)
 	mgmt := api.NewManagementClient(cc)
 
diff --git a/metropolis/cli/metroctl/cmd_takeownership.go b/metropolis/cli/metroctl/cmd_takeownership.go
index 5161dc9..30b9f08 100644
--- a/metropolis/cli/metroctl/cmd_takeownership.go
+++ b/metropolis/cli/metroctl/cmd_takeownership.go
@@ -6,12 +6,12 @@
 	"log"
 	"os"
 	"os/exec"
+	"os/signal"
 
 	"github.com/spf13/cobra"
 	"google.golang.org/grpc"
 
 	"source.monogon.dev/metropolis/cli/metroctl/core"
-	clicontext "source.monogon.dev/metropolis/cli/pkg/context"
 	"source.monogon.dev/metropolis/node/core/rpc"
 	"source.monogon.dev/metropolis/node/core/rpc/resolver"
 	apb "source.monogon.dev/metropolis/proto/api"
@@ -29,7 +29,7 @@
 }
 
 func doTakeOwnership(cmd *cobra.Command, _ []string) {
-	ctx := clicontext.WithInterrupt(context.Background())
+	ctx, _ := signal.NotifyContext(context.Background(), os.Interrupt)
 	if len(flags.clusterEndpoints) != 1 {
 		log.Fatalf("takeownership requires a single cluster endpoint to be provided with the --endpoints parameter.")
 	}
diff --git a/metropolis/cli/pkg/context/BUILD.bazel b/metropolis/cli/pkg/context/BUILD.bazel
deleted file mode 100644
index 2418a82..0000000
--- a/metropolis/cli/pkg/context/BUILD.bazel
+++ /dev/null
@@ -1,8 +0,0 @@
-load("@io_bazel_rules_go//go:def.bzl", "go_library")
-
-go_library(
-    name = "context",
-    srcs = ["context.go"],
-    importpath = "source.monogon.dev/metropolis/cli/pkg/context",
-    visibility = ["//visibility:public"],
-)
diff --git a/metropolis/cli/pkg/context/context.go b/metropolis/cli/pkg/context/context.go
deleted file mode 100644
index bad24ea..0000000
--- a/metropolis/cli/pkg/context/context.go
+++ /dev/null
@@ -1,21 +0,0 @@
-package clicontext
-
-import (
-	"context"
-	"os"
-	"os/signal"
-)
-
-// WithInterrupt returns a context for use in a command-line utility. It gets
-// cancelled if the user interrupts the command, for example by pressing
-// Ctrl+C.
-func WithInterrupt(parent context.Context) context.Context {
-	ctx, cancel := context.WithCancel(parent)
-	c := make(chan os.Signal, 1)
-	signal.Notify(c, os.Interrupt)
-	go func() {
-		<-c
-		cancel()
-	}()
-	return ctx
-}
