1. A system for communicating with a microdevice, the system comprising: a host computer configured to communicate with a target microdevice, the target microdevice comprising a microcontroller or a microprocessor, the host computer comprising a host memory, a graphical user interface configured to obtain user inputs from a user, an interface agent configured to handle information flow between the graphical user interface and an integrated development environment stored in the host memory; wherein the integrated development environment is configured to compile source code to build a target program according to information from the graphical user interface and, when the host computer is connected to the target microdevice, the host computer is further configured to download the target program through a debug interface to the target microdevice according to the information from the graphical user interface; wherein the interface agent comprises a first software component and a second software component, the first software component handling information to operate the integrated development environment, the second software component handling non-IDE information about window status and file creation status.