diff --git a/cli/cmd/prompt.go b/cli/cmd/prompt.go
index 52e0c8b5eb3f479223c26b4cd1438e71aa06ff27..168f8e4283463f438b8cfb9ddea9159c65bc9e1c 100644
--- a/cli/cmd/prompt.go
+++ b/cli/cmd/prompt.go
@@ -198,15 +198,36 @@ func cobraCommandCompletion(currCmd *cobra.Command, d prompt.Document, inputFlag
 func completionBasedOnCmd(c *PromptCompleter, cmd *cobra.Command, inputSplit []string, inputFlags []string, d prompt.Document) []prompt.Suggest {
 	switch cmd {
 	case pndUseCmd, pndGetCmd:
-		return cobraCommandCompletion(cmd, d, inputFlags, getPnds())
+		if len(inputSplit) < 3 || (len(inputSplit) == 3 && d.GetWordBeforeCursor() != "") {
+			pnds, err := getPnds()
+			if err != nil {
+				return []prompt.Suggest{}
+			}
+			return cobraCommandCompletion(cmd, d, inputFlags, pnds)
+		}
 	case commitCmd:
-		return getChangesByType(pnd.ChangeState_CHANGE_STATE_PENDING)
+		if len(inputSplit) < 3 || (len(inputSplit) == 3 && d.GetWordBeforeCursor() != "") {
+			ch, err := getChangesByType(pnd.ChangeState_CHANGE_STATE_PENDING)
+			if err != nil {
+				return []prompt.Suggest{}
+			}
+			return ch
+		}
 	case confirmCmd:
-		return getChangesByType(pnd.ChangeState_CHANGE_STATE_COMMITTED)
+		if len(inputSplit) < 3 || (len(inputSplit) == 3 && d.GetWordBeforeCursor() != "") {
+			ch, err := getChangesByType(pnd.ChangeState_CHANGE_STATE_COMMITTED)
+			if err != nil {
+				return []prompt.Suggest{}
+			}
+			return ch
+		}
 	case deviceGetCmd, deviceSetCmd:
 		return deviceGetCompletion(c, d, inputSplit)
 	case deviceShowCmd:
-		devices, _ := getDevices()
+		devices, err := getDevices()
+		if err != nil {
+			return []prompt.Suggest{}
+		}
 		return devices
 	case deviceCmd:
 		c.currentDeviceSuggestions = nil
@@ -214,6 +235,8 @@ func completionBasedOnCmd(c *PromptCompleter, cmd *cobra.Command, inputSplit []s
 	default:
 		return cobraCommandCompletion(cmd, d, inputFlags, []prompt.Suggest{})
 	}
+
+	return []prompt.Suggest{}
 }
 
 var exitCmd = &cobra.Command{