I'm looking for a professional tool for OSX that using a DSL will allow me to write code for a workflow and will generate a flowchart from the code. Something similar to this but not in-browser and providing a little more functionality (like compressing the chart).

This tool should:

  1. Allow input of "code" as text that will influence the generation of the flow chart
  2. Provide the ability to draw-to-file a flowchart graph from the code input
  3. Provide manual modifications to the flowchart such as moving boxes to different positions, changing box size, changing box shape, etc.

1 Answer 1


If you are familiar with LaTeX, then I recommend using the TikZ package in a standalone document class. The manual describes the syntax in detail, and you can find flowchart examples here.

Pros (matching your criteria):

  1. Allows input of code using any text editor and can be built using your local LaTeX interpretor, or even an online tool
  2. The resulting diagram is saved in PostScript/PDF format, which can be converted to high density graphics using ImageMagick convert -density 600x600 flowchart.pdf -quality 100 flowchart.png. This can by typed later in the command line, or added to the document class to output the image in a single step \documentclass[convert={density=600,outext=.png}]{standalone}.
  3. Provides control over the size and shape of the nodes using \tikzstyle{} and the ability to fine tune positions by the millimeter (or your preferred unit, pt for example). You can also save your own style definitions in a separate file and \input{} it into several documents, instead of copying or typing them all over again.


  1. Might take time to learn if you are new to LaTeX
  • 1
    I'm afraid to use LaTeX because there's too much control given to the user. For example, I don't want to worry about millimeter node positions, I'd rather have that taken care of for me. Do you know if TikZ can perform its own optimal node spacing?
    – fifosine
    Commented Aug 17, 2014 at 14:58
  • @fifosine In the linked example, they have used a global node distance with auto mode (\begin{tikzpicture}[node distance = 2cm, auto]). This means that you won't have to worry about individual node spacing except in special cases.
    – Tymric
    Commented Aug 18, 2014 at 9:17

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.