diff --git a/subsys/bluetooth/host/mesh/shell.c b/subsys/bluetooth/host/mesh/shell.c
index 93972aa..9cb2e3b 100644
--- a/subsys/bluetooth/host/mesh/shell.c
+++ b/subsys/bluetooth/host/mesh/shell.c
@@ -674,16 +674,38 @@
 	return 0;
 }
 
-static int cmd_hb_sub_set(int argc, char *argv[])
+static int hb_sub_get(int argc, char *argv[])
+{
+	u8_t status, period, count, min, max;
+	u16_t src, dst;
+	int err;
+
+	err = bt_mesh_cfg_hb_sub_get(net.net_idx, net.dst, &src, &dst, &period,
+				     &count, &min, &max, &status);
+	if (err) {
+		printk("Heartbeat Subscription Get failed (err %d)\n", err);
+		return 0;
+	}
+
+	if (status) {
+		printk("Heartbeat Subscription Get failed (status 0x%02x)\n",
+		       status);
+		return 0;
+	}
+
+	printk("Heartbeat subscription:\n");
+	printk("\tsrc 0x%04x dst 0x%04x period 0x%02x\n", src, dst, period);
+	printk("\tcount 0x%02x min 0x%02x max 0x%02x\n", count, min, max);
+
+	return 0;
+}
+
+static int hb_sub_set(int argc, char *argv[])
 {
 	u8_t status, period;
 	u16_t sub_src, sub_dst;
 	int err;
 
-	if (argc < 4) {
-		return -EINVAL;
-	}
-
 	sub_src = strtoul(argv[1], NULL, 0);
 	sub_dst = strtoul(argv[2], NULL, 0);
 	period = strtoul(argv[3], NULL, 0);
@@ -705,6 +727,19 @@
 	return 0;
 }
 
+static int cmd_hb_sub(int argc, char *argv[])
+{
+	if (argc > 1) {
+		if (argc < 4) {
+			return -EINVAL;
+		}
+
+		return hb_sub_set(argc, argv);
+	} else {
+		return hb_sub_get(argc, argv);
+	}
+}
+
 static int hb_pub_get(int argc, char *argv[])
 {
 	u8_t status, count, period, ttl;
@@ -881,7 +916,7 @@
 		"<addr> <AppIndex> <Model ID> [Company ID]" },
 	{ "mod-sub-add", cmd_mod_sub_add,
 		"<elem addr> <sub addr> <Model ID> [Company ID]" },
-	{ "hb-sub-set", cmd_hb_sub_set, "<src> <dst> <period>" },
+	{ "hb-sub", cmd_hb_sub, "[<src> <dst> <period>]" },
 	{ "hb-pub", cmd_hb_pub,
 		"[<dst> <count> <period> <ttl> <features> <NetKeyIndex>]" },
 	{ NULL, NULL, NULL}
