---
title: Use Super Prompts (reusable prompt library)
---

# Use Super Prompts (reusable prompt library)

## What it is

**Super Prompts** are a built-in library of reusable first-message prompts for the **Claude** virtual project (the `~/Claude` workspace). Omniscio ships ~170 curated bundled prompts spanning Coaching, Coding, Writing, Planning, Analysis, Research, Productivity, Design, Sales, Meta, and Personal categories. You can pin favorites, duplicate a bundled prompt to tweak it, author your own, and hide any bundled prompt you don't want. Everything refreshes silently from a remote GitHub-Pages feed so you get new prompts without an app update. Each prompt is a single big-kick-off message — unlike Recipes (multi-step) or Skills (how-to instructions), a Super Prompt just _starts_ a session with a well-crafted brief already typed in.

## Where to find it

From any project, open the **⋮ menu** at the top of the sessions sidebar and click **Super Prompts** — or press **Ctrl+Shift+K** anywhere (the toolbar **Super Prompts** button works too). It's available in every view that shows a sessions sidebar. The same library is also a **Quick Launch** tab in the Ctrl+Space pop-up, which you pin from the strip's **"+"** or from **Settings → Quick Launch tabs**.

## How it behaves

### How to use it

1. **Open the picker.** From any project, open the **⋮ menu** at the top of the sessions sidebar and click **Super Prompts** — or press **Ctrl+Shift+K** anywhere (the toolbar **Super Prompts** button works too). It's available in every view that shows a sessions sidebar. The picker opens as a tall modal (fixed 80% viewport height) on a minimal **home screen**: a **Find** card (a search box with **Help Me Choose** right beside it) and a separate **Browse all** card, with **New Prompt** as its own quiet action. Nothing from the library is shown until you start typing or open it, so the first thing you see is calm rather than a wall of prompts.
2. **Find a prompt.** Type in the Find card (or click **Browse all**) to reveal the two-pane browser — a list on the left, a live preview on the right. The search filters across a prompt's **title, summary, tags, and description** — so typing a topic word like _solving_ surfaces every prompt tagged for it (the whole `problem-solving` cluster — Field Diagnosis, MECE, Unsolved Problem Finder, …), not only the ones with that exact word in the title. Hyphens and spaces are treated the same, so "problem solving" matches the `problem-solving` tag. Click the **Filter** button above the list to open a tag popover and narrow to a tag exactly; toggle the **Pinned** filter there to see just your favorites. Switch between **Short** (summary only) and **Full** (body preview) tabs to compare.
3. **Launch a session with it.** Select a prompt and hit Enter (or click **Launch Session**) — Omniscio creates a new session pre-populated with the prompt body. By default the session launches into the project you are currently viewing; a **"Launch into"** dropdown sits next to the **Launch Session** button in the preview, so you can switch to any launchable project, or to the Claude virtual project (`~/Claude`), right where you launch. First agent turn begins immediately. **Prompts marked "Pre-loaded"** (a small badge in the list) open differently: the agent's opening questions appear **instantly with no waiting** — Claude doesn't start up yet — so you can begin answering right away. The real session spins up the moment you send your first answer (see _Pre-loaded_ below).
4. **Author or customize.** Click **New** to open the editor and fill in Title, Summary, Description, Body (up to 200K characters), and an optional **Stock first response** — a canned opening message (usually the clarifying questions the agent would ask) that makes your own prompt "Pre-loaded" too. Or select any bundled prompt and click **Duplicate** to get an editable user copy — the original stays untouched. Your prompts (`source = 'user'`) have full CRUD; bundled prompts (`source = 'builtin'`) are read-only but can be hidden.
5. **Hide, restore, or pin.** Hide a bundled prompt to keep it out of your picker; the **Restore Hidden** menu brings it back. Pin any prompt to push it to the top of the list. Pin state, usage counters, and hidden state all persist across app restarts.
6. **Help Me Choose.** If you're not sure which prompt fits, click **Help Me Choose** — it sits beside the search on the home screen, and again in the browse list's search row. A modal opens titled "What do you need help with?" with a single textarea (placeholder "Topic, project, or problem") — type the topic, project, or problem you want help with, then click **Find a prompt**. Omniscio sends the bundled "advisor" prompt (which lists every prompt in your library and asks the agent to pick the best one) plus your text as the model's first message, so the advisor can pick a Super Prompt for you immediately without first asking what you want help with — but your chat only ever shows a short "Please help me find a super prompt that will help me with the following: …" line, never the advisor's internal instructions or the full prompt catalog. The advisor **starts in the background** — Omniscio does **not** pull you into the new session, so you stay exactly where you were (a session, Settings, wherever you opened the picker from); a brief **"Prompt advisor started"** toast with a **View** action jumps you to it whenever you want, and it also shows up in the sessions sidebar like any other session. The advisor then asks a few quick questions and hands back clickable prompt recommendations. **Find a prompt** is disabled until you type non-whitespace. The textarea respects your **Submit Key Mode** setting from Settings → Chat: in Enter mode (default) plain Enter submits and Shift+Enter inserts a newline; in Ctrl+Enter mode plain Enter inserts a newline and Ctrl+Enter (or Cmd+Enter on macOS) submits. **Cancel** or **Escape** closes the modal and reopens the picker without launching anything.

