---
title: Custom model instructions (write your own instructions for a specific engine or model)
---

# Custom model instructions (write your own instructions for a specific engine or model)

## What it is

Free-text instructions you write once and have Omniscio automatically add to the prompts
of a specific AI **engine** or **model** — so you can steer Codex one way, Claude another,
or one model differently from its siblings, without retyping the guidance into every session.

### What it does

You build a list of **rules**. Each rule is:

- a block of **instruction text** (up to ~8,000 characters), and
- a set of **targets** — who the rule applies to.

A target is either:

- a whole **engine / family** — pick "Codex", "Claude", "Gemini", etc. (a checkbox per
  engine), which applies the text to **every model of that engine**; or
- a **specific model id** — typed into the "specific model ids" field (comma-separated,
  e.g. `gpt-5.5-codex, claude-opus-4-8`), which applies the text to just those models.

When you start a session, it receives **every rule whose engine *or* model matches** that
session, concatenated together. That means one rule can cover a single model, a whole
family, or several models at once — and you can layer a broad "all Codex" rule with a
model-specific add-on, and both apply.

Matching uses the session's **effective model** — the model you picked for the session, or
the engine's default when you didn't pick one — so a rule targeting a specific model still
applies to a plain, no-override launch of that model.

## Where to find it

### Where it lives

**Settings → Accounts → "Custom model instructions"** (a section near the bottom of the
Accounts page, above account deletion). It works on desktop and over mobile Web Access.

## How it behaves

### How the text reaches the model

It rides the **same mechanism Omniscio already uses for all of its built-in instructions**,
so it reaches every engine:

- **Claude-family engines** (Claude, plus the Claude-compatible providers) get it as part of
  the real **system prompt** (`--append-system-prompt`).
- **Codex** (on a recent version) gets it through Codex's OWN system-prompt channel — the
  `developerInstructions` slot on each session — a real, standing system prompt layered on top
  of Codex's own, the closest external analog to `--append-system-prompt`. An older Codex (which
  lacks that slot) falls back to the first-message channel below, so nothing regresses.
- **Other external engines** (Gemini and similar) have no system-prompt slot, so it rides the
  **invisible first-message context** — the same channel that already delivers Omniscio's other
  instructions to those engines. It is sent silently before your first message; it does **not**
  appear in the chat transcript.

### Good to know

- **Off until you use it.** With no rules, nothing changes — sessions behave exactly as
  before. An empty rule (blank text) is inert; delete a rule to remove it.
- **Not applied to the Ask Omniscio helper.** The built-in Ask helpers keep their own fixed
  persona and never absorb your model instructions.
- **It's a request to a model, not a guarantee** — treat the instructions as a strong
  preference, like any system-prompt guidance.
- **The dedicated Codex / Gemini / Claude sidebar projects** (`__codex__` / `__gemini__` /
  `__claude__`) work fully. These *used* to be a known gap: a session started *inside* one
  received none of Omniscio's injected first-message context — custom instructions, project
  docs, the AI-coaching profile, the dev-pipeline reminder — because the injection code
  mistook their `__…__` folder name for a purely-virtual project. As of 2026-08-15 those three
  sentinels are excluded from that check (they resolve to real per-engine home dirs —
  `~/Codex`, `~/Gemini`, `~/Claude`), so a session there now receives your custom instructions
  and the rest of the standing context exactly like a session in a normal project folder. (The
  clickable **"Spawned by …" provenance** note was never part of this gap: it is a system row,
  not injected prompt context, and has no virtual-project gate — so a session spawned into these
  projects always kept its parent link.)

## For agents

### Under the hood

- Stored as the `customPromptRules` setting (a list of `{ id, text, targets[] }`).
- Injected as the `custom-instructions` fragment of the shared engine system-prompt bundle,
  which is what makes it reach every engine identically.
- Contract: `engine-prompt-bundle-contract` (the single source of truth for engine-injected
  prompt fragments and their anti-drift guard).

## Related

Which engines exist and how they are chosen is on the [AI providers](ai-providers.md) page. The
instructions Omniscio already ships to every session, which these rules sit alongside rather than
replace, are described on [default agent instructions](default-agent-instructions.md).