Prompt Template Builder
Reusable prompts usually have a stable core and a few parts that change per request, such as tone, audience or the text to process. Write the core once with placeholders like {{tone}} and {{topic}}, and this builder finds the variables, shows an input for each and assembles the final prompt locally. You can also paste JSON values for repeatable runs. It is deliberately simple text replacement, with no template code to execute and no data leaving the page.
Your workspace
Runs locally in your browserVariables
Result
Your input is processed locally in your browser and is not sent to Flutters servers. Inputs are not saved by this tool.
How to use this tool
Write or paste a template containing {{names}}, fill the fields that appear (or paste a JSON object of values), then choose Build prompt and copy the result.
Example
Input
Write a {{tone}} reply about {{topic}}.
Values: {"tone": "friendly", "topic": "refunds"}Output
Write a friendly reply about refunds.What does this tool do?
A prompt template keeps the fixed instructions in one place and marks the changing parts as {{variables}}. This builder detects those names, creates an input for each one and replaces them with your values. It performs simple text substitution only, so a template can never run code or call anything.
Common mistakes and limitations
Only {{name}} placeholders using letters, digits, underscores, dots and dashes are recognized; there are no loops, conditions or filters. Variables left empty stay visible in the output and are listed. Values are inserted exactly as typed, so untrusted text placed in a prompt can still attempt prompt injection when you send it to a model.
Why separate instructions from variables
A template makes prompts repeatable. The wording that defines the task stays fixed and reviewable, while the topic, audience, tone or source text change between runs. This reduces copy-and-paste mistakes and makes it easier to compare outputs when only one variable changes.
Summarize {{document}} for {{audience}} in a {{tone}} tone.Plain replacement and prompt injection
This builder replaces names with the exact text you provide and does nothing else. That keeps it predictable, but it also means any untrusted text you insert, such as a customer message, is part of the final prompt and may contain instructions aimed at the model. Mark the boundaries of inserted content in your template, keep the model's permissions narrow and review outputs before acting on them.
Related: AI Prompt Redactor
Check size and cost before sending
A filled template can be much longer than the template alone, especially when a variable holds a document. Count the final prompt and estimate what repeated requests would cost.
Related: LLM Token Counter, AI API Cost Calculator
Frequently asked questions
Can I use JSON for the values?
Yes. Paste an object such as {"tone":"friendly"}. Typed field values take priority over JSON values for the same name.
Does it run any template language?
No. It only replaces {{name}} with text. There is no evaluation, scripting or network access.
What happens to a variable I leave empty?
The placeholder remains in the output and the status line lists it, so you notice before sending the prompt.
Related tools
LLM Token Counter
Estimate prompt tokens, words and characters locally to plan context-window use before sending text to a language model.
Open tool AI & LLM ToolsAI API Cost Calculator
Turn input and output token counts and per-million prices you enter into per-request and multi-request cost estimates.
Open tool AI & LLM ToolsAI Prompt Redactor
Mask emails, phone numbers, IP addresses, tokens, API-key-like strings and card-like numbers in a prompt before sharing it.
Open tool AI & LLM ToolsMCP Config Generator
Generate a basic mcpServers JSON configuration for a Model Context Protocol server with command, args, environment placeholders or a URL.
Open tool