Arduino Leonardo - Setting up bluetooth - AT command from terminal does not return anything
The issue is fixed.
Note: This is the version includes Serial1 rather than SoftwareSerial. The rest is the same.
Serial.read()

Returns the first byte of incoming serial data available.

So, when I send AT command from terminal, it does send &quot;A&quot; and then &quot;T&quot; rather than &quot;AT&quot; as a string which Bluetooth expects as stated in the product's documentation:

AT Command format: Uppercase AT command format. string format, without any other symbol. (e.g. \r or \n).

Hence, I have added the following function:
String SerialString() {   // Function to generate string from chars sent via Serial Monitor
  
  String inputString = &quot;&quot;;  // to hold the string
  
  while (Serial.available()) {
    
    char inputChar = (char)Serial.read(); // get the new byte:
    inputString += inputChar;             // add it to the inputString:
    }
    
    return inputString;     // returns completed string 
}

Then inside void loop():
String WholeCommand = &quot;&quot;; 
if(Serial.available() &gt; 0){
    WholeCommand = SerialString();
    Serial1.print(WholeCommand);
  }

Now, when I send AT from Serial Monitor, I can get OK from Bluetooth.