Morning card. Today's meetings, what was prepared overnight, drafts waiting, overdue replies, promises due, unfinished code work. Built from local data, no model needed.
Pre-meeting note. 5–120 minutes ahead (15 by default): promises to that person, replies you wait for, waiting drafts, recent messages.
Yours to shape. Any half hour; any mix of six built-in sections (meetings, overnight, drafts, waiting, promises, code); up to five custom items (a title plus an instruction or reminder); an optional briefing model, separate from the reply model. With a model, it writes a short summary and answers the custom items from the day's data (which goes to the provider you picked); without one, custom items appear exactly as written, and a failed model never blocks the card.
Channels. Always the app; optionally Telegram (your owner chat), WhatsApp (your own number) and/or mail (your own address, from the account you pick), any combination, only ever to you. Each send is claimed before it starts (briefing_deliveries), a restart can never send it twice, an unsure send is not repeated, and a failed one is retried up to five times, five minutes apart, within six hours. Outbound secret scan first. Only the morning briefing leaves the app.
Settings live in the twin preferences (twin.db), not config.yaml.