A shared game night with an AI companion over a simulated radio: play old text adventures together. Runs the game inside a sandbox VM, on any platform.
Project description
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.
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cabin_fever_x86-0.0.1a5.tar.gz.
File metadata
- Download URL: cabin_fever_x86-0.0.1a5.tar.gz
- Upload date:
- Size: 16.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e90287382b16b78a3fd979f7b8624c4afde44d2ef6ec7c23adaf7131731eb5a9
|
|
| MD5 |
4b3c35d38174420b34e613aead633646
|
|
| BLAKE2b-256 |
60e8e43e39a03d25c7e1fb6472a95c9f130686f7b39675d1a0629f99960d9967
|
Provenance
The following attestation bundles were made for cabin_fever_x86-0.0.1a5.tar.gz:
Publisher:
release-app.yml on afourney/cabin-fever-x86
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cabin_fever_x86-0.0.1a5.tar.gz -
Subject digest:
e90287382b16b78a3fd979f7b8624c4afde44d2ef6ec7c23adaf7131731eb5a9 - Sigstore transparency entry: 2319978894
- Sigstore integration time:
-
Permalink:
afourney/cabin-fever-x86@bf1038a82e3d19c2aeda791eee32b3e27d3477ac -
Branch / Tag:
refs/tags/app-v0.0.1a5 - Owner: https://github.com/afourney
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-app.yml@bf1038a82e3d19c2aeda791eee32b3e27d3477ac -
Trigger Event:
push
-
Statement type:
File details
Details for the file cabin_fever_x86-0.0.1a5-py3-none-any.whl.
File metadata
- Download URL: cabin_fever_x86-0.0.1a5-py3-none-any.whl
- Upload date:
- Size: 20.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d5f143be7a9ce6cedd2303f3d5a42c7c6bcb46ecad884340f539b0de9640c3a5
|
|
| MD5 |
b80cfa2bd5d3221af7d0fc344c7d9bda
|
|
| BLAKE2b-256 |
136450feb734b7bed43126817756bfc25acb9c3dd109dfbe20c959721ecb2301
|
Provenance
The following attestation bundles were made for cabin_fever_x86-0.0.1a5-py3-none-any.whl:
Publisher:
release-app.yml on afourney/cabin-fever-x86
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cabin_fever_x86-0.0.1a5-py3-none-any.whl -
Subject digest:
d5f143be7a9ce6cedd2303f3d5a42c7c6bcb46ecad884340f539b0de9640c3a5 - Sigstore transparency entry: 2319979206
- Sigstore integration time:
-
Permalink:
afourney/cabin-fever-x86@bf1038a82e3d19c2aeda791eee32b3e27d3477ac -
Branch / Tag:
refs/tags/app-v0.0.1a5 - Owner: https://github.com/afourney
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-app.yml@bf1038a82e3d19c2aeda791eee32b3e27d3477ac -
Trigger Event:
push
-
Statement type: