I use two ESP32s, one of which communicates with my phone via Bluetooth, and then uses the CLI to control the other ESP32, which has the ESP32 Marauder firmware flashed on it, via serial communication.
The ESP32 program responsible for communication is a serial communication program generated by AI.
If you want to upload the *.ino to esp32, you need to remove the RX TX wires first, and then reconnect them after the upload is complete.
The circuit diagram:

circuit diagram on WoKwi: https://wokwi.com/projects/441620851178726401
Video: https://youtu.be/byzIyTP84rI
ESP32 Marauder: https://github.com/justcallmekoko/ESP32Marauder
Phone app for bluetooth serial terminal app: https://play.google.com/store/apps/details?id=de.kai_morich.serial_bluetooth_terminal&pcampaignid=web_share