Since this question has been coming up quite a bit in multiple threads, I have added a community FAQ on how to create virtual devices without using the IDE. Three approaches are discussed: edge drivers (for if you have a SmartThings/Aeotec hub), REST API methods including both the CLI and @taustin’s API + (which will work whether you have a hub or not), and the use of a physical device as a proxy.
FAQ: Creating Virtual Devices Without the IDE
If there are additional methods, feel free to add to the thread.