Flynn
A Telnet and Finger client for classic 68k Macintoshes
Install / Use
/learn @ecliptik/FlynnQuality Score
Category
Development & EngineeringSupported Platforms
README
Flynn
A Telnet and Finger client for classic 68000 Macintosh systems, from the Mac Plus and up. Supports monochrome on System 6 and 256 colors on System 7. Works with MacTCP and Open Transport's MacTCP compatibility layer. Cross-compiled on Linux using Retro68.
This project was 100% vibe coded using Claude Code.
<p align="center"> <a href="#download">Download</a> · <a href="#features">Features</a> · <a href="#keyboard-shortcuts">Keyboard Shortcuts</a> · <a href="#building">Building</a> · <a href="#testing">Testing</a> · <a href="#acknowledgments">Acknowledgments</a> · <a href="#license">License</a> </p>System 6
| | |
|:---:|:---:|
|
|
|
| Telnet Session | tmux Split Panes |
|
|
|
| Connect Dialog | Multi-Session and ANSI-BBS |
System 7
<p align="center"> <img src="docs/screenshots/flynn-256color.png" alt="Flynn 256-color on System 7" width="100%"> <br> <strong>256-Color Multi-Session</strong> </p>Download
Pre-built binaries are available on the Releases page, Macintosh Garden, and Macintosh Repository:
| Edition | Description | Memory | Download | |---------|-------------|--------|----------| | Flynn | Full build — 4 sessions, all features including 256-color | ~768KB | .dsk · .hqx | | Flynn Lite | Recommended for Mac Plus — 1 session, most features | ~384KB | .dsk · .hqx | | Flynn Minimal | Bare-bones — 1 session, no scrollback, stripped | ~256KB | .dsk · .hqx |
Each edition is available as .dsk (800K floppy image) and .hqx (BinHex archive). No build toolchain required — just download and run. See docs/BUILD.md for custom builds.
Requirements
- Macintosh Plus or later (4MB RAM, 68000 CPU)
- System 6.0.8 or System 7 with MacTCP or Open Transport
- ~119KB disk space, ~72KB RAM per session (mono) / ~123KB (color)
Features
Terminal Emulation
- VT100/VT220/xterm/xterm-256color/ANSI-BBS terminal emulation with CP437 rendering
- 256-color support on System 7 with Color QuickDraw (zero System 6 impact)
- SGR attributes: bold, italic, underline, dim, strikethrough, blink, inverse
- UTF-8 with box-drawing, Unicode glyphs, emoji, and Braille patterns (180 primitives + 57 sextants + 18 emoji)
- OSC support: window title, palette and color queries
Display & Windowing
- Multiple sessions (up to 4 simultaneous windows)
- Resizable window and scrollback (80x24 up to 132x50, 192-line scrollback)
- Status bar showing terminal size, protocol, and connection info
- 8 fonts (Monaco, Geneva, Chicago, Courier, New York; Helvetica, Times, Palatino on System 7) with independent size selection (9, 10, 12, 14)
- 11 built-in color themes (Solarized Light/Dark, TokyoNight Day/Night, Amber CRT, System 7, Compact Mac, Dracula, Nord) plus Light and Dark mono themes, with per-window independence
- Theme import/export in Ghostty format — import any Ghostty theme file, auto-snapped to the Mac 256-color palette
Input & Interaction
- Mouse text selection with copy/paste
- Bracketed paste mode
- M0110 keyboard support
- Double-buffered rendering
- Keystroke buffering
- Local echo for BBS sessions (WONT ECHO servers)
- Backspace DEL/BS toggle
Finger Protocol (RFC 1288)
- Finger client (File > Finger..., Cmd+I)
- User and host queries with optional verbose (/W) flag
- Finger forwarding (user@host@gateway auto-split)
- Remembers last host/user across launches
Session Management
- Bookmarks with per-bookmark protocol, font, and terminal type
- Reconnect (Cmd+R) and keep-alive (NOP every 120s)
- Session logging to text file (Cmd+L) with ANSI escape filtering
- Page Setup and Print (Cmd+P) with Printing Manager support
- Find in Scrollback (Cmd+F / Cmd+G), Show Clipboard, Reset Terminal
- Persistent settings, window position, and telnet:// URL handling
- MultiFinder, Apple Events, and Notification Manager support
Keyboard Shortcuts
Flynn is designed for the Apple M0110/M0110A keyboard, which lacks Escape and Control keys. These mappings also work on modern USB/ADB keyboards.
| Action | Keys | Notes | |--------|------|-------| | Escape | Cmd+. | Classic Mac "Cancel" convention | | Escape | Clear (keypad) | M0110A numeric keypad key | | Escape | Esc key | Modern keyboards only (not on M0110) | | Ctrl+key | Option+key | e.g., Option+C = Ctrl+C | | Scroll up/down | Cmd+Up/Down | One line at a time | | Scroll page | Cmd+Shift+Up/Down | One page at a time | | Select text | Click+drag | Stream selection with inverse video | | Select word | Double-click | Selects contiguous non-space word | | Extend selection | Shift+click | Extends selection to click point | | Copy | Cmd+C | Copies selection, or full screen if none | | Paste | Cmd+V | Sends clipboard to connection | | Select All | Cmd+A | Selects entire terminal screen | | F1-F10 | Cmd+1..0 | For M0110 keyboards without function keys | | Find | Cmd+F | Search scrollback and screen | | Find Again | Cmd+G | Repeat last search | | Bookmarks | Cmd+B | Open bookmark manager | | Add Favorite | Cmd+D | Save current session as bookmark | | Finger | Cmd+I | Finger protocol query | | New Session | Cmd+N | New session (new window if connected) | | Reconnect | Cmd+R | Reconnect to same host after disconnect | | Start/Stop Logging | Cmd+L | Log session output to text file | | Print | Cmd+P | Print scrollback and screen content | | Save Contents | Cmd+S | Save scrollback and screen to text file | | Close Window | Cmd+W | Close active session window | | Quit | Cmd+Q | Quit Flynn |
Building
Requires the Retro68 cross-compilation toolchain. Build it from source (68k only):
git clone https://github.com/autc04/Retro68.git
cd Retro68 && git submodule update --init && cd ..
mkdir Retro68-build && cd Retro68-build
bash ../Retro68/build-toolchain.bash --no-ppc --no-carbon --prefix=$(pwd)/toolchain
Then build Flynn:
./scripts/build.sh
Build Presets
Flynn supports fully customizable builds. Three presets cover common configurations:
| Preset | Sessions | Scrollback | Features | Memory |
|--------|----------|------------|----------|----------------|
| minimal | 1 | none | clipboard, alt screen only | ~256KB |
| lite | 1 | 96 lines | everything except color | ~384KB |
| full | 4 | 192 lines | everything | ~768KB |
The default build uses the full preset. Select a preset with --preset:
./scripts/build.sh --preset minimal # stripped, for 1MB Macs
./scripts/build.sh --preset full # everything, 4 sessions
Individual features can be toggled with --feature / --no-feature flags. Presets are applied first, then individual flags override:
./scripts/build.sh --preset minimal --finger --bookmarks
./scripts/build.sh --sessions 2 --color --no-darkmode
See docs/BUILD.md for the complete list of build flags, feature details, memory costs, and examples.
Testing
Uses Snow emulator (v1.3.1) with a Mac Plus ROM and System 6.0.8 SCSI hard drive image. Snow supports DaynaPORT SCSI/Link Ethernet emulation for MacTCP networking. The emulator can be fully automated via X11 for unattended testing. See docs/TESTING.md for details.
Acknowledgments
- Claude Code by Anthropic
- Retro68 by Wolfgang Thaller
- Snow emulator
- wallops by joshua stein — MacTCP wrapper (
tcp.c/tcp.h), DNS resolution (dnr.c/dnr.h), utility functions (util.c/util.h), andMacTCP.hare used directly from this project. ISC license. - subtext by joshua stein — The Telnet IAC protocol implementation (
telnet.c/telnet.h) served as the reference for Flynn's client-side telnet engine. ISC license.
License
ISC License. See LICENSE for full details.
Note: The GitHub repository is a read-only mirror. Please open issues and pull requests on Codeberg.
