ChatGPT vs Claude prompt formatter
ChatGPT and Claude accept the same ideas but expect different envelopes. GPT wants
a messages array with a system role inside it; Claude wants a separate top-level
system parameter and Human/Assistant turns. Copying a prompt straight from one
to the other usually means hand-editing the structure. The ChatGPT vs Claude
prompt formatter does that conversion in one click while preserving your wording.
How it works
You tell the tool which format your prompt is in and paste it using System:,
User:, or Human: labels. Converting GPT → Claude pulls the system instruction
out into Claude’s top-level system field and rebuilds the body as a Human turn.
Converting Claude → GPT folds the leading system paragraph back into a system
message and emits valid OpenAI-style JSON. Only the envelope changes — your
intent, constraints, and examples stay intact. Everything runs locally with no API
key and no network call.
The structural difference in detail
OpenAI / ChatGPT format uses a flat messages array where every turn including the system instruction is an object with a role field:
{
"model": "gpt-4o",
"messages": [
{ "role": "system", "content": "You are a helpful assistant." },
{ "role": "user", "content": "Summarise this article." }
]
}
Anthropic / Claude format promotes the system instruction to a separate top-level parameter, and turns use Human and Assistant as the role labels:
{
"model": "claude-opus-4-5",
"system": "You are a helpful assistant.",
"messages": [
{ "role": "user", "content": "Summarise this article." }
]
}
The content of the system instruction and the user message are identical in both examples. Only the envelope differs — which is exactly what this converter re-shapes.
When to use this tool
- You have tested a prompt in ChatGPT’s Playground and want to try the same instruction in Claude’s API without rewriting it by hand.
- You are building an application that needs to support both providers and want to maintain a single canonical prompt, converting to each provider’s expected format at call time.
- You inherited a prompt written for one API and need to port it to the other quickly.
Tips and edge cases
- Label your input clearly. A
System:line tells the tool what belongs in the system slot; without it, everything becomes the user message. - Set Claude’s system separately in your API call. The converted Claude output marks the system text explicitly — pass it as the top-level
systemparameter in the API request, not as a turn inside themessagesarray. - Wrap pasted documents in XML-style tags. Claude responds well to structured tags around long inputs such as
<document>or<article>. If your prompt embeds a long passage, add tags around it for the Claude version. - Multi-turn prompts. If your prompt includes multiple back-and-forth turns (alternating User/Human and Assistant), the converter will re-label all of them. Verify the turn order after conversion.
- Round-trip to sanity-check. Convert one direction then convert back; if the prompt is identical to the original, no content was lost.