Twine / An open-source tool for telling interactive, nonlinear stories

http://twinery.org