Summarization and provider routing
Omniscio condenses long things in a few different places — a long agent reply before it is read aloud, a session that has outgrown its context window, an incoming email or SMS thread, and a spoken catch-me-up briefing — and those jobs do not run on your session's model. They run on a cheap, fast utility model, chosen centrally and routable per feature. This page is the map; each surface has its own page.
What it is
Four condensation surfaces, one shared motor underneath them:
- Read-aloud summary — when a reply is too long to narrate, Omniscio condenses it before speaking it, and speaks the condensation in the content's own language.
- Compaction summary viewer — when a session fills its context window, the CLI writes a structured summary in place of the old turns; the "Conversation compacted" divider carries a Show summary link that expands it, with a Copy link.
- Email summarizer — incoming mail is summarized through a cheaper model and the summary is delivered back to you, over two source paths (forwarded mail to an AgentMail inbox, and a Gmail label you tag) that share one rule table and one daily cost cap.
- Omni Session Briefing — a spoken, 75–120-word catch-me-up for a single session, triggered from the session header, a voice command, or a global hotkey. Covered in full on the voice page.
Underneath all of them is the utility AI model: one internal router sends every such background call to the cheapest capable provider, with a transparent Anthropic fallback, a circuit breaker, and per-feature cost tagging — and you can point a single feature at its own model without changing the rest.
Two neighbours are easy to confuse with this area and are their own things: session handoff also produces a summary, but it is a user-invoked "carry this chat into a fresh session" action rather than an automatic condensation; and switching providers changes which model runs your actual sessions, not the utility model behind these jobs.
Where to find it
- The read-aloud summary follows the Voice settings; the Omni Session Briefing sits under Settings → Voice Control → Omni Session Briefing.
- The compaction summary lives in the session feed itself, on the "Conversation compacted" divider — click Show summary.
- The email summarizer is its own virtual project in the sidebar with a master toggle and a setup wizard.
- The utility model is at Settings → Sessions → advanced → Utility AI model, with a Per-feature AI models section directly beneath it for overrides.
How it behaves
These jobs stay off your session's model on purpose. Summarizing, briefing and title-writing are small, frequent and latency-sensitive, so they are routed to a cheap utility model rather than spending your main model's capacity. That is why the utility model has its own picker separate from the per-session model.
Cost guards are built in. The email summarizer carries a shared daily cost cap across both its source paths, and the utility routing tags spend per feature so the cheap path stays cheap and measurable.
Speech follows the content, not the settings. Both spoken surfaces — the read-aloud summary and the Omni briefing — generate in the language of the conversation and try to match the voice when a matching-language voice exists, falling back to your configured voice otherwise.
For agents
Aggregate subject: the roadmap id cat-summarization-provider-routing is a feature-inventory umbrella heading ("Summarization & Provider Routing") over independent surfaces, and zero pages carried it before this one — it is a map, not a home. Do not fold any surface's detail in here; follow the link.
The shared motor is src/main/services/model-router (the utility-model router — one route for every background AI call, Anthropic fallback, circuit breaker, per-feature cost tagging); its user-facing page is utility-ai-model.md (cat-model-router), which owns the Settings → Sessions → advanced → Utility AI model picker and the per-feature override panel. The read-aloud summary is the TTS summarization mode (ttsSummarizationMode) in src/main/services/tts and src/shared/types/settings/voice-tts-settings.ts, documented by voice-and-tts-part-2.md. The spoken briefing is src/main/services/session/session-briefing-service.ts (DEFAULT_BRIEFING_PROMPT, cached per session by message count), same page. The compaction viewer is compaction-summary.md. The email summarizer is src/main/services/email-summarizer (email-summarizer.md).
One bullet of this umbrella has NO library page and is deliberately not claimed here: account-switch context transfer — the inventory describes compacting a dead session's history into a briefing so switching accounts does not lose the thread; no page in this corpus covers it (the account pages, switch-active-account.md and handoff, do not). It stays uncovered until someone writes that page; do not treat this hub as its coverage.
The SMS half of the "Email / SMS thread summaries" bullet rides a shared store, not the email service. src/renderer/src/stores/slices/thread-summary-slice.ts is the single source of truth for thread-summary fetch/clear, mounted onto both gmail-store and sms-store (Telegram has no thread summary). Only the Gmail path is documented in full on email-summarizer.md; the SMS thread summary has no dedicated page.
Related
- voice-and-tts-part-2.md — the read-aloud summary and the spoken Omni Session Briefing
- compaction-summary.md — the "Conversation compacted" divider and its Show summary link
- email-summarizer.md — summarizing incoming mail over two source paths
- utility-ai-model.md — the cheap model that runs these background jobs, and per-feature overrides
- switching-providers.md — changing which model runs your actual sessions
- session-handoff.md — the user-invoked "carry this chat into a fresh session" summary
Last verified 2026-10-06