diff --git a/cli/src/main/java/org/onlab/onos/cli/net/ClusterDevicesCommand.java b/cli/src/main/java/org/onlab/onos/cli/net/ClusterDevicesCommand.java
new file mode 100644
index 0000000..d4d6d24
--- /dev/null
+++ b/cli/src/main/java/org/onlab/onos/cli/net/ClusterDevicesCommand.java
@@ -0,0 +1,47 @@
+package org.onlab.onos.cli.net;
+
+import com.google.common.collect.Lists;
+import org.apache.karaf.shell.commands.Argument;
+import org.apache.karaf.shell.commands.Command;
+import org.onlab.onos.net.DeviceId;
+import org.onlab.onos.net.topology.TopologyCluster;
+
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+
+import static org.onlab.onos.net.topology.ClusterId.clusterId;
+
+/**
+ * Lists devices of the specified topology cluster in the current topology.
+ */
+@Command(scope = "onos", name = "cluster-devices",
+         description = "Lists devices of the specified topology cluster in the current topology")
+public class ClusterDevicesCommand extends ClustersListCommand {
+
+    @Argument(index = 0, name = "id", description = "Cluster ID",
+              required = false, multiValued = false)
+    String id = null;
+
+    protected static final Comparator<DeviceId> ID_COMPARATOR = new Comparator<DeviceId>() {
+        @Override
+        public int compare(DeviceId id1, DeviceId id2) {
+            return id1.uri().toString().compareTo(id2.uri().toString());
+        }
+    };
+
+    @Override
+    protected Object doExecute() throws Exception {
+        int cid = Integer.parseInt(id);
+        init();
+        TopologyCluster cluster = service.getCluster(topology, clusterId(cid));
+        List<DeviceId> ids = Lists.newArrayList(service.getClusterDevices(topology, cluster));
+        Collections.sort(ids, ID_COMPARATOR);
+        for (DeviceId deviceId : ids) {
+            print("%s", deviceId);
+        }
+        return null;
+    }
+
+
+}
