Skip to content
This repository was archived by the owner on Dec 17, 2025. It is now read-only.
staticoPublic archive

About

👾 HTTP REST server for Z-Machine interactive fiction

Topics

Resources

Stars

13 stars

Watchers

1 watching

Forks

Latest commit

 

History

40 Commits

Folders and files

Repository files navigation

ifhttp

license build status

ifhttp provides an HTTP REST interface for interacting with Z-Machine interactive fiction (IF) stories (typically .z8 files). Clients can connect to the service to start a game and then POST commands to it. Sessions are deleted after a while in a feeble attempt to save memory. This service is definitely DoS-able.

See a live example on https://www.langworth.com/

Usage

$ docker pull ghcr.io/statico/ifhttp
$ docker run -p 8080:8080 -v /path/to/stories:/data ghcr.io/statico/ifhttp npm run -s start -- /data/story.z8

API

All request and response bodies should be JSON. In addition to a status code, requests may return a JSON object with an error property which describes the error.

GET /new

Returns a session ID for a new game.

Response:

{
  "session": "<id>",
  "output": "<text>"
}

POST /send

Sends a command to the game.

Request:

{
  "session": "<id>",
  "message": "<user input>"
}

Response:

{
  "output": "<text>"
}

Reference

  • Inform - IF creation toolsuite
  • ifvms - JavaScript Z-Machine VM used by this script
  • ifplayer - Command-line client which uses ifvms

About

👾 HTTP REST server for Z-Machine interactive fiction

Topics

Resources

Stars

13 stars

Watchers

1 watching

Forks

Packages

Used by

Contributors

Languages