Skip to content

ecliptik/flynn

Repository files navigation

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.

Download · Features · Keyboard Shortcuts · Building · Testing · Acknowledgments · License

System 6

Flynn telnet session with neofetch Flynn running tmux with split panes
Telnet Session tmux Split Panes
Flynn connect dialog Flynn BBS and terminal multi-window
Connect Dialog Multi-Session and ANSI-BBS

System 7

Flynn 256-color on System 7
256-Color Multi-Session


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
  • 6 fonts (Monaco 9/12, Courier 10, Chicago 12, Geneva 9/10)
  • Dark mode

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+F)
  • User and host queries with optional verbose (/W) flag
  • Finger forwarding (user@host@gateway auto-split)
  • Remembers last host/user across launches

Session Management

  • Session bookmarks (with per-bookmark Telnet/Finger protocol)
  • Settings persistence
  • 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
Bookmarks Cmd+B Open bookmark manager
New Session Cmd+N New session (new window if connected)
Finger Cmd+F Finger protocol query
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), and MacTCP.h are 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.