// docs / variables
Write once, reuse with different inputs.
Placeholders turn a prompt into a fill-in template. Same template, filled three ways — web, CLI, and agents.
The syntax
Wrap a name in double braces anywhere in your prompt. Whitespace inside is tolerated and Unicode names work (including Turkish):
You are a senior {{language}} reviewer.
Focus on {{focus}} and explain every finding in plain language.The editor detects variables as you type and shows them as chips. An unfilled placeholder stays as {{name}}in the output — it's never silently dropped, so you always see what you forgot.
Filling on the web & extension
Copy always copies the raw prompt as-is. To fill first, use Fill & Copy— on a public prompt page it's the button next to Copy; in the editor it's Fill & copy in the ⋯ menu. Type the values, get ready-to-use text on your clipboard. The Chrome extension does the same next to ChatGPT, Claude, and Gemini — fill and paste without leaving the page.
Filling from the CLI
ple get code-review --var language=ts --var focus=security
# prints the filled text to stdout → pipe it:
ple get code-review --var language=ts --var focus=security | claude -pMissing a --var? The placeholder stays in the output and the CLI notes which variables were left unfilled.
Filling from agents (MCP)
Over the MCP server, an agent calls fill_variables(name, { language: 'ts', focus: 'security' })and gets back the finished text — the current version, always. The agent never has to know your prompt's wording, just its name and inputs.
Start from a pattern
The Pattern Library ships 8 templates that already use {{variables}}— copy one into your library and it's a fillable form immediately.