This release is a pre-release and may not be stable for production use.
Cabin Fever: x86
The books are finished. The rain isn’t. Somewhere deep in the Olympic Peninsula, a solitary operator is holed up in a remote cabin with no internet, no cell service, and no particular hope of going outside anytime soon. Every book on the shelves has been read—some of them several times. All that remains is a beige 1990s PC, a pile of ancient text adventures, and a VHF radio that can just reach one other voice through a repeater on a distant peak: yours. And old games are always more fun with a friend.
Cabin Fever x86 is a shared game night with an AI companion over a simulated radio. You explore old text adventures together, trading ideas, debating questionable decisions, and occasionally doing something foolish just to see what happens. The game is only part of the fun—the rest is the banter, the arguments, the running jokes, and the personality on the other end of the channel.
Under the hood, Cabin Fever x86 uses GPT-5.4 for inference, ElevenLabs for voice synthesis and recognition, and jericho for Z-machine game emulation.
Demo
Note: This demo captures a real gameplay session. The female voice is the AI radio operator built into the experience. The male voice is the human player, re-voiced in post-production using a different ElevenLabs voice to preserve anonymity. That overdub is not generated by the game itself.
For raw gameplay footage, see this video instead.
Installation from PyPI
The fastest and most convenient way to get started is to use this launcher package, which runs the game inside a QEMU sandbox VM. It works on Linux, macOS, and Windows, is self-contained, and is a convenient alternative to Docker or other containers.
# Create a virtual environment (optional, but recommended)
python3 -m venv .venv
# Activate it on Linux or macOS
source .venv/bin/activate
# On Windows Command Prompt, use this instead:
# .venv\Scripts\activate.bat
# On Windows PowerShell, use this instead:
# .venv\Scripts\Activate.ps1
# Install the launcher package
pip install cabin-fever-x86
# Export your OpenAI and ElevenLabs API keys in the shell
export OPENAI_API_KEY=...
export ELEVENLABS_API_KEY=...
# Run the game
cabin-fever-x86
Then visit the URL printed in the terminal (typically http://127.0.0.1:8000) to start playing.
[!NOTE] The first run downloads and prepares the virtual machine, so it takes longer than later runs.
If you ever want to reset the virtual machine (e.g., to force an update of the game, or to troubleshoot a problem), you can run
cabin-fever-x86 --rebuild.
The forwarded web port is bound to 127.0.0.1. To make the radio available on a LAN, run cabin-fever-x86-core directly on a Linux host instead.
Installation from GitHub
To install the current development version from GitHub, replace the PyPI install command with:
pip install "https://github.com/afourney/cabin-fever-x86/archive/refs/heads/main.tar.gz#subdirectory=packages/cabin-fever-x86"
Z-machine games
The server fetches Z-machine games on first run. On startup it looks in <cabin-fever-home>/data/games/; if there is nothing playable there, it downloads the z-machine-games archive and unpacks only the 57 titles in its jericho-game-suite folder.
<cabin-fever-home> is the directory where the launcher stores its data. By default, this is ~/.config/cabin-fever-x86/ on Linux and WSL, %APPDATA%\cabin-fever-x86\ on Windows, and ~/Library/Application Support/cabin-fever-x86/ on macOS.
To add games, copy .z3–.z8 files into <cabin-fever-home>/data/games/. The server detects them the next time it starts.
Development
See the repository README for development setup and source-tree usage.
Release files for cabin-fever-x86 0.0.1a7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cabin_fever_x86-0.0.1a7.tar.gz | 17.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cabin_fever_x86-0.0.1a7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 39.7 kB
Release files / cabin_fever_x86-0.0.1a7.tar.gz
| Download URL | cabin_fever_x86-0.0.1a7.tar.gz |
|---|---|
| Size | 17.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e5416a28957e17bc592ba9a1d5d36b1d3148001230b6e4e68616bed49754e1c8
|
|
BLAKE2b-256 checksum How to use checksums |
a2d59f6c4e0fa4cd9ae5702e8d69f5ab8a15db841501af87566f3f96ed2ed5b2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 8, 2026.
Transparency logRelease files / cabin_fever_x86-0.0.1a7-py3-none-any.whl
| Download URL | cabin_fever_x86-0.0.1a7-py3-none-any.whl |
|---|---|
| Size | 21.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2b1bfb811cc1a8b97a3d82160c8d98a5fe431e988d5c9013fda0cc408ad31f2f
|
|
BLAKE2b-256 checksum How to use checksums |
da0fb8bbaad65b31f0e4be09526fa13553a290b71b315eedcd640fd0b9d6d6f1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 8, 2026.
Transparency log