MoeDocs
Doing

Before anything goes out

Moe never sends anything to another person on its own. When it is about to, an email, a WhatsApp or Telegram message, a reply in a thread, a calendar invitation, a file shared with someone, a sheet opens on this Mac first: which service it is going out on, who it is going to, and the whole message. Send sends it. Cancel (or Esc) does not, and Moe is told you said no rather than trying again. The line at the top says Nothing has been sent yet for as long as the sheet is up. Return is deliberately bound to nothing; ⌘↩ is Send.

You can change the words before they go. The message on the sheet is a field, not a label: click into it, fix the sentence, cut the paragraph, add the thing Moe forgot, and click Send. The button says Send edited when you have changed something, and what goes out is exactly what is in the field. A mail's subject can be rewritten the same way. Who it is going to cannot: change your mind about the recipient and it is Cancel and ask again. The words stay read-only when a message contains characters that can reorder text on screen (the sheet names them instead), when it is too long to draw whole, or when the service has nowhere to take an edited version back to.

Moe knows the sheet is waiting on you. When it opens, Moe says so, "It's up on your screen — press Send when it looks right, or change the words first", and the island reads Waiting for you to press Send until you answer. If you take your time, Moe reminds you once. When you have answered, Moe tells you what happened: sent, or cancelled. (This is Moe on your Mac. When your Mac is closed, Moe Away asks on your phone instead; see Away.)

When the sheet appears#

The sheet appears for exactly the things that reach another person, on every route Moe has to them:

  • Mail — Gmail, through your own mailbox on this Mac or through Google via Composio. Sending, replying, forwarding, sending a draft. Writing a draft is not a send; it stays in your mailbox.
  • Chats — WhatsApp, Telegram, and any other chat app Moe is connected to. The one exception is a note Moe sends to your own Telegram: that is how meeting notes reach your phone.
  • Invitations and sharing — a calendar event with guests on it, a Drive file shared with someone. Each of those puts a message in somebody's inbox.
  • The keyboard — while Moe is driving your Mac, pressing Return in a message box is what sends in Mail, Messages, Slack and every web chat, so that key is asked about too. The first Return in a computer-use session asks, and saying yes covers the rest of that session for an hour. Quitting an app (⌘Q) is asked about the same way, because unsaved work is lost.
  • A browser — five moments: paying, buying or booking; sending a message, an email or a post; deleting or cancelling something that may not come back; entering a password, a card number or another secret; letting an app into one of your accounts. The first one of a kind in a conversation asks, and the yes covers that kind of moment for the rest of the conversation, up to an hour. A click, a keypress or a page opening is never a sheet on its own.
  • GitHub — anything that writes: opening a pull request, pushing a file, merging, commenting, deleting.

It never appears for reading. Searching your mail, listing your calendar, opening a Drive file, checking a WhatsApp chat, looking something up in a spreadsheet: none of that is a dialog, whichever route Moe takes.

Nor for writing a draft, or for writing about sending. Ask Moe to open a reply to an email, forward one, or start a new message, and it does, with no sheet, because nothing has gone anywhere; if Moe is then asked to send it, that is when the sheet opens. And a note that says "email the team about this", or a ticket describing a mail problem, is words about sending, not a send: Moe reads what a command does, never what it is carrying.

Or let the whole session run. A browser or screen sheet has a third button, Allow everything this session. One click, and every one of those moments in that conversation, a post, a payment, a deletion, a password, a consent page, a Return on the screen, goes ahead without asking, until the conversation has been quiet for an hour. It is for the stretch where you have handed Moe a job, "reply to twenty posts", "work through these bookings", and every dialog is an interruption you already said yes to. It never reaches another conversation, never reaches mail or chat sends (those keep their own sheet), and is never remembered past that hour.

The sheet reads like a sentence, not a script. A browser sheet says what is about to happen and where, Moe is about to send a message, an email or a post on x.com, headed with the site's own mark, and what Moe is about to run sits under it in its own quiet block, there if you want to read it. The site named is the one being acted on: a reply that happens to contain a link to another site is a reply on the site it is posted on.

The smaller question#

A smaller dialog covers the things that change something without messaging anyone: rewriting a spreadsheet, adding a task, creating an event with no guests, or a tool from a service Moe has never seen. It says Nothing has been done yet and Moe wants to run this. Read it first, with Do it, Always allow to stop being asked about that one tool, or Cancel. That memory is per tool: allowing a Sheets edit says nothing about Tasks, and nothing you allow ever silences the send sheet. Moe's own housekeeping, closing a follow-up you have answered, moving a reminder, asks nothing at all.