Twine is an open-source tool for telling interactive, nonlinear stories.
Twine publishes directly to HTML, so you can post your work nearly anywhere. Anything you create with it is completely free to use any way you like, including for commercial purposes.
Twine was originally created by Chris Klimas in 2009 and is now maintained by a whole bunch of people at several different repositories.
An open-source tool for telling interactive, nonlinear stories