Skip to content

Tags Overview

Pupt gives you a library of tags for building prompts. Each tag handles a specific part of your prompt -- defining roles and tasks, collecting user input, controlling what appears based on conditions, and more.

This section is a reference for every built-in tag. If you're new to pupt, start with the Guide first.

Categories at a Glance

CategoryTagsWhat they do
StructuralPrompt, Section, Role, Task, Context, Constraint, Format, Audience, Tone, Objective, Style, Guardrails, EdgeCases, WhenUncertain, SuccessCriteria, Criterion, Constraints, Contexts, Specialization, When, Fallback, Fallbacks, References, ReferenceDefine the shape and content of your prompt
Ask (Inputs)Ask.Text, Ask.Number, Ask.Select, Ask.Confirm, Ask.Editor, Ask.MultiSelect, Ask.File, Ask.Path, Ask.Date, Ask.Secret, Ask.Choice, Ask.Rating, Ask.ReviewFile, Ask.Option, Ask.LabelCollect information from the user
Control FlowIf, ForEachShow or hide content based on conditions
DataCode, Data, File, Json, XmlEmbed code, files, and structured data
ExamplesExamples, Example, ExampleInput, ExampleOutput, NegativeExampleShow the AI what you expect
ReasoningSteps, Step, ChainOfThoughtGuide how the AI thinks through problems
Post-ExecutionPostExecution, ReviewFile, OpenUrl, RunCommandTrigger actions after the AI responds
UtilityUUID, DateTime, Hostname, Username, Cwd, TimestampInsert live system values
MetaUsesDeclare dependencies on other prompt libraries
Presets--Pre-built configurations for roles, tasks, constraints, and more

How to Read Reference Pages

Every reference page starts with a description of what the tag does and when you'd reach for it. Next, you'll find a properties table listing every property the tag accepts, along with its type and default value. Finally, each page includes examples that pair your tags (input) with what the AI actually sees (output).

Common Properties

Many structural tags share these properties:

PropertyTypeDefaultWhat it does
delimiter'xml' | 'markdown' | 'none''xml'Controls how the tag wraps its content
presetstring--Uses a pre-built configuration instead of custom content
extendboolean--Adds to a preset instead of replacing it

The delimiter property controls how your content gets wrapped. The default value xml wraps content in XML-style markers like <role>...</role>. Set it to markdown to use markdown headers like ## Role instead, or none to output just the content with no wrapping at all.

Presets

Many tags support presets -- pre-built configurations based on prompt engineering best practices. Instead of writing everything from scratch, you can use a preset as a starting point:

xml
<Role preset="engineer" />
<Steps preset="debugging" />
<Guardrails preset="standard" />

See the Presets page for every available preset.

Smart Defaults

The <Prompt> tag automatically fills in sensible defaults for Role, Format, and Constraints when you don't provide your own. You can turn these off with bare, noRole, noFormat, or noConstraints. See Writing Your First Prompt for details.

Where to Go Next

If you're new to pupt, start with the Guide. Looking for a specific tag? Browse the categories in the table above. If you want to import tags from others, see Using Modules. And if you're ready to build your own tags, check out Writing Custom Tags.

Released under the MIT License.