Skip to content
C.W.K.
Stream
← C.W.K. Quests
🔥

Smolder Quest

New: 2026-09-14Updated: 2026-09-14

A session that outlives its window — how a family terminal owns the pane, the daemon, and the phone as one Swift product

Two programs you do not own, with a serialized screen stream between them, is a seam. Every friction that made you reach for iTerm was a symptom of that seam. Smolder is the family's answer: a Swift Mac app and a Swift iPhone/iPad app that attach to sessions a daemon owns. This quest is the product choices, not a clone of the repo and not a Swift language course. You will walk the Mac half and the phone half at equal weight, because they are the same fire seen from two surfaces.

8 tracks · 36 lessons · ~7h · difficulty: intermediate-to-advanced

Level 0Spark
0 XP0/36 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
Most terminals are a window glued to a process. Quit the window and the process dies; lock the phone and the SSH session is a coin flip. Smolder inverts the ownership. A small daemon owns the PTYs and the journal. The Mac app is a projection that may quit. The phone is a surface that may lock, suspend, or vanish. Neither UI is allowed to interpret its own disappearance as a request to kill the host session. That inversion is the whole product, and it is why the quest spends as much time in your pocket as it does on the desk. You will start at the seam Smolder exists to close: iTerm plus tmux, two programs and a byte stream, every family friction living above a core nobody here should rewrite. You will embed that core (SwiftTerm, pinned) and keep your code in the layer Dad actually complained about — tabs, panes, restore, family doors. Then the daemon: close ends a job, detach keeps it, restore rematerializes a declaration and never resurrects a PID, and a phone hangup is not a kill. Then the Mac craft: one PTY per pane, a pane tree you can drag as one tab, arrangements as JSON, identity in chrome rather than in the TUI. Then the door: siblings knock with a typed client from Sibling Kit; drafts stay outside the PTY; Pippa proposes and you type. The second half is the same fire on a different surface. Shells stay on the host. One wire type compiles without AppKit. Observation must not resize the Mac PTY. Spectator is the default; take-control is a lease; reconnect is spectator again; keystrokes never replay. Delivery is TestFlight, not a cable. The last track is the authorized destination — durable checkpoints, direct SSH, keys and jump hosts, files — taught in a different tense from the working contract, because a quest that collapses those two tenses teaches a phone that does not exist yet.

Tracks

  1. 01🧵The Bar Is Absence

    0/4 lessons

    Two programs you do not own, and a byte stream between them, is a seam — not a workflow

    Smolder exists because iTerm plus tmux is two programs and a serialized screen. Every family friction that sent you back to iTerm lived above a terminal core nobody here should rewrite. This track names the seam, embeds the core, and sets the only bar that matters: you should not need the program you do not own. The Mac daily driver is the first surface. The phone is the same fire, later.

    Smolder on the Mac: a native four-pane window, ember chrome, fleet rail, and a Pippa input bar — the family terminal instead of iTerm plus tmux.
    The bar is absence. Four panes, one daemon, no multiplexer between process and pixels.
    Lesson list (4)Quiz · 4 questions
  2. 02🕯️Sessions Smolder

    0/5 lessons

    The daemon owns the fire. The app is a projection. A phone hangup is not a kill.

    If the window owns the process, quitting the window is a death sentence and locking a phone is a coin flip. Smolder moves ownership into a small daemon: PTYs, a bounded journal, receipts. The Mac app attaches. The phone attaches. Close ends a job; detach keeps it; restore rematerializes a declaration and never resurrects a PID. This track is the Mac-owned root that the iOS half depends on — without it, a pocket surface would be a second owner, which is the failure mode.

    Lesson list (5)Quiz · 4 questions
  3. 03🪟Own the Pane

    0/5 lessons

    One PTY stream per pane, a tree you can drag, identity in chrome — the emulator is embedded, the pixels are yours

    Once the daemon owns the process, the Mac app still has to be a terminal you can live in: nested splits, a tab that moves as one tree, arrangements that are declarations rather than screenshots, and a face you recognize without reading the title. This track is the desktop craft. Local panes are never wrapped in an external multiplexer. Content colors stay standard for TUIs; Smolder's ember lives in the chrome.

    Lesson list (5)Quiz · 4 questions
  4. 04🚪The Door, Not a Prompt

    0/4 lessons

    Siblings knock with a typed client. Drafts stay outside the PTY. Pippa proposes; you type.

    A family terminal that cannot be opened by the family's other apps is just another iTerm. The product API is a loopback door: authenticated, typed, receipted, no generic "type this into a pane" verb. Waygate and Watchfire already knock with Sibling Kit's terminal client. Anvil preparation and Firebrand resume use a bounded native handoff. Command proposals come from Pippa and insert against a frozen snapshot, never with a newline. This track is the Mac door. The phone gets its own gateway later — a different door, on purpose.

    Lesson list (4)Quiz · 4 questions
  5. 05📱Same Fire, Different Surface

    0/5 lessons

    Shells stay on the host. One Swift wire. Observation must not resize the Mac.

    The phone is not a second terminal owner. It is a Swift surface on the same fire the daemon already owns. Shared wire types compile without AppKit, without local process inspection, without a local filesystem assumption. SwiftTerm renders on both sides. Watching from a narrow screen must not change the host PTY. One universal app adapts to iPhone and iPad; it is not two products with two contracts.

    Lesson list (5)Quiz · 4 questions
  6. 06🔑Watch First, Then Take Control

    0/5 lessons

    Spectator is the default. The lease is singular. Reconnect is spectator again. Keystrokes never replay.

    Opening a session from a phone is not taking the keyboard. You browse, you watch, you copy. Take Control is an explicit act that acquires the single input lease; the previous writer becomes read-only; the process stays alive. Returning control is also explicit. After a network loss, a lock, or a suspension, you reopen as a spectator — never by replaying a queue of keystrokes, never by retrying an uncertain create, never by re-claiming control in the dark. Anvil on the phone uses the same preparation policy as the Mac: drafts stay outside the PTY.

    Lesson list (5)Quiz · 4 questions
  7. 07✈️The Gateway and TestFlight

    0/4 lessons

    A different door from the sibling door. The device is the credential. A cable is a build check.

    The sibling door is loopback, for apps on the same Mac. The phone cannot use it, and must not be given it. A separate gateway speaks a bounded WebSocket to approved devices on the family's tailnet. No model credential and no sibling HTTP credential grants input. Delivery of the iOS app is TestFlight — the family's pipeline, vendored from Sibling Kit, with Firebrand as the canonical iOS reference. A cable install is a build check that expires; upload is not delivery either.

    Lesson list (4)Quiz · 4 questions
  8. 08🗺️The Pocket Terminal's Destination

    0/4 lessons

    The working contract is continue-host-work. The authorized product is a general terminal in your pocket. Do not mix the tenses.

    Dad authorized a staged native iPhone/iPad product whose eventual shape is a general-purpose SSH terminal: keys, jump hosts, file transfer — not permanently restricted to the family fleet, not permanently dependent on an office gateway. The working contract you can hold today is continue-host-work through that gateway. This track teaches the destination in a different tense. SSH on the remote Mac through the gateway does not count as direct iOS SSH. A quest that says you can already do M3 from a phone is teaching a phone that is not in your pocket yet.

    Lesson list (4)Quiz · 4 questions
Spotted a bug or have feedback on this page?Report an Issue

Comments 0

🔔 Reply notifications (sign in)
Sign inPlease sign in to comment.

No comments yet — be the first.