Skip to content

Reading and organizing mail

Allison Bayless edited this page Oct 19, 2026 · 2 revisions

Reading and organizing mail

Use the three panes to choose an account or folder, select a message, and read its contents. Press Tab or Shift+Tab to move between panes.

In the message list, press Space to select several messages. You can then archive them with a, delete them with d, move them with m, or mark them as read. Press A to select every message in the current view.

Press / to search, u to show unread mail, and t to place starred messages first. Search covers subject, sender, recipients, and message body across every account and folder, and matches as you type.

Type # and a tag name to search by the tags shown on message rows: #github, #billing, or any other category, and #reply, #urgent, or #important. Tags match as you type (#git already finds #github), several tags must all match, and they combine with words: invoice #billing finds billing mail mentioning an invoice. Your corrections count, so a message you recategorized is found under its new tag, not the plugin's. In the content pane, Ctrl+E shows the full headers and authentication results. Ctrl+U opens the mailing list's unsubscribe option when the message provides one.

Managing folders

Gmail's standard folders appear in the System section: Sent Mail, Drafts, All Mail, Trash, Spam, Starred, and Important. Inbox appears first under the account. An unselectable server container does not hide its selectable subfolders.

Folders are your mail server's real folders, shown as a tree: a folder such as Work/Projects sits under Work, and a folder with subfolders has a ▾/▸ marker. If a server reports no hierarchy delimiter, its folders stay flat: punctuation in names is literal, n creates at the account root, and nesting or moving folders into/out of parents is unavailable. Reordering, renaming, deleting, and moving messages still work. In the left pane:

  • Enter or Space on a folder with subfolders collapses or expands it (the state is remembered). ← collapses an open folder, or moves to its parent folder; → expands a collapsed one. A collapsed folder's unread count includes everything inside it. To fetch a folder that has subfolders, use s.
  • n creates a folder: on a folder it makes a subfolder, on an account or section header a top-level folder. Type the name in the prompt row and press Enter (or Esc to cancel).
  • r renames the selected folder; its subfolders come along.
  • d deletes the selected folder from the server after asking. The prompt says how many subfolders go with it and that every message in them is deleted, and y or Enter confirms. The Inbox and system folders (Sent, Drafts, Trash, Junk, Archive, and Gmail's [Gmail] folders) can't be renamed or deleted.
  • H hides the selected folder (and its subfolders) from TideMail's sidebar only; nothing changes on the server. "Show hidden folders" in the command palette lists them again, marked (hidden), and H on one unhides it.
  • Shift+K / Shift+J walk the selected folder up or down the tree one row at a time, and it is shown indented while it is inside a parent. Passing a sibling just reorders it (the order is local to TideMail). Moving onto an open folder that has subfolders puts it inside, as the first child going down or the last going up; moving past a parent's last or first subfolder takes it out, to just after or before that parent. Collapsed folders are stepped over, never entered. Moving in or out is a real move on the server, subfolders included, and is refused if the destination already has a folder of the same name. The Inbox and system folders can be reordered but never moved in or out.
  • > nests the selected folder under the folder just above it, as its last child, even if that folder has no subfolders yet (Shift+J/K can only move into a folder that already has some). < moves it out of its parent to just after it. Both are real moves on the server, subfolders included. While a create, rename, move or delete is still running on the server, further ones are refused with a short notice, so a quick second keypress can't act on a name that is changing. A rename or move is also refused up front if any subfolder would land on an existing folder, and deleting a folder is refused if a system folder (such as a \Sent subfolder) is inside it.

The command palette has matching entries: New folder, Rename selected folder, Delete selected folder, Hide or unhide selected folder, and Show hidden folders. Creating a folder is also possible from the move picker with n.

Needs You

Needs You, just below Unified Inbox in the sidebar, gathers the inbox messages across every account that need you: ones tagged as needing a reply, urgent, or important. Its number is how many there are, read or not. Reading a message does not remove it; Needs You is about what still needs doing, not what is unread (u still narrows the list to unread mail).

The tags come from annotations stored by plugins (for example TideMail Smart (JEV)), from any plugin, installed or since removed. Without such a plugin Needs You stays empty ("Nothing needs your attention."). Opening it only reads what is already stored: it never runs a plugin or goes online.

The most pressing messages come first: urgent, then needing a reply, then important (a message with several of these ranks higher), newest first within each. With threaded conversations a whole thread appears if any of its messages qualifies, and its tags combine the thread's signals.

If a message doesn't belong there, press X (or choose Dismiss from Needs You in the palette). The message and its tags are untouched; TideMail just remembers not to show it here, even if a plugin later tags it again. Ctrl+Z while still in Needs You brings back the latest dismissal, and Restore to Needs You in the palette does the same for a dismissed message opened from its normal folder. Why is this in Needs You? lists the reasons and the annotations behind them. All the usual actions (reply, archive, delete, move, star, mark read) work on messages here. The sidebar count updates immediately when you delete, archive, or move messages, including during the six-second undo window. Undoing the action or a failed action restores the count.

Waiting on Them

Waiting on Them, below Needs You, lists conversations where you sent the latest message and are waiting for someone else to answer, across every account. It is worked out from the conversation itself, not from plugins: nothing is classified and nothing goes online.

  • A conversation appears when its newest real message is from you (from any of your configured accounts' addresses; display names don't count) and went to at least one other person. First messages count; a reply beforehand is not needed.
  • It leaves as soon as someone else's reply arrives, and returns when you answer again.
  • On a new install, only mail you send after TideMail was first set up can start a wait, so the first sync of years of Sent mail doesn't fill the view with old, already-handled conversations. Existing installs keep their current waits.
  • Mail in Inbox, Sent, Archive, and other folders counts, so archiving a conversation doesn't hide it. Trash, Spam, and Drafts are ignored.
  • Mail between your own addresses, and mail only to robots or lists (noreply@, notifications@, mailer-daemon@, obvious mailing lists), is left out. Bounces and drafts don't change a conversation's state.
  • Mail you send from TideMail appears once TideMail has fetched your Sent folder, which it does right after sending. Mail sent from your phone or webmail appears after your next sync of Sent (s in Waiting on Them syncs inboxes and Sent folders).
  • The longest wait comes first. The sender column shows who you're waiting for (↗ Sarah +1); the number beside the entry counts conversations.

Press X (or Stop waiting in the palette) to stop tracking a conversation; Ctrl+Z right after, or Resume waiting, brings it back. This only affects the current wait: if they reply and you answer again, or you send another nudge, the conversation appears again. Stopping never changes your mail or any plugin annotations. Why is this in Waiting on Them? says when you sent the latest message and who you're waiting for.

Waiting on Them and Needs You are independent. After you reply, an old plugin tag may still keep the message in Needs You until you dismiss it there.

Snooze

Press Z (or Snooze in the palette) to hide something from Needs You or Waiting on Them until later. In Needs You it snoozes the message (or every selected message); in Waiting on Them it snoozes the conversation; elsewhere it snoozes messages so they stay out of Needs You. With several messages selected, the picker opens once and snoozes them all to the same time.

Choice Wakes at
Later today 7:00 PM today; after 5:00 PM, three hours after the next full hour
Tomorrow morning 8:00 AM tomorrow
Tomorrow evening 7:00 PM tomorrow
This weekend 9:00 AM Saturday (next Saturday once this Saturday's has passed)
Next week 9:00 AM next Monday
Pick date/time any future time, typed as YYYY-MM-DD HH:MM (past times are refused)

Times are your local time (daylight-saving changes keep 9:00 AM at 9:00 AM) and are stored as absolute times.

Snooze is local to TideMail. It creates no folder on the server, doesn't move or archive anything, doesn't change read state, and leaves plugin tags alone: the mail stays in its normal folders. Snoozed, below Waiting on Them, lists what's snoozed, soonest to wake first, with the wake time in place of the date; Z there unsnoozes, and Why is this snoozed? shows until when.

When a snooze ends, TideMail checks the item again: it comes back only if it still needs you or is still waiting, using whatever plugin tags it has by then. A dismissal or Stop waiting still applies after a snooze ends; snoozing never clears them. If someone replies to a snoozed waiting conversation, the snooze ends at once (the conversation isn't waiting any more, though the reply may show up in Needs You). If you write again, that's a new wait and it shows normally. Snoozes that came due while TideMail was closed end when it starts. There's no notification when a snooze ends; the item simply reappears.

Receipt tables keep item descriptions, quantities, and prices together, even when the sender uses ordinary cells for headings or merges cells for totals. Amounts align on the right. When columns would be too cramped, each row becomes a labelled record; tables without headings use label/value pairs for two-column rows. This adapts automatically as you resize the reading pane. Complex tables with row-spanning cells retain the simpler text fallback.

Newsletters keep each card together: an image stays next to its heading, description, and button, and a thin rule separates one card from the next. Cards that sit side by side in a browser stack in reading order, left to right and then top to bottom. Quoted and forwarded messages are not grouped.

On a terminal with Kitty graphics support — Ghostty, Kitty, Rio — images embedded in the message (CID parts, inline data URIs, and content-location references) are drawn as real raster images inside the reading pane. They are scaled to the pane width and to the sender's width and height, never stretched or enlarged, and scroll, clip, and reflow with the surrounding text. Changing the terminal font size re-lays them out for the new cell size. Remote images are blocked for privacy: press i in the content pane to load them for the message you are reading. On terminals without graphics support, every image becomes a labelled text placeholder such as [image: Fall sale], and the message stays readable. Set [display] images = "off" to use placeholders everywhere, including on a graphics-capable terminal.

Images supplied as MIME parts stay local even when their Content-Location is an HTTPS URL. If a previously loaded remote image has left the image cache, press i again when prompted to reload it.

Choose Settings → Display → Reading → Images (Auto or Off) and press Ctrl+S to save. The change takes effect immediately; remote images still require i to load. The setting also shows whether inline images are supported.

foot and WezTerm: inline images are currently unsupported. TideMail uses text placeholders there because the renderer requires Kitty Unicode placeholders and virtual placements. foot supports Sixel images, which this renderer does not use. Email text and attachment saving still work; pressing i does not enable image display in these terminals.

Search only reaches mail TideMail has cached. The first sync fetches the 100 most recent inbox messages and 25 messages from other folders, whose attachments can make each batch much larger. Moving down past the last message in a folder pulls the next 100 from the server, so you can page back as far as it goes.


Source in TideMail at 9621bf2

Clone this wiki locally