---
title: Utility AI model (which model runs background AI features)
---

# Utility AI model — choose which model runs background AI features

## What it is

Omniscio uses a small, fast AI model in the background for dozens of minor tasks
that don't need a full coding session: generating session titles, drafting
suggestions, writing daily digests and weekly summaries, summarising articles and
meetings, correcting text, and more. This background workhorse is the **Utility AI
model** (sometimes called the cheap/utility model internally).

## Where to find it

The global picker sits at **Settings → Sessions → advanced → Utility AI model**, where you pick any model from a list or leave it on **Automatic**. The same advanced panel carries a **Per-feature AI models** section, so a single feature can be pointed at its own model without changing the rest.

## How it behaves

### The automatic default — Luna, and DeepSeek when you have a key

Out of the box the Utility AI model is **Luna** (OpenAI's model served via
OpenRouter), billed through Omniscio's own gateway. If you have added your own
**DeepSeek API key** (Settings → Accounts & AI → API Keys → DeepSeek), Omniscio
automatically routes all utility calls through your key instead — billed directly
to your DeepSeek account at roughly half the cost. No toggle, no extra setup: the
swap is silent and automatic the moment a valid key is present.

### Global override

If you want to use a different model for ALL utility features — for example, a
faster or cheaper alternative you have access to — set it in:

**Settings → Sessions → advanced → Utility AI model**

Pick any model from the list. Choosing **Automatic** (the default) restores the
auto-DeepSeek-on-your-key / Luna behaviour described above.

### Per-feature overrides

The same advanced panel shows a **Per-feature AI models** section where you can
pick a different model for one specific feature without changing the rest. The
features with individual pickers are:

| Feature | Setting |
|---|---|
| Daily digest | `dailyDigestModel` |
| Weekly summary (Map + Verify steps) | `weeklySummaryModel` |
| Article reader | `articleReaderModel` |
| KMS / knowledge-vault summaries | `kmsSummaryModel` |
| Meeting summaries | `meetingSummaryModel` |
| Mind-map generation | `mindmapModel` |
| Supermail digest | `supermailSummaryModel` |
| Text correction | `textCorrectionModel` |
| Reply suggestions | `replySuggestionModel` |
| AI suggestions | `aiSuggestionModel` |

Setting any per-feature picker to **Automatic** (its default) means "use whatever
the global setting resolves to" — it inherits from the global override, or the
auto-DeepSeek swap, or Luna.

### Precedence, from highest to lowest

1. **Per-feature explicit pick** — a non-Automatic choice here wins everything.
2. **Global override** — a non-Automatic global setting wins for all features that
   haven't set their own pick.
3. **Auto DeepSeek** — fires automatically when the two above resolve to Automatic
   and you have a DeepSeek API key configured.
4. **Luna** — the company-funded fallback when nothing above applies.

### What this does NOT affect

- **Coding sessions** — the model a session's Claude agent uses is set per-session
  (provider, model picker in the new-session bar). The Utility AI model only covers
  background, sub-second calls, not full interactive sessions.
- **Weekly summary Reduce step** — that step always runs on Opus 4.7 because
  synthesis quality matters there. Map and Verify follow the utility model setting.
- **Ask Omniscio** — the Ask panel has its own model selection.

## For agents

### Where it lives in code

- Resolution: `resolveCheapUtilityModel` / `resolveCheapUtilityDeepseekSwap` in
  [`src/main/services/llm-provider/provider-resolution.ts`](../../src/main/services/llm-provider/provider-resolution.ts),
  wired in `resolveChatCredentials`
  ([`src/main/services/llm-provider-service.ts`](../../src/main/services/llm-provider-service.ts)).
- Settings UI: `PerFeatureModelsPanel.tsx` and `SessionBasicsSection.tsx` inside
  [`src/renderer/src/features/settings/`](../../src/renderer/src/features/settings/).
- Contract: [`.claude/memory/contracts/cheap-utility-model-contract.md`](../../.claude/memory/contracts/cheap-utility-model-contract.md).

## Related

Who pays for a non-Claude coding session, and which company serves it, is on [Who pays & who serves](model-vendors.md) — a separate thing from this utility model — and the wider provider list is on [AI providers](ai-providers.md). Your own keys, including the DeepSeek key that triggers the automatic swap, are managed on [API keys](api-keys.md), and a provider of your own is set up on [Custom providers](custom-providers.md).
