Project spotlight

Cairn brings classic interactive fiction into a modern desktop experience

Cairn grew out of a lifelong affection for Infocom games and the pull to play them again in a more immersive desktop experience, with the tools I always wanted nearby. It is a local, offline player for macOS that keeps the familiar rhythm of parser-driven play intact while adding automatic mapping, a detachable map view, saved-game metrics, and iCloud sync — with no accounts, no tracking, and no ads. It is available now on the App Store.

Core value

Honor the original feel of parser-driven storytelling while making long-form play more immersive, continuous, and easier to return to.

Overview

A more usable home for Infocom-style adventures

Cairn is a passion project shaped by nostalgia, but it is not trying to trap classic interactive fiction in amber. The app keeps the reading-and-command rhythm intact while adding quality-of-life features that help players stay immersed.

The current interface brings the story transcript, command entry, collection context, and map support into one focused desktop workspace, so returning to a long, intricate text adventure feels natural on a modern Mac.

Product framing

Designed to feel archival, readable, and quietly modern

The visual direction for Cairn leans into focus and atmosphere rather than nostalgia alone: strong typography, low-distraction layouts, and feature surfaces that make the experience feel immersive without getting in the way of the text.

Demo

A closer look at the current app experience

The demo shows Cairn's local library, saved games, and reading-focused desktop workspace in motion. Open it full screen to see how the pieces fit together in the current App Store release.

Cairn demo video preview showing the desktop app in use. Watch demo

Highlights

Modern functionality built around a classic format

  • Classic Infocom play Run classic interactive fiction with full Z-machine V3, V4, and V5 text support.
  • Automatic map tracking Explored rooms and their connections are drawn live as you play, including rooms you reach through non-directional commands.
  • Detachable map view Split the window with text on the left and the map on the right, or hide the map entirely.
  • Saved-game metrics Score, Moves, and Rank are shown for every game right in your library.
  • iCloud sync Your library and saved games stay in sync across your Macs.
  • Smart transcripts Improved command history and sensible default names for saved games.
  • Independent window memory The library and game windows each remember their own size.
  • In-app update checking Cairn tells you when a new version is available and takes you straight to the App Store.
  • Rate & support links Quick access to rate the app and find help when you need it.
  • One-click full reset Clear everything and start from a clean slate whenever you want.
  • Local and private Everything runs offline on your Mac — no accounts, no tracking, no ads.

Up next

Near-term work to enrich the play window

The next wave of Cairn development brings more of the game world alongside the text, so a session has everything you need without leaving the play window.

Play window

Live inventory view

See what you are carrying alongside the game text, drawn from the game world itself.

Play window

Richer current room

A fuller, at-a-glance presentation of where you are in the story.

Feelies

In-box materials browser

Attach a game's original feelies, manuals, and maps as PDFs or images and flip through them right inside the play window.

Getting unstuck

Native InvisiClues hints

A built-in, spoiler-controlled hint browser so you can reveal one nudge at a time when you are stuck.

On the horizon

Longer-term directions for Cairn

Further out, the goal is to bring Cairn to more devices, widen the catalog of playable games, and deepen support for the formats that defined the classics.

Devices

iPad and iPhone

Play on the rest of your devices, not just the Mac.

Catalog

Broader game support

Reach beyond Infocom toward wider interactive- fiction ecosystem compatibility.

Atmosphere

Sound effects

Audio for titles built around it, such as The Lurking Horror and Sherlock.

Z-machine

Beyond Zork support

Including its special character display requirements.

Development approach

An Implementer experiment with agentic AI

Cairn was a deliberate exercise in learning how to build well with agentic AI inside a real software development lifecycle. OpenSpec gave the work a structured planning layer, so features could move from intent to requirements, design notes, acceptance criteria, implementation, and review with code review and human-in-the-loop testing against the spec before changes were considered complete.

Spec first

OpenSpec as the planning layer

Spec-driven development with OpenSpec shaped changes as explicit requirements, design notes, and acceptance criteria before implementation began.

Agentic implementation

AI agents worked from clear intent

The specs gave AI agents a concrete target: what to build, why it mattered, and how the work would be judged.

Developer judgment

Direction, review, and testing stayed human

My role shifted toward product judgment, architecture, prompting, code review, and hands-on testing of agent-produced work against OpenSpec acceptance criteria.

Implementer framing

Building with taste and technical oversight

Infocom called its creators "Implementers" rather than developers, and that framing fits: guiding the app so agentic AI produced useful, high-quality software rather than generic output.

Support

Support

For Cairn support, questions, bug reports, or feedback about the App Store release, contact support@ducat.dev.

If you are reporting an issue, include the app version or build, macOS version, Mac model, and a brief description of what you were doing when the issue appeared.

Privacy policy

Privacy Policy

Effective May 26, 2026

Cairn is designed to keep your interactive fiction library, play state, and reading context under your control. App data is stored locally on your device, with iCloud synchronization used only when supported and enabled by your Apple account settings.

Stored by the app

What Cairn Stores

  • Library records, game metadata, play state, and preferences.
  • Map information, themes, window layout, and related app settings.
  • Transcripts, notes, or other play context you choose to keep.

Used for gameplay

How Data Is Used

  • To organize your library and restore active play sessions.
  • To support mapping, themes, multi-space layouts, and continuity features.
  • To sync supported app data through iCloud when available and enabled.

Apple services

iCloud Synchronization

Cairn may use iCloud to keep supported library and play context available across your Apple devices. iCloud data is handled by Apple according to your Apple account and device settings.

No selling or sharing

The Privacy Promise

Cairn does not sell or share your library, transcripts, notes, maps, or play history. Information you voluntarily provide for support is used only to respond to your inquiry.

Diagnostics

Analytics and Diagnostics

Cairn may use basic diagnostics to understand app stability and performance. Those diagnostics are not used to collect your story files, transcripts, notes, maps, or library contents.

Your choices

User Control

  • You choose which story files and library records to add.
  • You control iCloud availability through your Apple account and device settings.
  • You can contact support without sharing your library or play history.

If you have questions or concerns regarding your privacy, contact support@ducat.dev.

Back to projects