A pre-prompt is any text that reaches an AI model before your message and shapes how it answers. Usually that means standing instructions: a system prompt in an app, ChatGPT's custom instructions, a Claude project's instructions, or a CLAUDE.md file in Claude Code. It can also mean pre-prompting: rewriting your own prompt to be more specific before you send it.
There isn't a standard definition of the word yet, so people use it for both. This post covers each sense, where pre-prompts live in ChatGPT and Claude today, a worked example, and how a pre-prompt differs from a system prompt, prefill and meta-prompting.
What does pre-prompt mean?
The term has two common meanings, and both describe something that happens before the model reads your question.
The first is placement. Chat assistants send the model more than what you typed. Before your message comes a block of instructions from the company that built the app, and often instructions you saved yourself, like "use British spelling" or "I'm a nurse, skip the basics." That block is the pre-prompt, and it affects every answer without you retyping it.
The second is a habit. Pre-prompting means preparing the prompt before you send it: adding who the answer is for, your situation, the format you want and what to avoid. It's also the step most people skip: Google's Gemini guide says the prompts people try are usually fewer than nine words, while the most effective ones average around 21 words with context (Google, Gemini for Workspace prompting guide 101).
Where do pre-prompts live in ChatGPT, Claude and Claude Code?
Each assistant has its own name for the feature. This table lists the current ones, checked against each company's documentation in October 2026.
| Product | Feature | What it applies to |
|---|---|---|
| OpenAI API | instructions parameter and developer messages |
Each request; prioritized ahead of user messages |
| Anthropic API | system parameter |
Each request |
| ChatGPT | Custom instructions | All your chats |
| ChatGPT | Project instructions | Chats inside one project; override custom instructions there |
| Claude.ai | Instructions for Claude (Settings) | All your conversations |
| Claude.ai | Project instructions | Chats inside one project |
| Claude Code | CLAUDE.md files | Every session in that project, or every project for ~/.claude/CLAUDE.md |
| Claude Code | Hooks (SessionStart, UserPromptSubmit) |
Extra context at session start or alongside each prompt |
Sources for each row are in the sections below.
How does a ChatGPT pre-prompt work?
In ChatGPT, the main pre-prompt you control is custom instructions. You set them under Settings, then Personalization, and OpenAI's help center says they apply to all chats. Free and Go users can save up to 1,500 characters; Plus, Pro, Business, Enterprise and Education users can save up to 5,000 (OpenAI, custom instructions for ChatGPT).
Projects add a second layer. Project instructions "apply only within that project and override your global custom instructions," according to OpenAI (Projects in ChatGPT). That makes projects the right place for topic-specific rules, such as a project for your thesis that always cites sources, while custom instructions hold the things true in every chat.
Developers get the same idea in the API. OpenAI's text generation guide says developer messages are "prioritized ahead of user messages," and that the instructions parameter takes priority over the prompt in input (OpenAI, text generation).
What is a Claude pre-prompt?
Claude.ai has the same two layers under different names. Account-wide instructions sit in Settings under "Instructions for Claude" and apply to all your conversations (Claude Help Center, personalization features). Project instructions apply to every chat inside one project, and free accounts can create up to five projects (Claude Help Center, projects). Anthropic's help page also lists skills, which you switch on when you want a particular tone, format or specialist behavior.
In the API, the pre-prompt is the top-level system parameter. Anthropic's API reference describes it as a way of giving Claude context and instructions, "such as specifying a particular goal or role," and notes there is no "system" role for input messages (Anthropic, Messages API).
What is a Claude Code pre-prompt?
In Claude Code, the main pre-prompt is a CLAUDE.md file. A project file lives at ./CLAUDE.md and your personal one at ~/.claude/CLAUDE.md, and Claude Code loads them at the start of every session. One detail surprises people: the documentation says CLAUDE.md content is delivered as a user message after the system prompt, not as part of the system prompt, so Claude treats it as strong context and not as an enforced rule. It also suggests keeping each file under 200 lines, because longer files use more context and reduce adherence (Claude Code docs, memory).
Hooks are the other option. A SessionStart hook can add context before the first prompt, and a UserPromptSubmit hook runs each time you send a prompt and can add context next to it or block it. The hooks reference is explicit that UserPromptSubmit "can't replace the prompt" (Claude Code docs, hooks). So in Claude Code, a hook can add to what you typed, and changing the wording itself has to happen before you press Enter.
What is pre-prompting? A worked example
Pre-prompting is the second sense: fixing the prompt itself before it goes out. Saved instructions can't do this, because they don't know what you're about to ask. Here's a prompt typed the way most of us type, and the version I'd send after a minute of pre-prompting.
Before:
write an email to my landlord about the broken heating. its been 2 weeks and they keep ignoring me, i want it fixed but dont want to sound rude
After:
Write a short email to my landlord asking them to repair the broken heating. It has been broken for two weeks and they haven't replied to my earlier messages. Keep the tone polite but firm, ask for a repair date, and keep it under 150 words.
The facts didn't change. The rewrite states the goal first, turns "don't want to sound rude" into a tone the model can aim for, and adds the two things the first version left the model to guess: what you want the landlord to do and how long the email should be. Your custom instructions might already say "keep answers short," but only a rewrite of this prompt can say "ask for a repair date."
The two senses work well together. A saved instruction such as "If my request depends on details I haven't given, ask me before answering" covers the cases you forget to pre-prompt.
How is a pre-prompt different from a system prompt, prefill and meta-prompting?
These terms overlap, and they get mixed up. The difference is who writes the text and where it sits in the conversation.
| Term | What it is | Where it sits |
|---|---|---|
| Pre-prompt | Any instructions or preparation that come before your message, including a rewrite of the message | Before your message |
| System prompt | The instruction block an app sends in a separate field with every request | Before the conversation |
| Prefill | The opening words of the model's reply, written for it so it continues from there | After your message, at the start of the answer |
| Meta-prompting | Using a model to write or improve a prompt | Before the prompt is used |
A system prompt is the most formal kind of pre-prompt. Prefill is the odd one out because it comes after your message: the API example in Anthropic's reference ends the request with a partial assistant turn, "The best answer is (" (Anthropic, Messages API). Anthropic's prompting guide says that starting with Claude 4.6 models, prefilling the last assistant turn is no longer supported and returns a 400 error (Anthropic, prompting best practices).
Meta-prompting is the technique behind most prompt rewriters. Anthropic's prompt engineering overview points people without a first draft to a "metaprompt" recipe that generates one (Anthropic, prompt engineering overview). Pre-prompting by rewrite is meta-prompting applied to one message, right before you send it.
Which PrePrompt is this?
We didn't invent the term "pre-prompt," and the word is used loosely across the web for all of the things above. This blog belongs to a prompt rewriter, which does the second kind. PrePrompt is a Chrome extension that adds a Rewrite button next to Send on ChatGPT, Claude, Gemini and Perplexity. It launches soon with 30 free rewrites a month, no card required; join the waitlist to hear the day it goes live. It grades your prompt first, leaves a clear one alone, and keeps exact text such as file names, numbers and links as you wrote them.
TL;DR
- A pre-prompt is text that reaches an AI before your message and shapes the answer. It can be saved instructions or a rewrite of the prompt itself.
- ChatGPT's versions are custom instructions (up to 1,500 or 5,000 characters, by plan) and project instructions, which override custom instructions inside a project.
- Claude.ai has Instructions for Claude and project instructions; the API uses the
systemparameter. - In Claude Code, CLAUDE.md loads every session as a user message after the system prompt, and a
UserPromptSubmithook can add context but can't replace your prompt. - A system prompt is one kind of pre-prompt; prefill comes after your message; meta-prompting is using a model to improve a prompt.
About the author. Tanuj writes PrePrompt's fundamentals and how-to guides and works on the product. PrePrompt is a Chrome extension that rewrites prompts before you send them.
Sources: Custom instructions for ChatGPT and Projects in ChatGPT (OpenAI Help Center); Text generation guide (OpenAI API docs); Understanding Claude's personalization features and How can I create and manage projects (Claude Help Center); Messages API reference, Prompting best practices and Prompt engineering overview (Anthropic); Memory and Hooks reference (Claude Code docs); Gemini for Workspace prompting guide 101 (Google, 2024).
Related reading: what a vague prompt is, with examples, what a good prompt looks like and how to rewrite a ChatGPT prompt automatically.







