harness composer: design directions

Taking a cue from Claude: the box you type in holds only your message, and the settings move out of the way. Every direction runs the same flows: @ file references, photos, steering a running session, the model and thinking picker, a full context, a failed upload, losing the Mac, and a draft that changes on another device. Use the dark bar at the top of each page to switch between desktop and phone and to jump to a moment.

D2 · Dictation + folding work LATEST

Dictation: a mic next to send. Recording turns the button row into one strip (cancel · level meter · time · done). Done transcribes into the draft and never sends by itself. A failed transcription keeps the recording, with Retry.
Working: while a run works, only the newest three steps stay open and older ones fold into one line. A finished run folds to “Worked for 1m 12s · Read 6 files, made 4 edits…”.

D · Saddle + Rein

Look: the current harness colours (dark blue-grey with the blue accent), Geist, sans-serif replies.
Structure: A's layout. During a run, Steer becomes its own amber button with an “After this run” button beside it, so nothing depends on holding a button. Includes a phone keyboard state.

A · Saddle

Look: warm charcoal, serif greeting and replies, terracotta send. Closest to Claude.
Structure: the card holds the text, + and send. Project, model, thinking and context sit in a quiet row under the card. When the session is empty on desktop, the composer sits in the middle of the screen.

B · Rein

Look: monochrome with the current harness blue, Geist and Geist Mono, hairlines.
Structure: no card. A full-width bar whose top hairline fills with context. A mono status line above the input shows project · model · thinking · ctx.

C · Canter

Look: soft dusk palette, rounded type, springy motion.
Structure: one floating capsule. The send button wears the context ring. Photos, file reference, model, thinking and compacting all live in one tray behind +.

Revisions

Try in each

  1. Type a message and press Enter (desktop) or tap send. While it runs, the send button turns into Stop.
  2. Run → steer: start typing during a run. Send becomes Steer; hold it (or ⌥ Enter) to queue the message for after the run.
  3. @ file: type @ to reference a session file.
  4. Photos and Upload fails: attaching, preparing, retrying, and the 4-image limit.
  5. Model: model and thinking level. They can't change while a run is open.
  6. Context full: compact from the warning, the context control, or the tray.
  7. Offline and Other device: the Mac drops out, and a draft edited on the iPhone shows up here.
  8. Switch to Phone.
  9. D2 only: Dictate, Dictation fails, and Long run (14 steps; tap the “earlier steps” line or the header).
  10. D only: Keyboard + steer shows a run on the phone with the keyboard up and a steer being typed.

Mockups with made-up data. Not the real app.