---
title: Eligible phrases (browse & save every phrase you repeat)
---

# Eligible phrases (browse & save every phrase you repeat)

## What it is

**Eligible phrases** is a tab in the Quick Replies sidebar that lists **every phrase you type a lot**, so you can browse them all and save the good ones as quick replies in one click — instead of waiting for the [repeated-phrase nudge](quick-reply-nudge.md) to surface them one at a time. It's the "show me all of them" companion to that nudge: same phrase-counting, but a lower bar and a full list you act on yourself.

It runs entirely on your machine, uses **no AI**, and costs nothing.

## Where to find it

### How to use it

1. Open the **Quick Replies** entry in the sidebar and pick the **Eligible phrases** tab (next to _Settings_ and _Quick replies_).
2. You see every phrase you've typed **3 or more times** in the last 30 days — _"What's the next phase?" — Typed 12 times across 8 sessions"_ — most-repeated first (up to 100).
3. Each phrase has:
   - **Save as a quick reply** — opens the Quick Replies add-form with the phrase already filled in, ready to approve (nothing is saved until you click Save there).
   - **Dismiss** — hides the phrase from future nudges and marks it _Dismissed_ here.
4. A small label on each row tells you its state: **New**, **Already suggested** (the nudge has popped it up before), or **Dismissed**.
5. Use **Refresh** to re-scan after you've been working; phrases you've already saved as quick replies drop off the list automatically.

## How it behaves

### How it works

- A **lower floor than the nudge**: this tab lists phrases repeated **≥ 3 times** (a fixed floor), independent of your nudge threshold (default 10) — so you can grab useful phrases the nudge hasn't flagged yet.
- Same scanner as the nudge: it counts **your own** sent messages (excluding Omniscio's auto-messages), uses your **raw** text (nothing leaves your machine), ignores one-word phrases and long pastes.
- Because it's the **same scanner**, tapped question-card answers are skipped here too — you tapped a button, you didn't type the phrase — so Omniscio's own answer text never clutters this list. It also lists a phrase only when its session started somewhere **you type** (the composer, Quick Launch, mobile, search, a "+ New" session, a Team Chat or email "start a session"); anything Omniscio spawns or composes itself — auto-remediation, the auto-lander, cron jobs, digests, reminders, or the opening prompt when you tap **Start session** on any inbox card — is never listed as a phrase you type.
- **Excludes** every phrase you can already send in one tap — saved quick replies, your one-tap **Zap** reply (`quickReplyText`), and the **"Please continue"** button — via the same shared exclusion set as the nudge (`existing-reply-texts.ts`); annotates the rest with their status from the shared nudge ledger (`quick_reply_nudges`).
- Sorted most-repeated first, **dismissed rows sink to the bottom**, capped at 100 — so a big backlog surfaces the best fresh candidates first.
- **Dismiss** records the phrase in the ledger (a `dismissed_at` stamp), which also permanently stops the inbox nudge from raising it again.
- The list is fetched when you **open the tab** (and on Refresh) — never on every render.

**Where it lives:** `src/main/services/quick-reply-nudge/eligible-phrases.ts` (list logic), the `dismissed_at` column + `dismissQuickReplyNudge` in `src/main/db/queries-quick-reply-nudges.ts`, and `src/renderer/src/features/quick-replies/components/EligiblePhrasesSection.tsx`. Invariants: `.claude/memory/contracts/eligible-phrases-contract.md`. See also the [repeated-phrase nudge](quick-reply-nudge.md).

## Related

The [repeated-phrase nudge](quick-reply-nudge.md) surfaces the same phrases one at a time as you type them; this page is the "show me all of them" companion with a lower bar and a full list you act on yourself.
