JSON Formatter
Pretty-print, validate and minify JSON with friendly error messages.
Describe your bot once and get a structured system prompt, sample dialogue, guardrails and a JSON persona card — no prompt-writing experience needed.
Your result is ready — download it below:
Re-encoded without size gain Download links expire within 30 minutes.
No result to display for the current input.
Describe your bot once and get a structured system prompt, sample dialogue, guardrails and a JSON persona card — no prompt-writing experience needed.
A chatbot persona is not a name and a friendly adjective. It is the whole set of decisions the model has to make before it answers anything: what it is for, how it should speak, what it must never do, and what to do when it does not have the answer. Fill in a form describing those decisions and this builder turns them into a system prompt with clear sections, a set of example exchanges, and a list of guardrails you can also enforce outside the prompt.
Four separate outputs, each copyable on its own. The system prompt is the main deliverable, written with named sections for role, mission, voice, working rules, boundaries and domain knowledge. The sample dialogue demonstrates four situations that are notoriously hard to describe in prose: the opening line, a straightforward question, a vague request that needs a clarifying question, and an attempt to talk the bot out of its instructions. The guardrails list is deliberately separate so you can enforce the same limits in code rather than trusting the model to remember them. The persona card is the same information as JSON, for platforms that want structured configuration.
A prompt that says "be a friendly helpful assistant" gives the model nothing to hold on to. It has to guess what helpful means, how long an answer should be, and what to do when the question is out of scope — and it guesses differently on every turn. Splitting the same content into named sections removes the guesswork. Tone, answer length, emoji, what to do when unclear, and what never to do each get their own instruction, so a later turn is constrained by something specific instead of a vague adjective.
Three instructions do most of the work, and they are included by default. Never invent facts stops the model presenting a made-up policy or price as fact. Ask one clarifying question when the request is ambiguous stops it guessing at an underspecified problem and answering the wrong one confidently. Say when you do not know is what keeps an honest answer available once tone is specified, because a persona set to be concise and authoritative pulls against hedging unless you explicitly allow it. These are the first things to keep if you edit the output down to fit a token budget.
The sample dialogue is the part most people skip, and it is usually worth more than a paragraph describing the same behaviour. Models imitate concrete examples far more reliably than they obey adjectives, so four short exchanges can pin down tone and boundaries that a page of description leaves ambiguous. It also forces you to decide how the persona behaves in the awkward cases — the vague request, the out-of-scope question — at the point where you can still think it through, rather than discovering the gap in production.
Anything written in a system prompt is an instruction, not a control. It works most of the time, which is not the same as always, and a determined user can talk past it. The guardrails output is formatted so it can be reused as a validation layer: what to redact from the input, what the bot is not allowed to confirm, which topics force a handoff. Where your platform allows it, check those in code before the message reaches the model, and treat the prompt copy as the layer that shapes style rather than the layer that enforces policy.
Tone, formality and answer length pull against each other in ways worth deciding deliberately. Concise and authoritative together produce short confident answers, which is exactly when a model is most likely to invent a figure to fill the space — so keep the never-guess rule if you pick that pair. Playful and witty work well for a first line and badly for a complaint, so the notes under your result flag that combination. When a persona handles stressed customers, empathetic usually beats clever, and the length setting matters more than the tone adjective.
There is no account, no watermark and no daily limit, and the tool runs entirely on this site. It does not send your text to any AI provider and does not call a model — it assembles the prompt from the answers you gave, which means nothing you type is shared with a third party. The result also shows an approximate token count for the generated prompt, since the system prompt is sent on every single request and is usually the easiest place to cut cost.
A persona is the complete set of instructions that decides how a model behaves before it answers: what it is for, how it speaks, what it covers, what it must not do, and what happens when it cannot help. A name and a tone adjective are only two lines of it, and on their own they produce a bot that drifts after a few turns.
No. This is a prompt assembler, not a chatbot. It builds the system prompt from the answers you type in the form using fixed templates, so nothing is sent to OpenAI or any other provider. No account is required and there is no upload step, because there is no file to process.
Because a model asked to sound confident will produce a confident answer whether or not it knows one, and a fabricated policy, price or date is far more damaging than an admitted gap. The rule is included by default and the notes explain why it matters most when you pick a concise or authoritative tone, where the pressure to fill the space is strongest.
Long enough to cover scope, tone, boundaries and escalation, and no longer. The prompt is sent on every request, so length is a recurring cost rather than a one-off. The result shows an approximate token count, and anything past a few hundred words of domain knowledge is usually better moved into a retrieval step the bot consults when it needs it.
Yes — treat it as a strong first draft rather than a finished one. Replace the bracketed placeholders with your real policies, delete any rule your persona does not need, and read the domain knowledge section line by line, because a wrong fact written into a system prompt gets repeated confidently forever. Test it against the questions you least want it to answer.
One rule per line. Always-do is for concrete habits such as confirming an account number before discussing a charge, or offering a self-service link. Never-do is for hard limits such as giving legal advice or confirming a refund that has not happened. Anything you put in these boxes is also reflected in the guardrails output.
The card is a plain, readable JSON object holding the name, role, goal, voice settings, rules, boundaries and the full system prompt, so it suits any platform that accepts structured configuration or that you can map fields into. It is not tied to a specific vendor format, which means you may need to rename a few keys to match the target platform schema.
Most chatbots sound wrong for the same reason: the prompt describes who the bot is and stops there. This builder assembles the parts that actually hold a persona together — scope, tone, boundaries, what to do when it does not know, and when to hand over to a human.
How to use: fill in the name, role and goal, pick a tone, then press Run. You get four copyable outputs.
Pretty-print, validate and minify JSON with friendly error messages.
Turn any JSON into ready-to-compile Rust struct definitions with serde derives.
Turn any JSON into a TypeScript Zod schema with nullable and optional handling.
Convert any JSON into Go struct definitions with json tags and pointers for optionals.