Snooze a session
Snooze temporarily hides a session from the sidebar and attention lists until a time you pick — useful for "I'll deal with this later." When that time arrives (or you unsnooze early), the session returns to your inbox as "needs you" so you actually see it again — even if it was paused, ended, or archived when you snoozed it. It is different from pause: snooze only hides the session in the UI, while pause actually freezes (kills) the underlying Claude CLI process.
What it is
Snooze temporarily hides a session from the sidebar and attention lists until a time you pick — useful for "I'll deal with this later." When that time arrives (or you unsnooze early), the session returns to your inbox as "needs you" so you actually see it again — even if it was paused, ended, or archived when you snoozed it. It is different from pause: snooze only hides the session in the UI, while pause actually freezes (kills) the underlying Claude CLI process. A snoozed session keeps running in the background; a paused one does not.
Snoozing also leaves a visible breadcrumb inside the session's chat — an amber divider line above the most recent agent message that says "Snoozed until ...". When the snooze ends (whether by expiry, manual unsnooze, or a reply you send yourself), that same divider mutates in place to "Returned from snooze" so you can see at a glance where you left off. If you wrote a note when snoozing, it stays attached to the divider through that mutation.
What you see in chat
When you snooze a session, an amber-colored divider line is inserted into the conversation transcript. It spans the full chat width and shows, from left to right: an alarm-clock icon, the text "Snoozed until <human-readable time>" (e.g. "Snoozed until Wed, Apr 30, 9:00 AM"), and a small timestamp showing when you hit snooze. If you typed a note, it renders centered directly beneath the divider as Note: <your text> in the same amber tint, with whitespace and newlines preserved exactly as you typed them.
On the active marker — while the session is still snoozed — two small amber text links appear right after the timestamp, separated by a · dot: Edit and Unsnooze. Edit reopens the Snooze Palette for this session (the same palette the header badge opens) so you can pick a new time. Unsnooze ends the snooze immediately, right from the chat, and shows a brief confirmation toast with an Undo button that re-snoozes to the original time and note if you clicked by mistake. These links let you manage the snooze without leaving the conversation or hunting for the header badge — handy on mobile, where the marker is the easiest target to reach. They appear only on the active "Snoozed until…" marker: once it has mutated to "Returned from snooze" (see below) the snooze is over, so there is nothing left to edit or end and neither link is shown.
Crucially, the marker is hoisted to render directly above the most recent agent message at the moment of snoozing — regardless of where it lives chronologically in the message stream. The intent is "this is the message we're returning to". When you reopen a snoozed session, the chat scrolls to land on the marker itself rather than the agent message below it: the amber divider sits at the top of the viewport (or at the top of the agent reply, for short sessions that don't need to scroll), so the visual cue and any note you wrote are the first thing you see. This applies to both active "Snoozed until..." markers and "Returned from snooze" markers — re-opening a returned-snooze session lands you on the same breadcrumb you would have seen during the snooze. If a newer agent message arrived AFTER the snooze marker (e.g. the session re-fired during the snooze window), the marker no longer anchors to the latest agent — and the scroll falls back to the latest agent message instead, so you don't miss the new reply.
When the snooze ends — whether automatically at the snoozed-until time, manually via the Unsnooze menu action, by a reply you send yourself, or by re-snoozing to a new time — the same divider mutates in place. The label flips from "Snoozed until ..." to "Returned from snooze", the alarm-clock icon flips to a plain clock icon, and returnedAt gets stamped with the time the snooze ended. The note (if any) remains visible underneath. You do not see two separate rows ("Snoozed" + "Returned") — there is exactly one chat-marker row per snooze episode.
For sessions that were snoozed before this feature shipped (a "legacy" snooze that has no marker row), the system falls back gracefully: when the snooze ends, a fresh "Returned from snooze" system message is inserted at its chronological position. New snoozes always get the modern marker.
Where to find it
Open the session and use the three-dot menu in its header, or press the snooze keyboard shortcut. Archived sessions can be snoozed from the Archive view as well.
How it behaves
How to use it
Open the session, click the three-dot menu (
MoreHorizontal) in the session header, and choose Snooze (alarm clock icon). You can also press thesnoozeSessionkeyboard shortcut shown next to the menu item.Already-archived sessions can be snoozed too — from the Archive view. A Snooze button sits on each archived row and in the open-session detail header (desktop and mobile). Snoozing an archived session keeps it archived until the time you pick, then un-archives it back to your inbox as "needs you" (the return behavior described above). This is the only place to reach Snooze for an archived session, since archived sessions are hidden from the main sidebar; it opens the same Snooze Palette as everywhere else, and confirmation arrives via the usual "Snoozed until…" toast. Once it's snoozed, that archived row shows a "snoozed until…" indicator and the Snooze button becomes Unsnooze (cancel the snooze while keeping it archived).
The Snooze Palette opens with preset durations: 2 Hours From Now, This Morning (only between 12 AM and 6 AM — resolves to 8 AM the same day), This Afternoon (only before 10 AM — resolves to 1 PM the same day), This Evening, Tomorrow Morning, Tomorrow Afternoon, Day After Tomorrow, This Weekend, Next Week, End of Week, Next Weekend, Next Month. The palette only shows the first 4 contextually relevant presets, so during the early-morning window "This Morning" slots in as the second option (right after "2 Hours From Now"); from 6 AM onward it disappears and "This Afternoon" takes the second slot until 10 AM, when "This Evening" takes it until 6 PM. You can also type a custom time like "in 2 hours", "friday 9am", or compact shorthand like "805p" / "8p" / "1230a" — the parser resolves it, and the live preview labels it back in plain words, keeping your day word and tidying the clock instead of echoing what you typed: "friday 9am" reads back as "Friday at 9 AM", "tomorrow 5pm" as "Tomorrow at 5 PM", and bare "805p" as "8:05 PM". A bare weekday typed on its own fills out to its full day name — "sat" reads back as "Saturday" — instead of echoing the stub you typed (the resolved date shown beside it already carries the abbreviation). The parser is also forgiving of accidental "fancy" digits: if a soft-keyboard long-press slips in a superscript (
³), subscript, or full-width digit, it is read as the ordinary digit (so³0mis treated as30m) rather than silently failing to parse. Typing a plain number expands into multiple interpretations: for1–11(a valid 12-hour clock reading) BOTH the AM and PM clock times appear first — the sensible default leads (so2still snoozes to2:00 PMon Enter, then lists2:00 AMas a second pickable row), thenN minutes/N hours/N days. For12–23the durations come first and the 24-hour clock reading (e.g.15→3:00 PM) is demoted to the bottom — US users typically mean a duration, not a 24-hour time, when typing a bare number. A 2-digit number of24or more is now also read as a dropped-trailing-zero clock (the first digit is the hour, the second is the tens of minutes) —93reads as9:30,63as6:30,45as4:50— offering BOTH the AM and PM readings soonest-first AFTER the durations, so pressing Enter still snoozes for the duration (30stays30 minutes,90stays90 minutes) and the clock is an added pick one arrow-down away. Only a real time qualifies: the second digit must be0–5, so96(which would be9:60) shows no clock — just its durations; the1–11and12–23readings above are unchanged. A 3–4 digit number is read as a clock time AND a calendar date, both offered ABOVE the durations (a bare930almost always means 9:30 or Sep 30, not 930 minutes):930lists9:30 PM/9:30 AM(an ambiguous hour7–11offers both readings, soonest first) thenSep 30(the9/30date) then930 minutes;1231lists12:31 PMthenDec 31then1231 minutes. The clock and date are each validated independently — an invalid clock (365= 3:65) or an impossible date (931= Sep 31 — rejected, never silently rolled) is simply skipped, and1530(a 24-hour time with no valid15/30date) reads as a single3:00 PM-style clock. This also means a valid HHMM like1441(14:41) now offers2:41 PMwhere it previously showed nothing.Smart AM/PM handling (no sleep hours). When you type a clock time without AM/PM — bare (
6:00,2,530) or after a day word (tomorrow 6:00,monday 1,march 25 9,3/25 6:00) — the parser will never assume sleep hours (12 AM – 6 AM). The rule:- Hours 1 through 6 always resolve to PM. So
tomorrow 1:00is1 PM tomorrow, not 1 AM;monday 6is6 PM Monday. - Hours 7 through 12 after a day or date are genuinely ambiguous (
thursday 8could be morning or evening), so the palette offers both readings as two pickable rows —thursday 8listsThursday at 8 AMandThursday at 8 PM;tomorrow 9lists 9 AM and 9 PM;march 25 8lists both. Hour12lists noon (12 PM) first, then midnight (12 AM). Pick the one you meant. - A standalone clock typed with a separator and an ambiguous hour
7–11(8:15,9:30,11:05) also offers both readings — soonest first: in the afternoon8:15lists8:15 PM(tonight) then8:15 AM(tomorrow); in the morning the AM reading leads. (12stays noon, and a plain bare number like2or8uses the number expansion above — BOTH clock readings, default first, plusN minutes/hours/days.) - Hours 13 through 23 are read as 24-hour as-is (
15is 3 PM,20is 8 PM). - The word
tonightforces the evening reading to a single time:tonight 9is9 PM today,tonight 11is11 PM today. Hours 1–11 aftertonightalways resolve to PM. - Explicit AM/PM always wins —
tomorrow 6amis unambiguously6 AM tomorrowregardless of the rule above.
So a quick
tomorrow 8now lets you pick morning OR evening instead of silently assuming AM, and a6:00ortomorrow 6:00never lands on 6 AM to surprise you the next morning. If you genuinely want an early-morning time, type the meridiem (6am,tomorrow 6am).AM vs PM are color-coded. Wherever the palette shows a clock label, the
AM/PMtoken is tinted — AM a cool sky tone, PM a warm amber — so the two readings of an ambiguous time (Thursday at 8 AMvsThursday at 8 PM) are tellable at a glance instead of differing by two easy-to-miss letters. The coloring is additive: theAM/PMtext stays (so it's readable without relying on color — colorblind-safe), and it applies to single labels too (9:30 AM,5 PM (End of day)). The same treatment shows up everywhere these parser labels render — the session/inbox Snooze Palette, the custom-shortcut live tester, and the Supermail snooze picker. Colors come from theme-aware--meridiem-am/--meridiem-pmCSS vars (light + dark), applied via a small shared renderer helper /src/renderer/src/lib/meridiem-label.tsx (renderMeridiemLabel); Supermail mirrors it in its own bundle.A much wider vocabulary is understood (2026-07-04). Beyond the day+clock combos above, the box now also understands: today and today 5pm (never silently rolls to tomorrow if the time already passed); the clock before the day —
5pm tomorrow,9am monday,noon friday,eod friday; relative anchors —2 hours from now,a week from friday,two Mondays from now(the Nth upcoming weekday — counts occurrences, so it skips ahead N: the 2nd upcoming Monday, "from today" also works),week after next,fortnight; business days —3 business days,next business day(skips weekends); ordinal days —the 15th,25th of march; holidays —christmas,thanksgiving,nye,christmas 9am, and their common misspellings (christmass,hallowen,valntines— a curated list, not fuzzy matching); bare months —june,early august,mid month; week parts —next week friday,monday week; same time —same time tomorrow,same time next week(keeps your current clock time); vague waits —soon(1h),shortly(30m),in a while(2h); end-of-period phrases —eom,eoy,eoq,cob; mealtimes and routines —lunch,dinner,after work,before bed,first thing; compound durations —an hour and a half,1h30; seconds —30 seconds,a sec(reads as a colloquial half-minute, not literally one second); leading filler words —on friday,until monday,remind me in 2 hours,wake me at 7all strip the filler and resolve the rest; typo tolerance for common misspellings — weekdays (thrusday,wensday,satuday) and number words (tow/twp→ two), where the number typos are corrected only when they sit directly before a time unit or weekday, so an ordinary word is never silently reinterpreted; and forgiving punctuation/quotes/spacing (tomorrow.,"tomorrow",next week). Recurrence words (every monday,daily) are deliberately not understood here — snooze is always one-shot.The vocabulary widened again (2026-08-08) — the "never disappointed" pass. Polite or emphatic tails are ignored —
tomorrow pls,5pm sharp,friday at the latest,next week sometime, a trailing:)or emoji, and curly "smart" quotes from phone keyboards all parse as if clean. Minutes without a unit:in 5/for 20now mean minutes (with a proper "in 5 minutes" preview). More duration shapes:in an hour and a half,1 hour 30,an hour and a quarter,three quarters of an hour,30 minutes from now,in a week's time/in 2 months' time,.5h,1/2 hour,another hour,30 more minutes, and ranges keep their first number (2 to 3 hours→ 2 hours, same keep-first reading as3 or so). More clock idioms:10 past 3,20 to 5,quarter till/of 5, military0800 hrs/1300 hours(four digits + hrs;0800is always 8 AM), and Britishhalf 8(= 8:30). More dates: day-first21 june,january 2027, gluedjan1,15th of next month,the first of the month(word ordinals work in date contexts —march the third),start of september/end of january(last day, 5 PM), seasons (summer,next spring— meteorological starts: Mar/Jun/Sep/Dec 1), and quarters (q1–q4,in q3,q2 2027). More day-part words:early morning(6),mid morning(10),late morning(11),early/mid/late afternoon(1/3/4 PM),early evening(5 PM),late evening(9 PM),late night(11 PM),dawn(6),sunrise(6:30),dusk(7 PM),sunset(7:30 PM — fixed representative times, not seasonal),before lunch(11:30),before noon(11),after breakfast(8:30),eob/end of business(5 PM), Aussiearvo(1 PM), and baretomorrow am(8 AM) /monday pm(1 PM) — though a calendar DATE plus baream/pm(march 8 am) deliberately stays unparsed somarch 8always reads as the date. More phrases:after the weekend(Monday 8 AM),over the weekend(Saturday),top of the hour/on the hour(next :00),next hour,not today(tomorrow 8 AM),not now(+3h),in a few(30m),next few days(+3 days),later this month,end of tomorrow(5 PM),late next week(Friday 5 PM),start of the week,midweek(Wednesday),when i wake up(8 AM),same time next month/this time next year,next weekday(skips weekends), and British week anchors —a week tomorrow,2 weeks today,a week on monday. More strippable lead-ins:follow up friday,circle back monday,check back in 2 hours,come back to me tomorrow,bug me/poke me/nudge me/hit me up/ask me again/try again/revisit/resurface, andnot until friday. An either-or picks the FIRST option (monday or tuesday→ Monday). Typo coverage grew too (thusday,firday,wendsday,tusday,mondy,tmrow,tomarrow,2moro,midnite, gluednextweek/nextmonth), plus texting shorthandb4 noonandfirst thing tomorrow morning. Everything above is locked by exact-instant tests in /tests/unit/shared/snooze-time-parser-expansion.test.ts; the deliberate refusals (recurrence words,8.30with no AM/PM, international21/6, timezone suffixes like5pm EST) are unchanged.Even more (2026-08-09) — parity with the Supermail snooze box. Three additions. Easter —
easter,easter 9am(computed for the year, no lookup table needed). The middle and end of a season —middle of summer,mid of spring,end of winter— extending the season starts above with the mid-point (the 15th of the season's middle month) and last day of each meteorological season (soend of summeris Aug 31). And numeric dates now follow your language's date convention — a bare1/2reads month-first for US English (Jan 2) and day-first for the UK, Europe, and most other locales (Feb 1), while fully-spelled dates (march 25) and ISO dates (2027-01-02) read the same everywhere; if you're in the US nothing changes.Two-letter day and month abbreviations now resolve (2026-08-14). Just the first two letters of a weekday works —
sa→ Saturday,mo→ Monday,we→ Wednesday, and so on for all seven days (each has a unique two-letter start), including in combinations likesa 5pm,next sa, orby sa. The same applies to months whose first two letters are unique —de 25→ December 25,no 20→ November 20,ja/fe/ap/au/se/oclikewise — while the genuinely ambiguous two-letter month starts stay unread (macould be March or May,juJune or July). A single letter is still too ambiguous to resolve (scould be Sunday or Saturday, andm/w/dcollide with the minute/week/day shorthands).Two more ambiguous inputs now offer both readings. Typing
next mondaywhen the nearest Monday is only 1-2 days away is genuinely ambiguous (did you mean the close one or the one after?) — the palette lists This Monday and The following Monday, nearest first; more than 2 days out, "next Monday" is unambiguous and shows the single reading as before. Typingby friday(orby tomorrow,by christmas, any bare day) is also ambiguous between an end-of-day deadline and a morning one — the palette lists Friday 5 PM (End of day) and Friday 8 AM (Morning).by 5pm(an exact clock, not a day) isn't ambiguous and stays a single reading.A bare
Nmoffers both minutes AND months. The single lettermis the shorthand for minutes, but it's just one letter off from months (mo). So typing2m(or3m,1.5m, etc.) now lists two pickable rows —2 minutesand2 months— instead of silently assuming minutes. Minutes stays first, so pressing Enter still snoozes for minutes exactly as before; the months reading is simply now reachable with one arrow-down. This applies only to the ambiguous barem:2mo/2 monthsare already unambiguously months,2min/2 minutesare already unambiguously minutes, and2h/2d/ a plain number are unaffected.Parsed something wrong? Report it. If the box misreads what you typed — it shows nothing, or the wrong time — a subtle "Parsed this wrong? Report it" link appears just below the suggestions once you've typed anything (it's most useful on the "No matches" state). Clicking it opens a one-line "What did you mean?" field and a Send report button; sending flags the exact text you typed and the times the palette offered (plus your optional note) through the same in-app feedback pipeline the Feedback button uses, so the parser can be improved. It never changes what gets snoozed — it's purely a bug report — and a short cooldown stops a double-tap from sending the same thing twice. Implemented renderer-only in /src/renderer/src/lib/snooze-parse-report.ts (reuses
FEEDBACK_SEND; no new IPC).- Hours 1 through 6 always resolve to PM. So
(Optional) Add a note for future-you. Below the suggestion list, a 2-row textarea labeled "Optional note for future-you (Shift+Enter for new line)" is rendered for snooze-mode session targets only — it is hidden when scheduling a Send Later response (the response text is the "note") and for digest or email targets. To reach it without a mouse, press Tab from the time input; Shift+Tab returns focus to the time input. Enter from either the time input or the textarea submits the snooze with the trimmed note. Inside the textarea, Shift+Enter inserts a newline instead of submitting. The textarea has a 500-character browser-enforced max length. An empty or whitespace-only note stores no note metadata at all — it is not "stored as empty string", it is simply absent. Bulk snooze (when you Shift-select multiple sessions in the sidebar before opening the palette) does not offer a note field in v1 — the note is single-session-only.
Pick an option (click or Enter). The session disappears from the sidebar and inbox "needs you" lists, an amber "snoozed until..." badge appears in the session header, an amber chat marker is inserted into the conversation (see next section), and the palette closes. On desktop an undo toast appears ("Session snoozed" / "Email snoozed"); on mobile the toast is suppressed — the session vanishing from the list is feedback enough, so the screen stays uncluttered.
To change the snooze time later, tap the amber snooze badge in the session header — it reopens the Snooze Palette pre-targeted at this session, and picking a new time overwrites the existing
snoozedUntil. This is one of two edit-snooze affordances once a session is already snoozed — the other is the Edit link on the in-chat snooze marker itself (see "What you see in chat" below), which opens the same palette. (The overflow menu's "Snooze" entry simply hides whilesnoozedUntilis set.) The header badge is especially useful on mobile where the overflow menu is fiddlier to reach. Re-snoozing flips the previous chat marker to "Returned from snooze" and inserts a fresh marker for the new snooze window — you end up with one breadcrumb per snooze episode rather than a separate "Returned" + "Snoozed" pair.To unsnooze early, reopen the session — a reply you send yourself auto-clears the snooze — or click Unsnooze directly on the in-chat snooze marker (see "What you see in chat" below). Snoozes also expire automatically: a background checker runs every 60 seconds, clears
snoozedUntil, and updates the chat marker.
A snooze survives the session coming back some other way
Only you can end a snooze early. Omniscio revives sessions on its own for several reasons — the automatic inbox check-in nudge, the auto-wait wake-up re-drive, an inbound reply to your agent email address, and the rate-limit resume sweep that re-nudges a session parked on a provider limit. All of those reach the session through the same send path a person does.
Those automated revivals leave your snooze in place. The session keeps working, but it stays hidden until the time you picked, and the amber "Snoozed until…" marker stays active. Before this, any one of them silently cleared snoozedUntil and dumped the session straight back into your inbox — the deferral was gone with nothing to show it had ever existed.
A snooze still ends the three ways you'd expect: it expires on its own, you send a reply yourself, or you un-snooze it explicitly.
Related
Snooze a session (part 2) — the continuation of this page.
snooze-an-inbox-item.md — every other inbox kind (SMS, Telegram, alarms, all five approval kinds, RSS, drips, recipes, etc.) is also snoozable via right-click → Snooze; the same SnoozePalette UI and the same
isInboxItemSnoozedgate, but no chat marker (no shared conversation to mark).daily-digest.md — the daily digest is also snoozable from the inbox via the same SnoozePalette and
snooze-entityevent.automations-and-auto-replies.md — auto-reply rules that fire while you're not actively at the keyboard.
Last verified 2026-10-05