usage . guide github source . issues

current version notes master


flow is a project based build tool for the haxe programming language.
It is free and open source.


Haxe is an expressive, beautiful modern programming language
that compiles its own code into other languages. learn more

Install Project format Features


Please note

flow is currently considered alpha, which means there may be bugs, inconsistencies, incomplete implementations, and possible minor usage/project changes. It is still considered fairly stable and is being used by multiple frameworks and games, but there are things to tighten up before 1.0.0 release can be called final.

Join us in developing and testing the framework and tools, below.


What does it do?

brief overview

flow is a project based build tool, meaning that it takes a flow file,
and executes the commands and tasks in the flow file to build an application.

An example of some of the available commands:

For a full list, see the usage guide.

Example flow file

A flow file is a project. It is a simple, not-strict json file.

flow file

Where does flow fit in?

To understand where flow fits, you should understand the way haxe works its magic.

A target and a platform are not the same thing.
The haxe compiler transforms code from the haxe language, into another target language.

haxe -> javascript
haxe -> c++

It’s important to know the difference, using the js target as an example.
The javascript language, is the target.

There is no single platform associated with js, it can run in the browser, on the server, in a standalone executable on desktop or mobile. The most common platform is the web.
The web, is a platform.

Building an application

The code that haxe generates is 100% ready to use, in a webpage or an application,
haxe has done its job now and it’s your turn.

You need to put all this together, maybe in an html file or an app bundle, maybe package an apk for android, add some assets, an icon and make this work over a few platforms.

What if you want to run a script automatically before building?
What if you want to package nightly builds of your application for testers?

This is what flow is for

flow takes the haxe output, your project input, and creates shippable applications,
games, websites or more on its supported platforms.

flow has many built in tools, from javascript minify to interacting with the cpp build pipeline - it’s an expressive tool designed around flexibility and control.

Supported Platforms

A list of the supported platforms :

web mac linux windows android ios


Setup guide

flow is setup through haxelib,
from a terminal (need help?)

by running the following command :

haxelib git flow


Install the flow shortcut

Anywhere you see flow as a command, it’s because an alias has been set up.

If you don’t install the shortcut,
you must use haxelib run flow instead of flow where you see it.

Right now, the shortcut is a manual install but in the near future will be automated.

To install the shortcut alias


The usage guide is accessed in full from the cli,
simply run flow without arguments, or flow usage

for basic use

If target is not specified, it will use your current system i.e

flow build on a mac will result in flow build mac --arch 64

Editor support

Where possible, full code completion and building from the editor is supplied.

Sublime Text (mac/windows/linux)

Atom (mac/windows/linux)

FlashDevelop (windows only)

template is at snowkit-fd, and here is a Download link


flow guides

flow files - the project format
pipeline - what flow does exactly
platforms - all the gory details
design - how flow fits together
contribute - discuss, build, test


Projects using flow

luxe engine - a high level game engine for haxe to build apps or games
snow - a minimal low level toolkit for building frameworks


flow is built using node.js


Things like flow

aether is a long standing haxe build tool (a.k.a lime-tools), used by OpenFL.


All trademarks and registered trademarks are the property of their respective owners.