The main client for controling the Crazyflie device family is the python client that runs on a PC and communicates via the Crazyradio PA USB dongle. The client uses a python library, which also is the main connection point for programs and scripts that communicate with the devices.
Swarms of Crazyflies can be controlled through the python library, the external CrazySwarm project or other software.
There are mobile phone apps for Android and IOS that connects via BLE, mainly for manual flight.
We have a Crazyflie 2.X python-based client for the PC, of which all the documentation can be found here. The PC client runs on the Crazyflie library (CFlib), of which all the documentation can be found here.
The PC needs a Crazyradio PA in order to communicate with the Crazyflie 2.X. This relays the CTRP protocol from the PC client or the Crazyflie library to and from the CF2. The documentation also explains how to setup the USB permissions on your specific OS or machine.