I'm working on adding my Arduino to continuous integration and I came across two different possible ways of doing this, Arduino command line, and arduino-builder. Can someone explain why the arduino-builder tool exists separately from calling Arduino from the command line? And what are the advantages of using one over the other?

  • 1
    ...and platformio.org/#!/frameworks
    – Arjan
    Mar 1, 2016 at 19:41
  • I've discovered one downside of calling arduino_debug (on windows) from the command line. It generates graphical pop-ups for errors instead of command line messages.
    – Bob
    Mar 2, 2016 at 6:57

2 Answers 2


The Arduino IDE command line predates arduino-builder and was made available when the source pre-processing and compiling was implemented by a Java class (deeply) embedded in the IDE.

The current IDE uses arduino-builder behind the scenes to process and compile the code so if you use arduino-builder you avoid having to load the whole Java IDE. Try it out it does some pretty cool stuff


I've written a new option for Arduino CI/unit testing and put together a decent size writeup about it as an answer to this related question.

I ended up using the Arduino command line instead of arduino-builder, because it worked better cross-platform for me. It assumes a graphical display though, even if you just use the CLI features. In the case of Travis CI, I needed to spin up a fake X display to handle the initial splash screen and other graphical error messages. (Fortunately, you can tell based on how long a command takes to complete whether it's waiting for you to acknowledge a graphical error message.)

Some examples of how to enable CI on your own project:

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.