Skip to content
A python telnet/ssh server for modern UTF-8 and classic cp437 network virtual terminals. In spirit of classic software such as ami/x, teleguard, renegade, iniquity.
Python AGS Script
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.


Type Name Latest commit message Commit time
Failed to load latest commit information.
docs Release 2.0.15 Aug 14, 2017
x84 raw flag for Door objects (#294) Jul 31, 2017
.gitignore remove too much maintenance, not enough gain Jan 8, 2015
.prospector.yaml exclude in static analysis, lost cause Jan 19, 2015
.pycheckrc start lint of default/*.py Oct 25, 2012
.travis.yml Enabled Travis CI Aug 14, 2017
CHANGES six==1.9.0 (#295) Jul 31, 2017
LICENSE no longer included, -LICENSE Jan 1, 2015
README.rst Increase paramiko version Oct 24, 2017
tox.ini remove circular imports in Jan 19, 2015


Code Health Latest Version License



An experimental python Telnet and SSH server framework

The primary purpose of x/84 is to provide a server framework for building environments that emulate the feeling of an era that predates the world wide web. It may be used for developing a classic bulletin board system (BBS) -- one is provided as the 'default' scripting layer. It may also be used to develop a MUD, a text-based game, or a game-hosting server such as done by dgamelaunch.

You may access the "default board" provided by x/84 at telnet host


# or

# or


x/84 supplies a scripting engine for developing character-at a time telnet or ssh server, such as MUD or BBS systems. Technologies used in x/84 are derived from miniboa (Apache 2.0 Licensed) for telnet, blessed (MIT Licensed) for terminal capabilities, sqlitedict (Public Domain) for persistent data, paramiko for ssh and sftp services, and for http service.

Asynchronous inter-process communication between sessions is provided through an event queuing framework, for scripting of 'shared' experiences. Several examples of these are provided, such as The default board provides several demonstrating activities.

All terminal types supported by curses (the termlib and terminfo) databases are allowed, with a "pythonic" terminal framework supplied through blessed.

Portability is as equal to python, and has been tested on Raspberry Pi, Android, Mac, OpenBSD, Solaris, etc.

ANSI Art, such as found on ACiD dark domains DVD, is translated for reasonably accurate reproductions for both UTF-8 and IBM CP437 terminals. This allows classic DOS art to be used on modern terminals such as, or classic emulating terminals such as syncterm. Artwork with Sauce records are also supported.

See clients for a list of compatible clients.


Note that only Linux, BSD, or OSX is supported, due to the blessed dependency on curses.

  1. Install python 2.7 and pip. More than likely this is possible through your preferred distribution packaging system.
  1. Install x/84:

    pip install x84[with_crypto]

    Or, if C compiler and libssl, etc. is not available, simply:

    pip install x84

    Please note however that without the [with_crypto] option, you will not be able to run any of the web, ssh, and sftp servers, and password hashing (and verification) will be significantly slower.

    If you receive an error about setuptools_ext not being found, you may need to upgrade your installed version of setuptools and try again:

    pip install -U setuptools
  2. Launch the x84.engine python module:

  3. Telnet to 6023, Assuming a bsd telnet client:

    telnet localhost 6023

All data files are written to ~/.x84/. To create a custom board, you might copy the default folder of the x/84 python module to a local path, and point the scriptpath variable of ~/.x84/default.ini to point to that folder.

Simply edit and save changes, and re-login to see them. Adjust the show_traceback variable to display any errors directly to your telnet or ssh client.

Documentation, Support, Issue Tracking

See Documentation for API and general tutorials, especially the developers section for preparing a developer's environment if you wish to contribute upstream. Of note, the Terminal interface is used for keyboard input and screen output, and is very well-documented in blessed.

This project isn't terribly serious (for example, there are no tests), though contributions (especially fixes and documentation) are welcome. See the project on github for source tree and issue tracking. If there are features, bugs, or changes you would like to see, feel free to open an issue.

If you would like to chat with developers of x/84, we are in channel #1984 on

You can’t perform that action at this time.