ideviceinstaller is a tool to interact with the installation_proxy of an iDevice allowing to install, upgrade, uninstall, archive, restore, and enumerate installed or archived apps. It makes use of the libimobiledevice library that allows communication with the devices.