**Also in Quick Launch.** Super Prompts is also a **Quick Launch** tab (the Ctrl+Space pop-up): pin its **Super Prompts** tab (from the strip's **"+"** or **Settings → Quick Launch tabs**) to type-search the same library and launch a prompt — with a **"Launch into"** project chooser and the same **"Pre-loaded"** instant-greeting behavior — without opening this full picker. It's a faster second door for "I know roughly what I want, just launch it." See [quick-launch-modal.md](quick-launch-modal.md).

### The Master Solving SOP, grouped

The prompts that make up the **Master Solving SOP** — a full methodology for solving any field (Field Diagnosis, MECE, First Principles, Unsolved Problem Finder, the Solving Roadmap Generator, and more) — all carry a shared **`solving-sop`** tag. Because they span several categories (research, design, meta, education), no single keyword lists them all on its own, so the tag groups the whole set: search **"solving"** or **"sop"**, or open the **Filter** popover and pick the **solving sop** tag, to pull up the entire methodology at once. The exact 19-prompt set is locked by a test so a catalog rebuild can't silently drop it.

### Mission Control PM prompts, grouped

20 prompts for **Mission Control** project management workflows carry the shared **`mission-control`** tag. They cover sprint planning, board setup, item triage, workload balancing, status reports, retrospectives, dependency mapping, velocity analysis, backlog grooming, standup summaries, risk registers, milestone tracking, capacity planning, item decomposition, dashboard design, release planning, column advising, and project health checks. Search **"mission"** or **"mc"**, or pick the **mission-control** tag in the **Filter** popover, to pull up the full set. All IDs are prefixed `mc-`.

### Linkable super prompts

There are two kinds of super-prompt link, for two different jobs:

- **AI-emitted deep link, in chat.** When an agent points you at a prompt (e.g. via _Help Me Choose_), it emits an `omniscio://superprompt/<id>` link. **Click it → a small menu**: **Run it now** (starts a session with the prompt), **Copy the prompt** (copies the raw body to the clipboard), or **Open in picker**. The legacy `http://127.0.0.1:<port>/superprompt/<id>` form still works and opens the same menu. A deep link only resolves inside Omniscio, and only for a prompt already in your own library.
- **Copy link → a PUBLIC web link.** The picker detail pane (mobile + desktop) and the editor each have a **Copy link** button beside **Copy raw prompt**. Because a deep link is a dead link for anyone else (its id lives only in your library), this button instead **publishes the prompt to a public page** at `https://shares.omniscio.com/s/<token>` and copies THAT — anyone you send it to opens it in any browser, no app or account needed. The first time, a **"Create a public link?"** confirmation appears (with a **"Don't ask again"** checkbox); publishing needs you to be signed in. Re-copying the same prompt returns the same link; it stays live up to a year (each copy refreshes that) and can be deleted anytime from the **Shares** panel.
- **Safety.** Only the in-app menu's **Run it now** launches a session; a deep link followed from OUTSIDE Omniscio always lands on the picker behind a confirm, so a forwarded link can never spawn a paid session on its own. The public Copy-link page is read-only — it shows the prompt text and never runs anything. Invariants: [super-prompt-link-contract.md](/.claude/memory/contracts/super-prompt-link-contract.md).

### Instant start (stock first response)

A prompt can carry a **stock first response** — a pre-written agent opening turn stored on the prompt itself (`saved_prompts.stock_first_response`). When it's set, launching the prompt is **deferred**: Omniscio creates the session but does **not** spawn Claude yet. The stock response shows instantly as the agent's first message (under a "Started from Super Prompt: …" line), and the prompt body + that opening are stashed in a durable session column (`sessions.pending_launch_prefix`). The moment you send your **first reply**, Omniscio prepends that stashed prefix to your message and spawns Claude **once** — so the live agent resumes with the full brief, its own opening, and your answer, with no repeated work. The stash is durable, so closing and reopening Omniscio before you reply never loses the prompt. Prompts **without** a stock response are unchanged (the body is submitted immediately). Launching a stock-response prompt into a non-Claude project (codex/gemini) gracefully falls back to the immediate behavior. Full invariants + tests: [super-prompt-stock-first-response-contract.md](/.claude/memory/contracts/super-prompt-stock-first-response-contract.md).

### Coaching prompts also live in AI Coaching

23 coaching-themed Super Prompts (Pain Points Excavator, Year-End Life Review, Life Pattern Detector, Marriage and Relationship Deep Analysis, etc.) are also seeded into the **AI Coaching** virtual project as interview prompts. The two systems share one SQLite table (`saved_prompts`), but the AI Coaching copies are independent rows with `tags='["interview"]'` and a non-null `produces_artifact_title` — so they appear in the AI Coaching library and emit a versioned artifact when the user clicks **Save from Transcript**, while the originals in the Super Prompts picker stay one-shot session starters. Editing or hiding a Super Prompts copy does NOT affect the AI Coaching copy and vice versa. Seeding happens in the v95 + v100 migrations from [/src/main/db/ai-coaching-seed-prompts.ts](/src/main/db/ai-coaching-seed-prompts.ts).

## For agents

### How it works

The picker lives at [/src/renderer/src/features/super-prompts/SuperPromptsPicker.tsx](/src/renderer/src/features/super-prompts/SuperPromptsPicker.tsx) with the editor at [/src/renderer/src/features/super-prompts/SuperPromptEditor.tsx](/src/renderer/src/features/super-prompts/SuperPromptEditor.tsx), and it's fixed at `h-[80vh]`. The picker has two views — a minimal **home** screen (Find / Browse cards) and, once the user acts, the **two-pane** browser (list + preview, with the tag filter behind a **Filter** popover shared by desktop and mobile). The launch target is resolved by [/src/renderer/src/features/super-prompts/launch-target.ts](/src/renderer/src/features/super-prompts/launch-target.ts): `resolveDefaultLaunchTarget` returns the project the user is currently viewing if it is launchable (can host a spawned session), otherwise the Claude virtual project; `getLaunchableProjects` populates the **"Launch into"** dropdown that sits beside **Launch Session** in the preview so the user can override the default per-launch. The gate ([SuperPromptsPickerGate.tsx](/src/renderer/src/features/super-prompts/SuperPromptsPickerGate.tsx)) computes this default and passes it to the picker as `projectId`; only a launchable project id ever reaches `launchSession`. The shortcut registration is in [/src/shared/keybindings.ts](/src/shared/keybindings.ts) under `superPrompts`. Frontend state (search, filters, usage tracking, optimistic mutations) is managed by [/src/renderer/src/stores/saved-prompts-store.ts](/src/renderer/src/stores/saved-prompts-store.ts). Backend CRUD, tombstone semantics, and upsert-on-reseed logic are in [/src/main/db/queries-saved-prompts.ts](/src/main/db/queries-saved-prompts.ts); eleven IPC channels (`list`, `list-lite`, `get-body`, `create`, `update`, `delete`, `restore`, `duplicate`, `mark-used`, `restore-hidden`, `toggle-pin`) are wired by [/src/main/ipc/saved-prompts-handlers.ts](/src/main/ipc/saved-prompts-handlers.ts), which emits `SAVED_PROMPTS_CHANGED` push events. Tombstones work two ways: user prompts soft-delete via `is_deleted = 1`, while bundled prompts use a `user_hidden_at` timestamp so re-seeding won't un-hide them. The bundled catalog ships in [/resources/super-prompts.json](/resources/super-prompts.json) (schema v3, version `2026-08-12-mc-pm-prompts-001`, 190 prompts — most of which now carry a stock first response, see _Pre-loaded_) and is seeded into SQLite by [/src/main/services/super-prompts-seed.ts](/src/main/services/super-prompts-seed.ts). Remote refresh runs through [/src/main/services/remote-super-prompts-service.ts](/src/main/services/remote-super-prompts-service.ts): fetches `https://jlstradingco.github.io/Agent-Orchestrator/super-prompts.json` with a 10s timeout and 10MB cap, skips the DB write if the remote `bundle_version` matches the cached value (checked 60s after launch and every 24h via `createPeriodicTask`). Full design: [super-prompts.md](/.claude/memory/super-prompts.md), [super-prompts-remote.md](/.claude/memory/super-prompts-remote.md).

#### Quick Launch tab

A second entry point lives in the Quick Launch pop-up (the Ctrl+Space window — a separate renderer with no main-window stores): the **Super Prompts** tab ([QuickLaunchSuperPromptsTab.tsx](/src/renderer/src/features/quick-launch/QuickLaunchSuperPromptsTab.tsx)). It does **not** go through `SuperPromptsPickerGate` / `openPicker`. Instead it loads the lite list via `saved-prompts:list-lite`, filters client-side with the shared `promptMatchesSearch`, reads the project list + default from `QUICK_LAUNCH_GET_INITIAL_STATE`, and on select invokes its own `QUICK_LAUNCH_LAUNCH_SUPER_PROMPT` handler ([quick-launch-handlers.ts](/src/main/ipc/quick-launch-handlers.ts)). That handler loads the body + stock first response main-side (`getSavedPromptById`), resolves the target project (explicit chooser id → `resolveDefaultProjectId`), and hands off to the **shared `launchSessionInMain` core** (NOT the renderer's `launchSession`) — so the deferred "Pre-loaded" launch, the non-Claude deferred→immediate degrade, and provider readiness are inherited rather than re-implemented; the spawn is **deferred fire-and-forget** past the exit animation like `QUICK_LAUNCH_SUBMIT`, with a promptId+project dedup window. Registered as an unpinned action in [quick-launch-actions.ts](/src/shared/quick-launch-actions.ts). Behavior locked by [tests/unit/main/quick-launch-launch-super-prompt.test.ts](/tests/unit/main/quick-launch-launch-super-prompt.test.ts).

### Lite cold-mount (mobile WebSocket bootstrap)

The picker's bootstrap list IPC is **`saved-prompts:list-lite`**, not `saved-prompts:list`. The lite shape strips every prompt's `body` and replaces it with a `bodyLength: number` hint, dropping a typical 174-prompt catalog from ~3.7 MB to ~120 KB. Mobile / web PWA renderers run over a Tailscale-Funnel-tunnelled WebSocket bridge that disconnects on payloads above ~2 MB; lite shape restores sub-second cold-mount on weak cellular links. The saved-prompts store is **not** initialized at mobile/web boot (init runs only under Electron — the cold-boot 1-round-trip rule), so the list loads lazily the moment the picker opens (the gate triggers it, retrying if a flaky-socket first load comes up empty); on desktop it's already loaded at startup. Invariants: [/.claude/memory/contracts/saved-prompts-contract.md](/.claude/memory/contracts/saved-prompts-contract.md). Detail panes, the editor, and `handleLaunch` await **`saved-prompts:get-body`** on demand and cache the result per-id in the store; the cache is fully cleared on every `SAVED_PROMPTS_CHANGED` push so catalog upserts and external edits cannot show stale body content. Optimistic `create` / `update` / `duplicate` flows populate the cache with the body the IPC handed back, so detail-open immediately after a write is instant with no extra round-trip. The shape is a **function-pair** (`SavedPromptLite` separate type + separate `listSavedPromptsLite` query), not an optional-body shape, so the compiler enforces correct consumption — mirrors `getSessionHistory` / `getSessionHistoryLite`. Full incident + invariants: [/.claude/memory/postmortems/saved-prompts-lite-shape-postmortem.md](/.claude/memory/postmortems/saved-prompts-lite-shape-postmortem.md).

### Pre-loaded (stock first response)

On web/mobile the catalog is **not** fetched at app boot — that cold-boot round-trip is deliberately skipped over the tunnel (the desktop-only `init()`). Instead the gate ([SuperPromptsPickerGate.tsx](/src/renderer/src/features/super-prompts/SuperPromptsPickerGate.tsx)) calls `ensureLoaded()` the moment the picker opens, so the list loads on demand; a failed load retries on the next open. (Before this fix the mobile picker showed an empty "No prompts yet" because nothing ever triggered the load — fixed 2026-06-22.)

### CLI access (for AI sessions)

AI sessions can read and edit Super Prompts via the CLI control server (`127.0.0.1:19519`). Eight routes mirror the in-app IPC surface, reusing the same DB queries and Zod schemas so the CLI and UI can't drift. All routes are bearer-gated; reads use the 60/min read budget, mutations use the 10/min mutation pool and apply immediately (no inbox approval). Every mutation emits `SAVED_PROMPTS_CHANGED` so an open Omniscio window refreshes.

| Method   | Path                           | Purpose                                               |
| -------- | ------------------------------ | ----------------------------------------------------- |
| `GET`    | `/saved-prompts`               | List all (lite shape — no body, has `bodyLength`)     |
| `GET`    | `/saved-prompts/:id`           | Full prompt including body + stockFirstResponse       |
| `POST`   | `/saved-prompts`               | Create a user prompt                                  |
| `PATCH`  | `/saved-prompts/:id`           | Partial update (user only; builtins → 400)            |
| `DELETE` | `/saved-prompts/:id`           | Soft-delete user / hide builtin (tombstone semantics) |
| `POST`   | `/saved-prompts/:id/restore`   | Restore deleted / unhide builtin                      |
| `POST`   | `/saved-prompts/:id/duplicate` | Clone as user-owned copy                              |
| `POST`   | `/saved-prompts/:id/pin`       | Toggle pin/unpin                                      |

```bash
TOKEN=$(<~/.amc/cli-token)
# List all prompts (lite)
curl -s -H "Authorization: Bearer $TOKEN" http://127.0.0.1:19519/saved-prompts
# Read one in full
curl -s -H "Authorization: Bearer $TOKEN" http://127.0.0.1:19519/saved-prompts/<id>
# Update a user prompt's body
curl -s -X PATCH http://127.0.0.1:19519/saved-prompts/<id> \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"body":"Updated instructions..."}'
```

Builtin prompts cannot be patched — duplicate first (`POST .../duplicate`), then edit the copy. Full route docs: [/.claude/skills/omniscio-control/saved-prompts.md](/.claude/skills/omniscio-control/saved-prompts.md). Route source: [/src/main/services/cli/cli-server-saved-prompt-routes.ts](/src/main/services/cli/cli-server-saved-prompt-routes.ts).

**Hand the user a prompt by link:** emit `omniscio://superprompt/<id>` (id from `GET /saved-prompts`) — clicking it in chat gives the user a **Run it now / Copy the prompt / Open in picker** menu; from outside Omniscio it opens the picker (confirm-gated). See [super-prompt-link-contract.md](/.claude/memory/contracts/super-prompt-link-contract.md).

## Related

Super Prompts is the single-message member of the same family, so start with:

- [use-recipes.md](use-recipes.md) — multi-step workflows (Super Prompts are single-message starts)
- [use-skills.md](use-skills.md) — skills teach agents _how_ to do something; super prompts are _what_ to start on
