Omniscio documentation
Browse all documentation
  1. Getting Started13
  2. Sessions & Agents115
  3. Inbox & Notifications59
  4. Projects & Tasks95
  5. Automation & Scheduling75
  6. Knowledge & Memory26
  7. AI Features60
  8. Integrations100
  9. Plugins & Marketplace33
  10. Cloud & Teams56
  11. Settings & Customization58
  12. Account & Billing28
  13. Troubleshooting84
  14. CLI & API Reference22
  15. Legal & Policies4
  16. Uncategorised22

Stuck-task helper (get unstuck when you keep snoozing the same thing)

The Stuck-task helper notices when you keep putting off the same thing and offers a hand. When you snooze the same session, email, pull request, or message three times without ever working on it in between, Omniscio quietly drops one dismissible card in your Inbox: "Want a hand getting unstuck?" Accept it and Omniscio starts a short AI chat that's already been told what you've been avoiding — it interviews you to figure out what's actually in the way

What it is

The Stuck-task helper notices when you keep putting off the same thing and offers a hand. When you snooze the same session, email, pull request, or message three times without ever working on it in between, Omniscio quietly drops one dismissible card in your Inbox: "Want a hand getting unstuck?" Accept it and Omniscio starts a short AI chat that's already been told what you've been avoiding — it interviews you to figure out what's actually in the way (you're not sure where to start, it feels too big, it's boring, you're blocked on someone, or you're worried about getting it wrong) and helps you take one tiny first step.

It's optional and off by default — a Lab toggle. Nothing changes for anyone who doesn't turn it on. The idea: repeatedly deferring something you never touch is a reliable signal of resistance, and a two-minute conversation to name the block and shrink the task is often all it takes to get moving. The moment you actually work on it, the count resets — so snoozing things you're actively doing (just to time-box your day) never trips it.

Where to find it

The card appears in your Inbox on its own. Turn it on or off in Settings → Lab.

How it behaves

How to use it

  1. Turn it on. Settings → Lab → enable "Stuck-task helper" (it's an in-development feature, hidden until you opt in; a developer can also launch with AMC_SHOW_STUCK_TASK_HELPER=1).
  2. Use Omniscio normally. Snooze things as you always do. The feature only watches for the same item being snoozed over and over.
  3. The offer appears. On the third snooze of one item that you haven't worked on in between, a card shows up in your Inbox: "Want a hand getting unstuck?" with a short note about how many times you've put it off. It never nags — you get the offer once per item, ever, and you can dismiss it like any inbox row. If you'd rather not get these at all, the card has a quiet Turn off these nudges link at the bottom that switches the whole feature off (after a quick confirm) and clears the card — the confirm reminds you it lives at Settings → Lab so you can turn it back on any time. Only one of these cards is ever shown at a time, so snoozing a big pile of things at once (a "snooze everything till tomorrow") can't bury your Inbox in identical cards — any other item that gets stuck waits its turn until you clear the one that's up.
  4. Accept with "Talk it through". Open the card and click Talk it through. Omniscio opens a new chat session that greets you about that specific task and starts a brief, friendly interview. It will usually help you carve out a five-minute first step — and offer to start it with you right then (draft the opening line of that email reply, outline the first sub-task, etc.). If the honest answer is "this shouldn't be done," it helps you reschedule it concretely, hand it off, or drop it cleanly — that counts as unstuck too.

How it works

Counting (durable, survives the return). Omniscio normally keeps no record of how often you've snoozed something — a snooze just sets a wake time that's cleared when the item comes back. So the feature adds a small private ledger (snooze_resistance, migration + queries-snooze-resistance.ts) that counts fresh snooze episodes per item and survives the snooze→return→snooze-again cycle — which is exactly the pattern it's looking for. Editing the time of an already-active snooze doesn't count (that's not a new push-away), and a "dismiss" action that some inbox rows implement as a snooze to the year 9999 doesn't count either.

Engaging resets the count. "Resistance" means deferring something you never touch — so the count only climbs on consecutive snoozes with no engagement in between, and the moment you engage the item the streak resets to one. For a session, "engaging" is sending it a real message (your messages only — the snooze marker itself never counts as engagement). This is what keeps the offer from firing on work you're actively doing and merely time-boxing. Today this reset applies to sessions (where the signal — your last message to the session — is cheap and already tracked); the other kinds still count cumulatively until they grow an equivalent "did you engage" signal.

Where it watches. Three snooze paths feed one recorder (recordSnoozeForResistance in stuck-task-helper-service.ts): sessions (session-snooze-service.ts), universal inbox items like PRs / messages / tickets (inbox-snooze-service.ts), and emails (gmail-snooze-service.ts). It tracks only kinds that read as "a task you're avoiding" (sessions, email, SMS, Telegram, pull requests, Jira issues, support chats) — not feeds, drip messages, or daily briefings, and never the offer card itself.

The offer. At the third snooze, Omniscio raises a normal inbox alert (the same dismissible-row primitive agents use — see inbox-alerts.md), once per item. No pop-up notification, so a sensitive email subject never flashes on screen. At most one offer is active at a time (STUCK_TASK_MAX_ACTIVE_OFFERS = 1): when many items cross the threshold together (a bulk snooze), only the first raises a card; the rest are deferred — not stamped as offered — and surface on a later snooze once the visible card is dismissed or accepted and the slot frees. And once an item has been offered it is never offered again, even after you dismiss the card and keep snoozing it — the durable offered_at stamp guarantees it (it is also protected from the ledger's age-purge). When the snoozed thing is a session, the card names it as a clickable link (tap it to jump straight to that session) and shows which project it's in; other kinds (email, PR, message) read as plain text since there's no Omniscio session to open.

The coach. Accepting runs startStuckTaskHelper, which starts a session using the deferred Super-Prompt mechanism (see use-super-prompts.md): the coach's opening message shows instantly, and the AI model only spins up when you reply — so it's cheap and immediate. The session opens named after the task ("Get unstuck: <task>") so it's easy to spot in your sidebar, pre-loaded with a warm, non-clinical "get-unstuck" persona plus a brief about the stuck item. For a session that brief leads with what you originally set out to do (the first message of that session) and then a short recap of the most recent real activity — so the coach understands the actual task even when the session's recent history is just background chatter (test runs, "waiting on…" notes). It opens in the item's project when there is one, otherwise in your ~/Claude project, and answers a direct question instead of only volleying back its own. It deliberately does not reuse Omniscio's wellness-framed "AI Coaching" feature — this is a normal work session.

Gating. The whole feature is registered in the unreleased-feature system (Omniscio’s unreleased-feature (“Lab”) gate) as stuck-task-helper with the stuckTaskHelperEnabled setting (default off). When it's off, the counter does nothing at all.

Related

  • snooze-a-session.md — how snoozing works (the behavior this feature watches).
  • inbox-alerts.md — the dismissible inbox-row primitive the offer is built on.
  • use-super-prompts.md — the deferred instant-greeting launch the coach reuses.
  • ai-coaching.md — the separate wellness coaching feature this one deliberately does NOT reuse.
  • Omniscio’s unreleased-feature (“Lab”) gate — how the Lab toggle hides it until shipped.
  • Contract (invariants + tests): .claude/memory/contracts/snooze-resistance-coach-contract.md.

Last verified 2026-09-26