Twine – tell interactive, nonlinear stories

Twine is an open source visual tool for creating interactive, non-linear stories for the Web, based on the Twee story engine. Although Twine 2.0 works in a browser, the program is still local to the computer. Twine is a tool for creating hypertext. As Twine publishes directly to HTML, authors can post their work nearly anywhere.

Twine is written primarily in Python and JavaScript, with UI widgets provided by wxPython.

If you prefer the command line, twee2 may be a better choice. It compile Twee-style (.tw, .twine) interactive fiction source files to Twine 2-style output.

Features include:

  • Streamlined look and feel.
  • Web based editor.
  • Publishes directly to HTML.
  • 3 story formats (other formats are available):
    • Harlowe – the default Twine 2 story format. It’s focused on making it easy to add basic interaction to your stories in a readable, concise way.
    • Snowman – a minimal Twine 2 story format designed for people who already know JavaScript and CSS. It’s designed to implement basic functionality for playing Twine stories and then get out of your way. Snowman uses a sub-set of markdown to support style formatting.
    • SugarCube – can save a player’s progress into separate slots, similar to a console video game, customization of the story sidebar and more.
  • Paperthin – the default proofing format. It creates a version of stories tailored for editing and proofreading.
  • No programming is required. But you can extend your stories with variables, conditional logic, images, CSS, and JavaScript.
  • Incorporate variables, which encompass the traditional trappings of games such as hit points and score.
  • Capability to do conditional logic, so you can build games.
  • Dark theme for late-night hypertexting.
  • Visual previews of stories in the list.
  • Tooltips.
  • Internationalization support.

Support: Twine Cookbook, GitHub Code Repository, Forum, twine-utils
Developer: Chris Klimas, Leon Arnott, Daithi O Crualaoich, Ingrid Cheung, Thomas Michael Edwards, Micah Fitch, Juhana Leinonen, Michael Savich, and Ross Smith
License: GNU General Public License v3.0


Twine is written in JavaScript. Learn JavaScript with our recommended free books and free tutorials.

Return to Tools for Novelists Home Page | Return to Write Interactive Fiction Home Page

Read our complete collection of recommended free and open source software. The collection covers all categories of software.

The software collection forms part of our series of informative articles for Linux enthusiasts. There's tons of in-depth reviews, alternatives to Google, fun things to try, hardware, free programming books and tutorials, and much more.
Share this article

Share your Thoughts

This site uses Akismet to reduce spam. Learn how your comment data is processed.