Skip to content

ecliptik/flynn

Repository files navigation

Flynn

A Telnet client for classic Macintosh (68000/Mac Plus), targeting System 6.0.8 with MacTCP 2.1. Cross-compiled on Linux using Retro68.

This project was 100% vibe coded using Claude Code.

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

Flynn telnet session with neofetch Flynn running tmux with three split panes
Telnet Session — neofetch over telnet with VT220 emulation tmux Split Panes — box-drawing characters rendered via QuickDraw
Flynn connect dialog Claude Code running inside Flynn
Connect Dialog — saved host, port, and username auto-login Claude Code via Flynn — the AI that built Flynn, running inside it

Features

  • VT100/VT220/xterm terminal emulation — runs vi, nano, tmux, mc, and other full-screen TUI apps over telnet
  • Box-drawing characters — DEC Special Graphics rendered natively via QuickDraw for clean tmux panes, mc panels, and dialog borders
  • UTF-8 support — accented characters, curly quotes, and symbols decoded and mapped to Mac Roman
  • Resizable window — drag the grow box from 80x24 up to 132x50 cells, with NAWS negotiation
  • 6 fonts — Monaco 9/12, Courier 10, Chicago 12, Geneva 9/10, including proportional font rendering
  • Session bookmarks — save up to 8 hosts with one-click connect from the Session menu
  • Username auto-login — sends your username at the login prompt automatically
  • Mouse text selection — click-drag, double-click to select words, shift-click to extend, Cmd+C/V for copy/paste
  • Scrollback — 96 lines of history, navigate with Cmd+Up/Down
  • Control menu — send Ctrl-C, Ctrl-D, Ctrl-Z, Escape, Ctrl-L, and Break without a physical Ctrl key
  • Keystroke buffering — batches fast typing into single TCP sends, no character loss
  • M0110 keyboard support — Option key as Ctrl, Cmd+. as Escape, Cmd+1-0 for F-keys, designed for the original Mac Plus keyboard
  • Dark mode — inverted display option for late-night telnet sessions
  • Settings persistence — host, port, bookmarks, font, and preferences saved across launches
  • 4MB Mac Plus — ~98KB on disk, ~60KB RAM footprint (~1.5% of 4MB). Runs on a Macintosh Plus with System 6.0.8 and MacTCP 2.1

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
F1-F10 Cmd+1..0 For M0110 keyboards without function keys
Bookmarks Cmd+B Open bookmark manager
Connect Cmd+N Open connect dialog

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:

./build.sh

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 — AI-assisted development by Anthropic. Flynn was built entirely through agentic AI pair programming.
  • Retro68 by Wolfgang Thaller — the 68k Macintosh cross-compilation toolchain that makes building classic Mac applications on modern Linux possible.
  • Snow — a Rust-based classic Macintosh emulator with low-level hardware emulation, DaynaPORT SCSI/Link networking, and BlueSCSI Toolbox support. Used for all development testing.
  • wallops by joshua stein — IRC client for classic Macintosh. 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 — BBS server for classic Macintosh. 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.

About

A Telnet client for classic 68k Macintoshes

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors