diff --git a/metropolis/cli/metroctl/table_node.go b/metropolis/cli/metroctl/table_node.go
new file mode 100644
index 0000000..e58ad32
--- /dev/null
+++ b/metropolis/cli/metroctl/table_node.go
@@ -0,0 +1,39 @@
+package main
+
+import (
+	"fmt"
+	"sort"
+	"strings"
+
+	"source.monogon.dev/metropolis/node/core/identity"
+	apb "source.monogon.dev/metropolis/proto/api"
+)
+
+func nodeEntry(n *apb.Node) entry {
+	res := entry{}
+
+	res.add("node id", identity.NodeID(n.Pubkey))
+	state := n.State.String()
+	state = strings.ReplaceAll(state, "NODE_STATE_", "")
+	res.add("state", state)
+	res.add("address", n.Status.ExternalAddress)
+	res.add("health", n.Health.String())
+
+	var roles []string
+	if n.Roles.ConsensusMember != nil {
+		roles = append(roles, "ConsensusMember")
+	}
+	if n.Roles.KubernetesController != nil {
+		roles = append(roles, "KubernetesController")
+	}
+	if n.Roles.KubernetesWorker != nil {
+		roles = append(roles, "KubernetesWorker")
+	}
+	sort.Strings(roles)
+	res.add("roles", strings.Join(roles, ","))
+
+	tshs := n.TimeSinceHeartbeat.GetSeconds()
+	res.add("heartbeat", fmt.Sprintf("%ds", tshs))
+
+	return res
+}
