Inform is a programming language used for interactive fiction and other creative purposes. For user documentation, and downloads of the apps, go to the Inform home page at: http://www.inform7.com

Most users engage with Inform as an app on their devices: there are apps for MacOS, Windows, Linux and Android, but in the centre of each is the same core compiler and software. This website is part of the Github repository for that core, which is written as a "literate program", meaning that it is compiled both to a "woven", human-readable version as well as a "tangled", computer-executable version. You are now reading the woven version. For more on literate programming, go to the tool used by the Inform project: inweb

Like all complex software systems, Inform is an assemblage of many individual programs, images, PDF files, sets of test cases, documentation, and so on. This page is intended as a jumping-off point for browsing the source code and technical documentation: it doesn't list every last thing.

Inbuild

inbuild

A stand-alone build manager which is also Stage 1 of the Inform compiler.

Inform 7

inform7

The core Inform compiler, containing Stages 2 to 5.

Inter

inter

A stand-alone tool for intermediate-level code, which is also Stages 6 and 7 of the Inform compiler.

Services

services

Support for predicate calculus, linguistics, syntax trees and more.

Inblorb

inblorb

A packaging tool for wrapping interactive fiction story files, included with the Inform apps.

Inform 6

inform6

A compiler for a low-level programming language, included with the Inform apps.

Indoc

indoc

A tool for typesetting the two books about Inform, and their hundreds of examples, as ebooks or mini-websites, such as the one built into the apps.

Inpolicy

inpolicy

A small tool for checking that the Inform source base complies with some self-imposed social norms.

Inweb

inweb

A literate-programming tool needed to build the other Inform tools.

Intest

intest

A tool for running complex suites of end-to-end tests to verify the correctness of other tools.

Foundation

foundation

File-handling, generating HTML, semantic version-numbering, string-handling, memory management, and so on.