This has indeed been discussed many times. It is not possible because the scripting language is completely tied into the GUI. There are a huge number of commands, identifiers, and events that work specifically with windows and depend on the GUI being present. The only way you can do what you are asking is to hide the GUI by using the minimize to tray option.