EV3Utils
LEGO EV3 Utilities and Assembler
...A command line interface is provided which can be used to up- or download projects as well as assemble new bytecode files. Communication with the brick is currently limited to USB-only, but other transports should be easy to add.
The assembler supports all of the functionality of the one provided by LEGO, but uses a slightly different syntax and supports far more error checking.
Not endorsed by LEGO, and they probably don't even know it exists.