Architecture
A bridge, not a time machine.
The Macintosh stays small and native. TimeWarp absorbs the modern complexity and presents both coding agents through one stable protocol.
The complete path
BlueSCSI's DaynaPORT emulation gives the Plus a network interface. flatmac uses MacTCP to discover and connect to TimeWarp. Nothing reaches a remote 1986ai service: TimeWarp and the provider both run on the modern Mac.
A protocol shaped for the Plus
The wire format is binary, length-prefixed, and deliberately compact. It carries Macintosh Roman text, status, tool activity, files, session information, heartbeats, and one-bit images without sending a web interface across the network.
Heartbeat and liveness rules detect stale connections. Only one Macintosh owns the active client slot; a genuinely dead client can be replaced without allowing simultaneous sessions to collide.
One interface for two agents
Claude Code and Codex expose different process and session behavior. TimeWarp keeps those differences behind provider adapters.
A provider-neutral renderer batches text, keeps tool events ordered, filters internal reminders, formats usage, and emits the same Macintosh messages for either agent.
Files cross the boundary carefully
The selected project folder is the root for browsing. A dedicated file store resolves and validates every path, refuses traversal above that root, and runs slow directory or file preparation work away from the protocol event loop.
Macintosh request
→ validate relative path
→ scan or prepare file off the event loop
→ encode as MacBinary II when needed
→ send 1 KB paced chunks
→ write both forks on the MacintoshImage requests follow a separate converter: open the source under the same root, scale it within the native window budget, dither it to one bit, and send a QuickDraw-ready bitmap.
On demand by design
- IdleThe native app is open; no bridge or provider runs.
- ListeningStart launches the bridge and advertises discovery.
- ConnectedThe Macintosh handshake prepares the provider.
- ParkedA disconnect retains the session for reconnection.
- StoppedExpiry or Stop terminates managed process groups.
This lifecycle is why 1986ai does not need a launch agent, setup daemon, or process that consumes resources all day. You start it for a Macintosh session and stop it when that session is over.
The constraints are part of the design
- 512 × 342
- One-bit display; layouts and images must remain legible without color.
- About 3.6 KB/s
- BlueSCSI Wi-Fi rewards small events and paced transfer chunks.
- 1 MB+
- Conversation storage and windows use bounded memory rather than modern assumptions.
- One client
- The host serializes a single active Macintosh session and handles takeover explicitly.
These are not simulated limitations added for style. They are the actual environment, and they determine the protocol, renderer, file transfer, reconnect policy, and interface.