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
- D2 · dictation (mic, recording strip, transcribing, failure with Retry) and a working section that keeps the newest three steps open
- D1 · mix: A’s layout, B’s palette, sans-serif replies, separate Steer and “After this run” buttons, phone keyboard state
- A1, B1, C1 · first three directions
Try in each
- Type a message and press Enter (desktop) or tap send. While it runs, the send button turns into Stop.
- Run → steer: start typing during a run. Send becomes Steer; hold it (or
⌥ Enter) to queue the message for after the run. - @ file: type
@to reference a session file. - Photos and Upload fails: attaching, preparing, retrying, and the 4-image limit.
- Model: model and thinking level. They can't change while a run is open.
- Context full: compact from the warning, the context control, or the tray.
- Offline and Other device: the Mac drops out, and a draft edited on the iPhone shows up here.
- Switch to Phone.
- D2 only: Dictate, Dictation fails, and Long run (14 steps; tap the “earlier steps” line or the header).
- 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.