A standalone, cross-platform chat door for BBSes — and also a regular CLI app if
you don't have a BBS handy. Works against the existing futureland.today:10088
chat server (so users on this door and the Synchronet JS avatar_chat door share
channels) and ships its own self-hostable server for offline / private fleets.
The original avatar_chat is a JavaScript door that only runs inside Synchronet.
This is a from-scratch Go port that runs as a regular native binary, so it
slots into Mystic, ENiGMA½, or any BBS that emits a DOOR32.SYS / DOOR.SYS
drop file — and stays interoperable with the JS door's chat protocol.
Single static binary per platform. No runtime dependencies.
- 10×6 CP437 avatars: pick from bundled / sysop collections, upload your own via Zmodem, or draw one in the in-door pixel editor (BETA).
- Per-message avatar gutter matching the JS door's bubble layout, with relative timestamps ("5m ago", "2h ago") and BBS hostname.
- Idle screensaver with 15+ procedural animations plus an ANSI gallery
that scrolls SAUCE-tagged
.ans/.binart from a sysop-managed directory. - Sysop theming via
themes/<name>.ini— color palette + screensaver profile per theme. - Optional splash screen with an RGB strobe effect on entry.
- Self-hostable companion server speaks the same JSON-RPC protocol as the public futureland server.
- Runs as a standalone CLI app without a drop file (
./avatar_chat_universal -user alice) for testing or shell-only use.
Grab the tarball matching your platform from the GitHub Releases page:
| Filename | Platform |
|---|---|
avatar_chat_universal_linux_amd64.tar.gz |
64-bit Linux (most BBS hosts) |
avatar_chat_universal_linux_arm64.tar.gz |
Raspberry Pi 4/5, Graviton |
avatar_chat_universal_linux_386.tar.gz |
32-bit Linux |
avatar_chat_universal_windows_amd64.tar.gz |
64-bit Windows |
avatar_chat_universal_windows_386.tar.gz |
32-bit Windows |
avatar_chat_universal_darwin_amd64.tar.gz |
Intel macOS |
avatar_chat_universal_darwin_arm64.tar.gz |
Apple Silicon macOS |
Each tarball contains the door binary, the server binary, the default
avatar_chat.ini, the themes/futurewave.ini, and the docs.
# Build the door + server for your host platform.
make build
# Drop into a Synchronet door slot (see INSTALL.md for the full SCFG fields):
# Command Line: avatar_chat_universal -dropfile %f
# I/O Method: Socket
# Native: Yes
# Drop File: DOOR32.SYS
# Or run standalone, against the public chat server:
./avatar_chat_universal -user alice
# Or run the bundled chat server alongside for an isolated deployment:
./avatar_chat_server -addr :10088 &
./avatar_chat_universal -user alice # uses host=futureland by default; edit avatar_chat.ini to point at localhost- INSTALL.md — sysop install guide for Synchronet, Mystic, ENiGMA½, generic BBS softwares, and standalone use. Cross-platform build instructions.
- CONFIG.md — every
avatar_chat.inikey with semantics and defaults. - THEMING.md — how to ship a custom color palette + screensaver
profile via
themes/<name>.ini. - AVATARS.md — avatar format, validation rules, sysop-managed collection directory, the in-door selector / upload / editor flows.
- SCREENSAVER.md — idle animations, ANSI gallery setup, idle-interleave behavior.
This door is in active development. The core chat experience is solid; some features (avatar editor, image sending) are explicitly marked BETA in-app. File issues / PRs welcome.
MIT — see LICENSE. Bundle it, ship it, fork it; just keep the copyright notice in derivative works.