A native macOS and iOS application that reimagines the BBS for modern Apple hardware. Real-time chat with AI bots, threaded forums, internet email with full-text search, file sharing, SSH and web terminal access, a pixel-perfect ANSI terminal — and 68K emulation to run the original Hermes external programs on Apple Silicon.
Not a retro novelty. Not a museum piece. A living application that carries the spirit of the original BBS into a new generation.
Hermes 4 is a client-server BBS. The server runs the board — users, forums, files, chat, games. The client connects in and provides the full BBS experience: classic ANSI terminal for purists, with native features layered on top for modern users.
macOS application
The BBS engine. Runs on your Mac and serves connections over five protocols — Telnet, TelnetS, HTTPS, WebSocket, and SSH. Manages users, forums, email, chat channels, file storage, and external programs. Comes with a native sysop dashboard for real-time monitoring, geo-IP intelligence, and country/IP blocklists.
macOS & iOS application
The user experience. Connect to any Hermes server (or any BBS that speaks Telnet) with a pixel-perfect ANSI terminal. When connected to a Hermes 4 server, native features light up: file transfer progress, native mail, chat panels, attachment previews, and more.
HermesANSI
Not a generic terminal emulator — a purpose-built engine for the classic BBS experience. Full VT100/ANSI escape sequence parsing, 16-color palette with named slots, CP437 character set for authentic BBS art, and a virtual screen buffer with configurable scrollback.
ANSI scroll regions enable split-screen chat display. Text selection and copy/paste work natively. Canvas-based rendering with Metal compositing keeps everything smooth at any font size.
Hermes Terminal — main menu
Hermes Terminal — native chat with link previews and file sharing
Multi-channel · Persistent History
Multiple named channels — join #lobby, create #games, switch freely. Persistent message history backfills when you enter a channel. Message reactions, inline editing, and drag-and-drop file attachments. Slash commands for whispers, emotes, file sharing, blocking, and away status.
@Mentions with cross-channel notifications and typing indicators. Split-screen ANSI display for the classic feel, or use the native chat panel in Hermes Terminal for a modern interface. The sysop dashboard shows a live feed across all channels.
Threaded Messages · FTS5 Search · Internet Email
Multi-conference forum system with hierarchical organization — conferences contain subforums, each with their own access levels. At logon, a new-scan prompt shows exactly what's waiting; per-user read pointers, personal-message indicators, and a global catchup keep the message base coherent across visits.
Private email between users with quoted replies, threaded conversations, unread indicators, and per-side deletion. Hermes Terminal provides a native mail UI with HTML rendering, MIME attachments, drag-out .eml export, and Gmail mbox import for migrating archives in.
SQLite FTS5 full-text search with Gmail-style operators — from:, to:, subject:, has:attachment, date ranges, exact phrases — backed by an Advanced Search UI for complex queries.
Internet email bridges the BBS and the wider world — inbound via Cloudflare Email Routing, outbound via Amazon SES with multipart MIME attachments. Sysops set per-user mail permissions, daily outbound limits, and forwarding rules.
Hermes Terminal — reading forum messages in the terminal
Hermes Server — sysop chat view with link previews
HTTPS · ZMODEM · Signed Tokens
Two transfer protocols, old and new. HTTPS transfers use HMAC-SHA256 signed, time-limited URLs — Hermes Terminal detects them automatically and shows native progress. For classic BBS compatibility, full ZMODEM send and receive is built in, with auto-detection so the client picks up transfers seamlessly.
Organized file areas with access controls, per-user new-file tracking, and download counts. Per-user transfer preference lets each user choose Auto, HTTPS, or ZMODEM. Standard Telnet clients receive URLs for browser fallback. Share files directly into chat with the /share command.
68K Emulation · DOOR32.SYS · Classic & Modern
Two ways to run external programs. The Musashi 68K CPU emulator loads and executes the original Hermes externals from v2.2 through v3.5.11 — BBS door games and utilities written in the late 1980s and 1990s, running on modern Apple Silicon hardware. Over 45 classic externals have been tested successfully.
For modern door games, Hermes 4 supports the DOOR32.SYS standard — the same drop file protocol used across the BBS world. Any DOOR32.SYS-compatible program runs natively as a child process with full stdio bridging, CP437 or UTF-8 encoding, and automatic line-ending translation. Games like Usurper Reborn and other modern doors work out of the box.
Blackjack. Slots. Checkers. Trivia. Usurper Reborn. The originals on emulated hardware, and new doors running natively — side by side on the same board. This is what revival looks like.
HerTris — a 1990s external running on Apple Silicon via 68K emulation
Default Personalities
Sysops can create custom personalities or override prompts entirely.
Configurable Personalities · Channel & DM
AI-powered bots that live in your chat channels and feel like regulars, not assistants. Each bot has a distinct personality — a tech geek, a retro computing historian, a news curator — greets newcomers when they join, responds to @mentions, joins ongoing threads when it has something to add, and even talks to other bots when the room is quiet.
Sysops control everything: which model each bot runs on, which channels it joins, how often it speaks, what triggers a response (smart probability, keyword matching, or periodic), and hard rate limits to keep things balanced. Bots can search the web and X in real time to surface relevant links and news into chat.
Create custom personalities or use the three defaults. Choose any Grok model per bot, override system prompts for full control, and track token usage and message stats individually. A BBS community that's never empty.
Connection Protocols
SwiftNIO SSH · Auto-Login
Connect to Hermes with any standard SSH client — no special software needed. Built on SwiftNIO SSH, the server handles terminal type negotiation, window size detection, and live resize as you drag your terminal.
SSH-authenticated users are automatically logged in to the BBS — no second password prompt. Five protocols, one board: Telnet, TelnetS, HTTPS, WebSocket, and SSH all serve the same BBS simultaneously.
Browser-Based · No Install
Full ANSI terminal access from any web browser. The WebSocket listener serves a complete BBS session with real-time rendering of colors, cursor control, and character attributes — no plugins, no downloads.
Point someone at your board's URL and they're in. The same BBS experience that Hermes Terminal and SSH clients see, delivered through the browser for zero-friction access.
Native Management Console
A full native administration interface. See active connections in real time with country flags, color-coded status, and connection origin — disconnect or preview any session. Manage forums, file areas, users, chat channels, polls, and AI bots from a clean sidebar UI.
Live chat feed across all channels simultaneously. A live activity log with country-flag annotations and 30-day auto-pruning. User Manager with inline editing, security-level control, sortable columns, password reset, and soft-delete with restore. Read-only forum toggles, channel creation, and poll administration are one click away.
Scheduled sysop reports email a retro-styled daily digest with uptime, top users, popular externals, and traffic stats. A dedicated sysop terminal window provides direct BBS interaction without leaving the dashboard.
Hermes Server — user management with inline editing
Sample Activity Log
Country flags resolved via geo-IP. Single-line entries for blocked attempts.
Geo-IP · Country & CIDR Blocklists · Sandboxing
Modern boards face modern threats. Hermes 4 resolves the country and ISP for every incoming connection via geo-IP, surfaces a flag in the live activity log, and lets you block whole countries with a checkbox or specific networks with CIDR notation (192.0.2.0/24, 2001:db8::/32).
A pre-login idle timeout sweeps stuck sessions before they tie up nodes. Port scanners and probes are filtered from the activity log so real signal isn't lost in noise. Failed connection attempts log a single, scannable line — every block tells you which list caught it.
Door games run in a hardened sandbox: per-session drop-file isolation, configurable CPU and memory ulimits, and SIGKILL escalation if a child process refuses to exit. Untrusted externals don't get to ruin anyone's day.
Modern structured concurrency with actor-based session management. No callback spaghetti, no thread locks.
Apple's networking stack for Telnet, TelnetS, and HTTPS. SwiftNIO SSH for secure shell access. WebSocket for browser terminals.
Self-signed certificates generated on first launch. TELNETS and HTTPS encrypted by default. Passwords salted and hashed.
Full relational database via GRDB.swift with versioned migrations. Users, forums, messages, files, chat — all tracked cleanly.
The ANSI terminal uses canvas-based rendering with Metal compositing for smooth, hardware-accelerated display at any font size.
Built with Apple's latest frameworks for macOS and iOS (via Mac Catalyst). Runs on Apple Silicon. No Electron, no web views.
Hermes 4 is version 0.1.0 — usable, full-featured, and actively improving. Forums, threaded mail with FTS5 search, real-time chat with AI bots, file sharing, internet email, SSH, web terminal, 68K emulation, ZMODEM, geo-IP and CIDR blocking, sandboxed door games, and the sysop dashboard are all working. This is a passion project and a technical revival, not a commercial product. The beta is free.
macOS via direct download. iOS via TestFlight. Requires Apple Silicon.